1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

nrv2d support for arm/pe v4a mode

This commit is contained in:
László Molnár 2006-07-20 18:11:14 +02:00
parent 98942f5528
commit d15e789200
3 changed files with 851 additions and 632 deletions

View File

@ -185,12 +185,13 @@ const int *PackArmPe::getCompressionMethods(int method, int level) const
{
static const int m_nrv2b[] = { M_NRV2B_8, M_NRV2E_8, -1 };
static const int m_nrv2e[] = { M_NRV2E_8, M_NRV2B_8, -1 };
static const int m_nrv2e_v4[] = { M_NRV2E_8, -1 };
static const int m_nrv2d_v4[] = { M_NRV2D_8, M_NRV2E_8, -1 };
static const int m_nrv2e_v4[] = { M_NRV2E_8, M_NRV2D_8, -1 };
UNUSED(level);
// FIXME this when we have v4 mode nrv2b
if (!use_thumb_stub)
return m_nrv2e_v4;
return M_IS_NRV2E(method) ? m_nrv2e_v4 : m_nrv2d_v4;
if (M_IS_NRV2B(method))
return m_nrv2b;
@ -1658,6 +1659,8 @@ int PackArmPe::buildLoader(const Filter *ft)
addLoader("Call2E", NULL);
else if (ph.method == M_NRV2B_8)
addLoader("Call2B", NULL);
else if (ph.method == M_NRV2D_8)
addLoader("Call2D", NULL);
if (ft->id == 0x50)
@ -1673,6 +1676,8 @@ int PackArmPe::buildLoader(const Filter *ft)
{
if (ph.method == M_NRV2E_8)
addLoader(".ucl_nrv2e_decompress_8", NULL);
else if (ph.method == M_NRV2D_8)
addLoader(".ucl_nrv2d_decompress_8", NULL);
}
else
{

File diff suppressed because it is too large Load Diff

View File

@ -340,6 +340,14 @@ section Call2E
bl ucl_nrv2e_decompress_8
DDUMP (#'C')
section .ucl_nrv2d_decompress_8
#include "arch/arm/v4a/nrv2d_d8.S"
section Call2D
bl ucl_nrv2d_decompress_8
DDUMP (#'C')
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#include "include/header2.ash"