mirror of
https://github.com/upx/upx.git
synced 2025-02-17 06:38:06 +00:00
lzma for dos/exe seems to work with tainted watcom macros
This commit is contained in:
parent
8bea9e0a5e
commit
7b39b05894
@ -171,7 +171,10 @@ void PackExe::buildLoader(const Filter *)
|
||||
NULL
|
||||
);
|
||||
else if (ph.method == M_LZMA)
|
||||
addLoader("LZMA_DEC00,LZMA_DEC10,LZMA_DEC99", NULL);
|
||||
addLoader("LZMA_DEC00,LZMA_DEC10,LZMA_DEC99,LZMA_DEC30",
|
||||
ph.u_len > 0xffff ? "LZMA_DEC31" : "",
|
||||
NULL
|
||||
);
|
||||
else
|
||||
throwInternalError("unknown compression method");
|
||||
addLoader("EXEMAIN5", NULL);
|
||||
|
@ -279,6 +279,7 @@ void Packer::defineDecompressorSymbols()
|
||||
// -2 for properties
|
||||
linker->defineSymbol("lzma_c_len_hi", (ph.c_len - 2) / 65536);
|
||||
linker->defineSymbol("lzma_u_len_hi", ph.u_len / 65536);
|
||||
linker->defineSymbol("lzma_u_len_segment", (ph.u_len & 0xf0000) >> 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -122,7 +122,7 @@ __U4M_V01:
|
||||
|
||||
// init
|
||||
section LZMA_DEC00
|
||||
.byte 0xcc
|
||||
// .byte 0xcc
|
||||
mov bp, sp
|
||||
lea bx, [bp + lzma_stack_adjust]
|
||||
xor ax, ax
|
||||
@ -161,10 +161,10 @@ section LZMA_DEC00
|
||||
mov ax, offset lzma_properties
|
||||
mov ss:[bx], ax
|
||||
call LZMA_DEC10
|
||||
// .byte 0xcc
|
||||
|
||||
mov sp, bp
|
||||
// FIXME 'es:di' should be set
|
||||
lret
|
||||
jmp LZMA_DEC30
|
||||
|
||||
section LZMA_DEC10
|
||||
.arch i8086, nojumps
|
||||
@ -177,6 +177,13 @@ section LZMA_DEC20
|
||||
|
||||
// cleanup
|
||||
section LZMA_DEC30
|
||||
mov di, offset lzma_u_len
|
||||
|
||||
section LZMA_DEC31
|
||||
pop ax
|
||||
push ax
|
||||
add ax, offset lzma_u_len_segment
|
||||
mov es, ax
|
||||
|
||||
|
||||
#undef WCC_PIA_V02
|
||||
|
@ -170,6 +170,7 @@
|
||||
.endm
|
||||
|
||||
|
||||
#if 0
|
||||
// huge pointer compare: set zero and carry flags: dx:ax cmp cx:bx
|
||||
.macro M_WCC_PTC
|
||||
// FIXME: should we normalize the pointers ???
|
||||
@ -188,6 +189,9 @@ L1:
|
||||
// add low-word
|
||||
.endm
|
||||
|
||||
#else
|
||||
# include "tainted.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
; =============
|
||||
|
@ -44,26 +44,27 @@ Idx Name Size VMA LMA File off Algn Flags
|
||||
39 NRV2EEX3 00000015 00000000 00000000 0000027b 2**0 CONTENTS, RELOC, READONLY
|
||||
40 N2E64K02 0000000b 00000000 00000000 00000290 2**0 CONTENTS, READONLY
|
||||
41 NRV2EEX9 00000004 00000000 00000000 0000029b 2**0 CONTENTS, READONLY
|
||||
42 LZMA_DEC99 0000005d 00000000 00000000 0000029f 2**0 CONTENTS, READONLY
|
||||
43 LZMA_DEC00 00000043 00000000 00000000 000002fc 2**0 CONTENTS, RELOC, READONLY
|
||||
44 LZMA_DEC10 00000ea2 00000000 00000000 0000033f 2**0 CONTENTS, RELOC, READONLY
|
||||
45 LZMA_DEC20 00000ea2 00000000 00000000 000011e1 2**0 CONTENTS, RELOC, READONLY
|
||||
46 LZMA_DEC30 00000000 00000000 00000000 00002083 2**0 CONTENTS, READONLY
|
||||
47 EXEMAIN5 00000001 00000000 00000000 00002083 2**0 CONTENTS, READONLY
|
||||
48 EXEADJUS 00000007 00000000 00000000 00002084 2**0 CONTENTS, READONLY
|
||||
49 EXENOADJ 00000002 00000000 00000000 0000208b 2**0 CONTENTS, READONLY
|
||||
50 EXERELO1 0000001e 00000000 00000000 0000208d 2**0 CONTENTS, RELOC, READONLY
|
||||
51 EXEREL9A 00000012 00000000 00000000 000020ab 2**0 CONTENTS, RELOC, READONLY
|
||||
52 EXERELO2 00000004 00000000 00000000 000020bd 2**0 CONTENTS, READONLY
|
||||
53 EXEREBIG 00000002 00000000 00000000 000020c1 2**0 CONTENTS, RELOC, READONLY
|
||||
54 EXERELO3 00000002 00000000 00000000 000020c3 2**0 CONTENTS, RELOC, READONLY
|
||||
55 EXEMAIN8 00000003 00000000 00000000 000020c5 2**0 CONTENTS, READONLY
|
||||
56 DEVICEEND 00000013 00000000 00000000 000020c8 2**0 CONTENTS, READONLY
|
||||
57 EXESTACK 00000006 00000000 00000000 000020db 2**0 CONTENTS, RELOC, READONLY
|
||||
58 EXESTASP 00000003 00000000 00000000 000020e1 2**0 CONTENTS, RELOC, READONLY
|
||||
59 EXEJUMPF 00000005 00000000 00000000 000020e4 2**0 CONTENTS, RELOC, READONLY
|
||||
60 EXERCSPO 00000004 00000000 00000000 000020e9 2**0 CONTENTS, RELOC, READONLY
|
||||
61 EXERETIP 00000006 00000000 00000000 000020ed 2**0 CONTENTS, RELOC, READONLY
|
||||
42 LZMA_DEC99 000000ae 00000000 00000000 0000029f 2**0 CONTENTS, READONLY
|
||||
43 LZMA_DEC00 00000044 00000000 00000000 0000034d 2**0 CONTENTS, RELOC, READONLY
|
||||
44 LZMA_DEC10 00000ea2 00000000 00000000 00000391 2**0 CONTENTS, RELOC, READONLY
|
||||
45 LZMA_DEC20 00000ea2 00000000 00000000 00001233 2**0 CONTENTS, RELOC, READONLY
|
||||
46 LZMA_DEC30 00000003 00000000 00000000 000020d5 2**0 CONTENTS, RELOC, READONLY
|
||||
47 LZMA_DEC31 00000007 00000000 00000000 000020d8 2**0 CONTENTS, RELOC, READONLY
|
||||
48 EXEMAIN5 00000001 00000000 00000000 000020df 2**0 CONTENTS, READONLY
|
||||
49 EXEADJUS 00000007 00000000 00000000 000020e0 2**0 CONTENTS, READONLY
|
||||
50 EXENOADJ 00000002 00000000 00000000 000020e7 2**0 CONTENTS, READONLY
|
||||
51 EXERELO1 0000001e 00000000 00000000 000020e9 2**0 CONTENTS, RELOC, READONLY
|
||||
52 EXEREL9A 00000012 00000000 00000000 00002107 2**0 CONTENTS, RELOC, READONLY
|
||||
53 EXERELO2 00000004 00000000 00000000 00002119 2**0 CONTENTS, READONLY
|
||||
54 EXEREBIG 00000002 00000000 00000000 0000211d 2**0 CONTENTS, RELOC, READONLY
|
||||
55 EXERELO3 00000002 00000000 00000000 0000211f 2**0 CONTENTS, RELOC, READONLY
|
||||
56 EXEMAIN8 00000003 00000000 00000000 00002121 2**0 CONTENTS, READONLY
|
||||
57 DEVICEEND 00000013 00000000 00000000 00002124 2**0 CONTENTS, READONLY
|
||||
58 EXESTACK 00000006 00000000 00000000 00002137 2**0 CONTENTS, RELOC, READONLY
|
||||
59 EXESTASP 00000003 00000000 00000000 0000213d 2**0 CONTENTS, RELOC, READONLY
|
||||
60 EXEJUMPF 00000005 00000000 00000000 00002140 2**0 CONTENTS, RELOC, READONLY
|
||||
61 EXERCSPO 00000004 00000000 00000000 00002145 2**0 CONTENTS, RELOC, READONLY
|
||||
62 EXERETIP 00000006 00000000 00000000 00002149 2**0 CONTENTS, RELOC, READONLY
|
||||
SYMBOL TABLE:
|
||||
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
|
||||
00000000 l d EXEENTRY 00000000 EXEENTRY
|
||||
@ -81,6 +82,7 @@ SYMBOL TABLE:
|
||||
00000000 l d NRV2EEX9 00000000 NRV2EEX9
|
||||
00000000 l d LZMA_DEC99 00000000 LZMA_DEC99
|
||||
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
|
||||
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
|
||||
00000000 l d EXERELO1 00000000 EXERELO1
|
||||
00000000 l d EXERELO2 00000000 EXERELO2
|
||||
00000000 l d DEVICESUB 00000000 DEVICESUB
|
||||
@ -113,7 +115,7 @@ SYMBOL TABLE:
|
||||
00000000 l d N2E64K02 00000000 N2E64K02
|
||||
00000000 l d LZMA_DEC00 00000000 LZMA_DEC00
|
||||
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
|
||||
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
|
||||
00000000 l d LZMA_DEC31 00000000 LZMA_DEC31
|
||||
00000000 l d EXEMAIN5 00000000 EXEMAIN5
|
||||
00000000 l d EXEADJUS 00000000 EXEADJUS
|
||||
00000000 l d EXENOADJ 00000000 EXENOADJ
|
||||
@ -145,6 +147,7 @@ SYMBOL TABLE:
|
||||
00000000 *UND* 00000000 lzma_c_len
|
||||
00000000 *UND* 00000000 lzma_properties_hi
|
||||
00000000 *UND* 00000000 lzma_properties
|
||||
00000000 *UND* 00000000 lzma_u_len_segment
|
||||
00000000 *UND* 00000000 reloc_size
|
||||
00000000 *UND* 00000000 original_ss
|
||||
00000000 *UND* 00000000 original_sp
|
||||
@ -251,14 +254,15 @@ OFFSET TYPE VALUE
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_DEC00]:
|
||||
OFFSET TYPE VALUE
|
||||
00000005 R_386_16 lzma_stack_adjust
|
||||
00000013 R_386_16 lzma_u_len_hi
|
||||
00000017 R_386_16 lzma_u_len
|
||||
00000022 R_386_16 lzma_c_len_hi
|
||||
00000026 R_386_16 lzma_c_len
|
||||
00000031 R_386_16 lzma_properties_hi
|
||||
00000038 R_386_16 lzma_properties
|
||||
0000003e R_386_PC16 LZMA_DEC10
|
||||
00000004 R_386_16 lzma_stack_adjust
|
||||
00000012 R_386_16 lzma_u_len_hi
|
||||
00000016 R_386_16 lzma_u_len
|
||||
00000021 R_386_16 lzma_c_len_hi
|
||||
00000025 R_386_16 lzma_c_len
|
||||
00000030 R_386_16 lzma_properties_hi
|
||||
00000037 R_386_16 lzma_properties
|
||||
0000003d R_386_PC16 LZMA_DEC10
|
||||
00000042 R_386_PC16 LZMA_DEC30
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_DEC10]:
|
||||
OFFSET TYPE VALUE
|
||||
@ -368,6 +372,14 @@ OFFSET TYPE VALUE
|
||||
00000e6b R_386_PC16 LZMA_DEC99
|
||||
00000e73 R_386_PC16 LZMA_DEC99
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_DEC30]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_16 lzma_u_len
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_DEC31]:
|
||||
OFFSET TYPE VALUE
|
||||
00000003 R_386_16 lzma_u_len_segment
|
||||
|
||||
RELOCATION RECORDS FOR [EXERELO1]:
|
||||
OFFSET TYPE VALUE
|
||||
00000002 R_386_16 reloc_size
|
||||
|
Loading…
x
Reference in New Issue
Block a user