dos/exe: clear the dirty stack.

This commit is contained in:
Markus F.X.J. Oberhumer
2007-02-26 13:55:12 +01:00
parent 753ce45310
commit ffe4a4b047
4 changed files with 1288 additions and 1270 deletions
+1248 -1240
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -244,7 +244,7 @@ section LZMA_DEC00
xor ax, ax
1: push ax
cmp sp, bx
jnz 1b
jnzs 1b
#else
mov sp, bx
#endif
@@ -269,7 +269,7 @@ section LZMA_DEC00
push ds // in [bp + 8]
push si // [bp + 6]
// enter small model
// enter small memory model
push ss
pop ds
@@ -299,14 +299,14 @@ section LZMA_DEC20
// cleanup
section LZMA_DEC30
#if 0
#if 1
// clear dirty stack
lea bx, [bp + lzma_stack_adjust - 256]
mov sp, bp
mov bx, offset clear_dirty_stack_low
xor ax, ax
1: push ax
cmp sp, bx
jnz 1b
jnzs 1b
#endif
mov sp, bp
pop ds
+20 -18
View File
@@ -74,23 +74,23 @@ Idx Name Size VMA LMA File off Algn Flags
69 ignore_reloc_overflow 00000008 00000000 00000000 00000375 2**0 CONTENTS, RELOC, READONLY
70 LZMA_DEC10 000011a4 00000000 00000000 0000037d 2**0 CONTENTS, READONLY
71 LZMA_DEC20 000011a4 00000000 00000000 00001521 2**0 CONTENTS, READONLY
72 LZMA_DEC30 00000006 00000000 00000000 000026c5 2**0 CONTENTS, RELOC, READONLY
73 LZMA_DEC31 00000007 00000000 00000000 000026cb 2**0 CONTENTS, RELOC, READONLY
74 EXEMAIN5 00000001 00000000 00000000 000026d2 2**0 CONTENTS, READONLY
75 EXEADJUS 00000007 00000000 00000000 000026d3 2**0 CONTENTS, READONLY
76 EXENOADJ 00000002 00000000 00000000 000026da 2**0 CONTENTS, READONLY
77 EXERELO1 0000001e 00000000 00000000 000026dc 2**0 CONTENTS, RELOC, READONLY
78 EXEREL9A 00000012 00000000 00000000 000026fa 2**0 CONTENTS, RELOC, READONLY
79 EXERELO2 00000004 00000000 00000000 0000270c 2**0 CONTENTS, READONLY
80 EXEREBIG 00000002 00000000 00000000 00002710 2**0 CONTENTS, RELOC, READONLY
81 EXERELO3 00000002 00000000 00000000 00002712 2**0 CONTENTS, RELOC, READONLY
82 EXEMAIN8 00000003 00000000 00000000 00002714 2**0 CONTENTS, READONLY
83 DEVICEEND 00000013 00000000 00000000 00002717 2**0 CONTENTS, READONLY
84 EXESTACK 00000006 00000000 00000000 0000272a 2**0 CONTENTS, RELOC, READONLY
85 EXESTASP 00000003 00000000 00000000 00002730 2**0 CONTENTS, RELOC, READONLY
86 EXEJUMPF 00000005 00000000 00000000 00002733 2**0 CONTENTS, RELOC, READONLY
87 EXERCSPO 00000004 00000000 00000000 00002738 2**0 CONTENTS, RELOC, READONLY
88 EXERETIP 00000006 00000000 00000000 0000273c 2**0 CONTENTS, RELOC, READONLY
72 LZMA_DEC30 00000012 00000000 00000000 000026c5 2**0 CONTENTS, RELOC, READONLY
73 LZMA_DEC31 00000007 00000000 00000000 000026d7 2**0 CONTENTS, RELOC, READONLY
74 EXEMAIN5 00000001 00000000 00000000 000026de 2**0 CONTENTS, READONLY
75 EXEADJUS 00000007 00000000 00000000 000026df 2**0 CONTENTS, READONLY
76 EXENOADJ 00000002 00000000 00000000 000026e6 2**0 CONTENTS, READONLY
77 EXERELO1 0000001e 00000000 00000000 000026e8 2**0 CONTENTS, RELOC, READONLY
78 EXEREL9A 00000012 00000000 00000000 00002706 2**0 CONTENTS, RELOC, READONLY
79 EXERELO2 00000004 00000000 00000000 00002718 2**0 CONTENTS, READONLY
80 EXEREBIG 00000002 00000000 00000000 0000271c 2**0 CONTENTS, RELOC, READONLY
81 EXERELO3 00000002 00000000 00000000 0000271e 2**0 CONTENTS, RELOC, READONLY
82 EXEMAIN8 00000003 00000000 00000000 00002720 2**0 CONTENTS, READONLY
83 DEVICEEND 00000013 00000000 00000000 00002723 2**0 CONTENTS, READONLY
84 EXESTACK 00000006 00000000 00000000 00002736 2**0 CONTENTS, RELOC, READONLY
85 EXESTASP 00000003 00000000 00000000 0000273c 2**0 CONTENTS, RELOC, READONLY
86 EXEJUMPF 00000005 00000000 00000000 0000273f 2**0 CONTENTS, RELOC, READONLY
87 EXERCSPO 00000004 00000000 00000000 00002744 2**0 CONTENTS, RELOC, READONLY
88 EXERETIP 00000006 00000000 00000000 00002748 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
00000000 l d COMPRESSED_LZMA_START 00000000 COMPRESSED_LZMA_START
@@ -200,6 +200,7 @@ SYMBOL TABLE:
00000000 *UND* 00000000 lzma_c_len
00000000 *UND* 00000000 lzma_properties_hi
00000000 *UND* 00000000 lzma_properties
00000000 *UND* 00000000 clear_dirty_stack_low
00000000 *UND* 00000000 lzma_u_len_segment
00000000 *UND* 00000000 reloc_size
00000000 *UND* 00000000 original_ss
@@ -389,7 +390,8 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [LZMA_DEC30]:
OFFSET TYPE VALUE
00000004 R_386_16 lzma_u_len
00000003 R_386_16 clear_dirty_stack_low
00000010 R_386_16 lzma_u_len
RELOCATION RECORDS FOR [LZMA_DEC31]:
OFFSET TYPE VALUE