pe64: saved a few bytes in the nrv decompressors
This commit is contained in:
+1304
-1316
File diff suppressed because it is too large
Load Diff
@@ -177,13 +177,24 @@ setup:
|
|||||||
#define NO_METHOD_CHECK
|
#define NO_METHOD_CHECK
|
||||||
|
|
||||||
section NRV2B
|
section NRV2B
|
||||||
|
#define eof eofb
|
||||||
#include "arch/amd64/nrv2b_d.S"
|
#include "arch/amd64/nrv2b_d.S"
|
||||||
section NRV2D
|
eofb:
|
||||||
#include "arch/amd64/nrv2d_d.S"
|
|
||||||
section NRV2E
|
|
||||||
#include "arch/amd64/nrv2e_d.S"
|
|
||||||
#undef len
|
|
||||||
|
|
||||||
|
section NRV2D
|
||||||
|
#undef eof
|
||||||
|
#define eof eofd
|
||||||
|
#include "arch/amd64/nrv2d_d.S"
|
||||||
|
eofd:
|
||||||
|
|
||||||
|
section NRV2E
|
||||||
|
#undef eof
|
||||||
|
#define eof eofe
|
||||||
|
#include "arch/amd64/nrv2e_d.S"
|
||||||
|
eofe:
|
||||||
|
|
||||||
|
#undef eof
|
||||||
|
#undef len
|
||||||
.intel_syntax noprefix
|
.intel_syntax noprefix
|
||||||
section LZMA_HEAD
|
section LZMA_HEAD
|
||||||
mov eax, IMM32(lzma_u_len)
|
mov eax, IMM32(lzma_u_len)
|
||||||
@@ -203,7 +214,6 @@ section LZMA_TAIL
|
|||||||
pop rax
|
pop rax
|
||||||
// =============
|
// =============
|
||||||
section PEMAIN10
|
section PEMAIN10
|
||||||
eof:
|
|
||||||
pop rsi // load vaddr
|
pop rsi // load vaddr
|
||||||
|
|
||||||
section PETLSHAK2 // restore the TLS index
|
section PETLSHAK2 // restore the TLS index
|
||||||
@@ -383,6 +393,7 @@ section PEDEPHAK
|
|||||||
|
|
||||||
push rax // provide 8 bytes stack
|
push rax // provide 8 bytes stack
|
||||||
mov r9, rsp
|
mov r9, rsp
|
||||||
|
// FIXME push 4; pop r8
|
||||||
mov r8d, 4 // PAGE_READWRITE
|
mov r8d, 4 // PAGE_READWRITE
|
||||||
mov rdx, rbx // size
|
mov rdx, rbx // size
|
||||||
mov rcx, rdi // address
|
mov rcx, rdi // address
|
||||||
|
|||||||
@@ -12,49 +12,48 @@ Idx Name Size VMA LMA File off Algn
|
|||||||
7 PEMAIN02 00000001 0000000000000000 0000000000000000 0000008a 2**0 CONTENTS, READONLY
|
7 PEMAIN02 00000001 0000000000000000 0000000000000000 0000008a 2**0 CONTENTS, READONLY
|
||||||
8 PEMAIN03 00000000 0000000000000000 0000000000000000 0000008b 2**0 CONTENTS, READONLY
|
8 PEMAIN03 00000000 0000000000000000 0000000000000000 0000008b 2**0 CONTENTS, READONLY
|
||||||
9 NRV_HEAD 00000060 0000000000000000 0000000000000000 0000008b 2**0 CONTENTS, READONLY
|
9 NRV_HEAD 00000060 0000000000000000 0000000000000000 0000008b 2**0 CONTENTS, READONLY
|
||||||
10 NRV2B 00000087 0000000000000000 0000000000000000 000000eb 2**0 CONTENTS, RELOC, READONLY
|
10 NRV2B 00000083 0000000000000000 0000000000000000 000000eb 2**0 CONTENTS, RELOC, READONLY
|
||||||
11 NRV2D 00000095 0000000000000000 0000000000000000 00000172 2**0 CONTENTS, RELOC, READONLY
|
11 NRV2D 00000091 0000000000000000 0000000000000000 0000016e 2**0 CONTENTS, RELOC, READONLY
|
||||||
12 NRV2E 000000ae 0000000000000000 0000000000000000 00000207 2**0 CONTENTS, RELOC, READONLY
|
12 NRV2E 000000aa 0000000000000000 0000000000000000 000001ff 2**0 CONTENTS, RELOC, READONLY
|
||||||
13 LZMA_HEAD 00000014 0000000000000000 0000000000000000 000002b5 2**0 CONTENTS, RELOC, READONLY
|
13 LZMA_HEAD 00000014 0000000000000000 0000000000000000 000002a9 2**0 CONTENTS, RELOC, READONLY
|
||||||
14 LZMA_ELF00 0000005a 0000000000000000 0000000000000000 000002c9 2**0 CONTENTS, READONLY
|
14 LZMA_ELF00 0000005a 0000000000000000 0000000000000000 000002bd 2**0 CONTENTS, READONLY
|
||||||
15 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 00000323 2**0 CONTENTS, READONLY
|
15 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 00000317 2**0 CONTENTS, READONLY
|
||||||
16 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000d1a 2**0 CONTENTS, READONLY
|
16 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000d0e 2**0 CONTENTS, READONLY
|
||||||
17 LZMA_DEC30 00000014 0000000000000000 0000000000000000 00001711 2**0 CONTENTS, READONLY
|
17 LZMA_DEC30 00000014 0000000000000000 0000000000000000 00001705 2**0 CONTENTS, READONLY
|
||||||
18 LZMA_TAIL 00000002 0000000000000000 0000000000000000 00001725 2**0 CONTENTS, READONLY
|
18 LZMA_TAIL 00000002 0000000000000000 0000000000000000 00001719 2**0 CONTENTS, READONLY
|
||||||
19 PEMAIN10 00000001 0000000000000000 0000000000000000 00001727 2**0 CONTENTS, READONLY
|
19 PEMAIN10 00000001 0000000000000000 0000000000000000 0000171b 2**0 CONTENTS, READONLY
|
||||||
20 PETLSHAK2 00000004 0000000000000000 0000000000000000 00001728 2**0 CONTENTS, READONLY
|
20 PETLSHAK2 00000004 0000000000000000 0000000000000000 0000171c 2**0 CONTENTS, READONLY
|
||||||
21 PECTTPOS 00000007 0000000000000000 0000000000000000 0000172c 2**0 CONTENTS, RELOC, READONLY
|
21 PECTTPOS 00000007 0000000000000000 0000000000000000 00001720 2**0 CONTENTS, RELOC, READONLY
|
||||||
22 PECTTNUL 00000003 0000000000000000 0000000000000000 00001733 2**0 CONTENTS, READONLY
|
22 PECTTNUL 00000003 0000000000000000 0000000000000000 00001727 2**0 CONTENTS, READONLY
|
||||||
23 PEFILTER49 0000004e 0000000000000000 0000000000000000 00001736 2**0 CONTENTS, RELOC, READONLY
|
23 PEFILTER49 0000004e 0000000000000000 0000000000000000 0000172a 2**0 CONTENTS, RELOC, READONLY
|
||||||
24 PEIMPORT 00000034 0000000000000000 0000000000000000 00001784 2**0 CONTENTS, RELOC, READONLY
|
24 PEIMPORT 00000034 0000000000000000 0000000000000000 00001778 2**0 CONTENTS, RELOC, READONLY
|
||||||
25 PEIBYORD 00000002 0000000000000000 0000000000000000 000017b8 2**0 CONTENTS, RELOC, READONLY
|
25 PEIBYORD 00000002 0000000000000000 0000000000000000 000017ac 2**0 CONTENTS, RELOC, READONLY
|
||||||
26 PEK32ORD 00000012 0000000000000000 0000000000000000 000017ba 2**0 CONTENTS, RELOC, READONLY
|
26 PEK32ORD 00000012 0000000000000000 0000000000000000 000017ae 2**0 CONTENTS, RELOC, READONLY
|
||||||
27 PEIMORD1 0000000a 0000000000000000 0000000000000000 000017cc 2**0 CONTENTS, RELOC, READONLY
|
27 PEIMORD1 0000000a 0000000000000000 0000000000000000 000017c0 2**0 CONTENTS, RELOC, READONLY
|
||||||
28 PEIMPOR2 00000021 0000000000000000 0000000000000000 000017d6 2**0 CONTENTS, RELOC, READONLY
|
28 PEIMPOR2 00000021 0000000000000000 0000000000000000 000017ca 2**0 CONTENTS, RELOC, READONLY
|
||||||
29 PEIERDLL 0000000b 0000000000000000 0000000000000000 000017f7 2**0 CONTENTS, READONLY
|
29 PEIERDLL 0000000b 0000000000000000 0000000000000000 000017eb 2**0 CONTENTS, READONLY
|
||||||
30 PEIEREXE 00000006 0000000000000000 0000000000000000 00001802 2**0 CONTENTS, RELOC, READONLY
|
30 PEIEREXE 00000006 0000000000000000 0000000000000000 000017f6 2**0 CONTENTS, RELOC, READONLY
|
||||||
31 PEIMDONE 00000004 0000000000000000 0000000000000000 00001808 2**0 CONTENTS, READONLY
|
31 PEIMDONE 00000004 0000000000000000 0000000000000000 000017fc 2**0 CONTENTS, READONLY
|
||||||
32 PERELOC1 00000007 0000000000000000 0000000000000000 0000180c 2**0 CONTENTS, RELOC, READONLY
|
32 PERELOC1 00000007 0000000000000000 0000000000000000 00001800 2**0 CONTENTS, RELOC, READONLY
|
||||||
33 PERELOC2 00000004 0000000000000000 0000000000000000 00001813 2**0 CONTENTS, READONLY
|
33 PERELOC2 00000004 0000000000000000 0000000000000000 00001807 2**0 CONTENTS, READONLY
|
||||||
34 PERELOC3 00000030 0000000000000000 0000000000000000 00001817 2**0 CONTENTS, RELOC, READONLY
|
34 PERELOC3 00000030 0000000000000000 0000000000000000 0000180b 2**0 CONTENTS, RELOC, READONLY
|
||||||
35 REL64BIG 0000000a 0000000000000000 0000000000000000 00001847 2**0 CONTENTS, RELOC, READONLY
|
35 REL64BIG 0000000a 0000000000000000 0000000000000000 0000183b 2**0 CONTENTS, RELOC, READONLY
|
||||||
36 RELOC64J 00000002 0000000000000000 0000000000000000 00001851 2**0 CONTENTS, RELOC, READONLY
|
36 RELOC64J 00000002 0000000000000000 0000000000000000 00001845 2**0 CONTENTS, RELOC, READONLY
|
||||||
37 PERLOHI0 0000000a 0000000000000000 0000000000000000 00001853 2**0 CONTENTS, RELOC, READONLY
|
37 PERLOHI0 0000000a 0000000000000000 0000000000000000 00001847 2**0 CONTENTS, RELOC, READONLY
|
||||||
38 PERELLO0 0000000b 0000000000000000 0000000000000000 0000185d 2**0 CONTENTS, READONLY
|
38 PERELLO0 0000000b 0000000000000000 0000000000000000 00001851 2**0 CONTENTS, READONLY
|
||||||
39 PERELHI0 0000000e 0000000000000000 0000000000000000 00001868 2**0 CONTENTS, READONLY
|
39 PERELHI0 0000000e 0000000000000000 0000000000000000 0000185c 2**0 CONTENTS, READONLY
|
||||||
40 PEDEPHAK 0000004b 0000000000000000 0000000000000000 00001876 2**0 CONTENTS, RELOC, READONLY
|
40 PEDEPHAK 0000004b 0000000000000000 0000000000000000 0000186a 2**0 CONTENTS, RELOC, READONLY
|
||||||
41 PETLSC 0000001b 0000000000000000 0000000000000000 000018c1 2**0 CONTENTS, RELOC, READONLY
|
41 PETLSC 0000001b 0000000000000000 0000000000000000 000018b5 2**0 CONTENTS, RELOC, READONLY
|
||||||
42 PEMAIN20 00000004 0000000000000000 0000000000000000 000018dc 2**0 CONTENTS, READONLY
|
42 PEMAIN20 00000004 0000000000000000 0000000000000000 000018d0 2**0 CONTENTS, READONLY
|
||||||
43 CLEARSTACK 00000010 0000000000000000 0000000000000000 000018e0 2**0 CONTENTS, READONLY
|
43 CLEARSTACK 00000010 0000000000000000 0000000000000000 000018d4 2**0 CONTENTS, READONLY
|
||||||
44 PEMAIN21 00000000 0000000000000000 0000000000000000 000018f0 2**0 CONTENTS, READONLY
|
44 PEMAIN21 00000000 0000000000000000 0000000000000000 000018e4 2**0 CONTENTS, READONLY
|
||||||
45 PEISDLL9 0000000f 0000000000000000 0000000000000000 000018f0 2**0 CONTENTS, READONLY
|
45 PEISDLL9 0000000f 0000000000000000 0000000000000000 000018e4 2**0 CONTENTS, READONLY
|
||||||
46 PERETURN 00000004 0000000000000000 0000000000000000 000018ff 2**0 CONTENTS, READONLY
|
46 PERETURN 00000004 0000000000000000 0000000000000000 000018f3 2**0 CONTENTS, READONLY
|
||||||
47 PEDOJUMP 00000005 0000000000000000 0000000000000000 00001903 2**0 CONTENTS, RELOC, READONLY
|
47 PEDOJUMP 00000005 0000000000000000 0000000000000000 000018f7 2**0 CONTENTS, RELOC, READONLY
|
||||||
48 PETLSC2 00000026 0000000000000000 0000000000000000 00001908 2**0 CONTENTS, RELOC, READONLY
|
48 PETLSC2 00000026 0000000000000000 0000000000000000 000018fc 2**0 CONTENTS, RELOC, READONLY
|
||||||
49 UPX1HEAD 00000020 0000000000000000 0000000000000000 0000192e 2**0 CONTENTS, READONLY
|
49 UPX1HEAD 00000020 0000000000000000 0000000000000000 00001922 2**0 CONTENTS, READONLY
|
||||||
SYMBOL TABLE:
|
SYMBOL TABLE:
|
||||||
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
|
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
|
||||||
0000000000000000 l d PEMAIN10 0000000000000000 PEMAIN10
|
|
||||||
0000000000000000 l PEIMDONE 0000000000000000 imports_done
|
0000000000000000 l PEIMDONE 0000000000000000 imports_done
|
||||||
000000000000002b l PEIMPORT 0000000000000000 next_func
|
000000000000002b l PEIMPORT 0000000000000000 next_func
|
||||||
000000000000000a l PEIMORD1 0000000000000000 byname
|
000000000000000a l PEIMORD1 0000000000000000 byname
|
||||||
@@ -82,6 +81,7 @@ SYMBOL TABLE:
|
|||||||
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
|
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
|
||||||
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
|
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
|
||||||
0000000000000000 l d LZMA_TAIL 0000000000000000 LZMA_TAIL
|
0000000000000000 l d LZMA_TAIL 0000000000000000 LZMA_TAIL
|
||||||
|
0000000000000000 l d PEMAIN10 0000000000000000 PEMAIN10
|
||||||
0000000000000000 l d PETLSHAK2 0000000000000000 PETLSHAK2
|
0000000000000000 l d PETLSHAK2 0000000000000000 PETLSHAK2
|
||||||
0000000000000000 l d PECTTPOS 0000000000000000 PECTTPOS
|
0000000000000000 l d PECTTPOS 0000000000000000 PECTTPOS
|
||||||
0000000000000000 l d PECTTNUL 0000000000000000 PECTTNUL
|
0000000000000000 l d PECTTNUL 0000000000000000 PECTTNUL
|
||||||
@@ -162,18 +162,15 @@ OFFSET TYPE VALUE
|
|||||||
|
|
||||||
RELOCATION RECORDS FOR [NRV2B]:
|
RELOCATION RECORDS FOR [NRV2B]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
0000000000000081 R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
000000000000007d R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
||||||
0000000000000049 R_X86_64_PC32 PEMAIN10-0x0000000000000004
|
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [NRV2D]:
|
RELOCATION RECORDS FOR [NRV2D]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
000000000000008c R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
0000000000000088 R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
||||||
0000000000000052 R_X86_64_PC32 PEMAIN10-0x0000000000000004
|
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [NRV2E]:
|
RELOCATION RECORDS FOR [NRV2E]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
00000000000000a5 R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
00000000000000a1 R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
||||||
0000000000000052 R_X86_64_PC32 PEMAIN10-0x0000000000000004
|
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [LZMA_HEAD]:
|
RELOCATION RECORDS FOR [LZMA_HEAD]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
|
|||||||
Reference in New Issue
Block a user