1
0
mirror of https://github.com/upx/upx synced 2025-10-05 19:20:23 +08:00

mipsel.r3000-linux.elf-entry.S syscall clobbers t8

This commit is contained in:
John Reiser 2007-11-26 14:56:23 -08:00
parent 0a4f999ade
commit c949beab9c
3 changed files with 560 additions and 552 deletions

File diff suppressed because it is too large Load Diff

View File

@ -139,6 +139,7 @@ lxlzma_sv_sp = 10*4
lxlzma_dst = 9*4
lxlzma_dstdone = 8*4
lxlzma_srcdone = 7*4
lxlzma_retval = lxlzma_srcdone
#define a4 t0
#define a5 t1
@ -178,13 +179,16 @@ lxlzma_srcdone = 7*4
anyway, because the probability history array (typically ushort[7990] or
ushort[14134]) gets initialized.
*/
move t8,v0 # return value from decompression
sw v0,lxlzma_retval(sp) # return value from decompression
lw a0,lxlzma_dst(sp)
lw a1,lxlzma_dstdone(sp)
li a2,ICACHE|DCACHE
li v0,__NR_cacheflush
syscall
lw v0,lxlzma_retval(sp) # return value from decompression
lw tmp,lxlzma_sv_sp(sp)
lw ra,lxlzma_sv_pc(sp)
/* Workaround suspected glibc bug: elf/rtld.c assumes uninit local is zero.
@ -197,7 +201,7 @@ lxlzma_srcdone = 7*4
sw $0,-4(sp)
jr ra
move v0,t8 # return value from decompression
nop
lzma_decode:
@ -220,6 +224,8 @@ lzma_decode:
eof:
lw v1,(lxdstlen) // original lxdst
subu t8,lxsrc,lxsrclen // new_src - src_EOF; // return 0: good; else: bad
addiu sp,-4
sw t8,0(sp)
move a0,v1 // original lxdst
subu a1,lxdst,v1 // actual length generated
@ -228,8 +234,9 @@ eof:
li v0,__NR_cacheflush
syscall
lw v0,0(sp)
jr ra
move v0,t8 # return value from decompression
addiu sp,4
section ELFMAINY

View File

@ -6,14 +6,14 @@ Idx Name Size VMA LMA File off Algn Flags
1 NRV2E 00000218 00000000 00000000 00000054 2**0 CONTENTS, RELOC, READONLY
2 NRV2D 000001f0 00000000 00000000 0000026c 2**0 CONTENTS, RELOC, READONLY
3 NRV2B 000001b4 00000000 00000000 0000045c 2**0 CONTENTS, RELOC, READONLY
4 LZMA_ELF00 00000098 00000000 00000000 00000610 2**0 CONTENTS, READONLY
5 LZMA_DEC20 00000ad8 00000000 00000000 000006a8 2**0 CONTENTS, READONLY
6 LZMA_DEC10 00000ad8 00000000 00000000 00001180 2**0 CONTENTS, READONLY
7 LZMA_DEC30 00000004 00000000 00000000 00001c58 2**0 CONTENTS, READONLY
8 NRV_HEAD 00000008 00000000 00000000 00001c5c 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000028 00000000 00000000 00001c64 2**0 CONTENTS, READONLY
10 ELFMAINY 0000002a 00000000 00000000 00001c8c 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000bc 00000000 00000000 00001cb6 2**0 CONTENTS, READONLY
4 LZMA_ELF00 0000009c 00000000 00000000 00000610 2**0 CONTENTS, READONLY
5 LZMA_DEC20 00000ad8 00000000 00000000 000006ac 2**0 CONTENTS, READONLY
6 LZMA_DEC10 00000ad8 00000000 00000000 00001184 2**0 CONTENTS, READONLY
7 LZMA_DEC30 00000004 00000000 00000000 00001c5c 2**0 CONTENTS, READONLY
8 NRV_HEAD 00000008 00000000 00000000 00001c60 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000034 00000000 00000000 00001c68 2**0 CONTENTS, READONLY
10 ELFMAINY 0000002a 00000000 00000000 00001c9c 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000bc 00000000 00000000 00001cc6 2**0 CONTENTS, READONLY
SYMBOL TABLE:
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINZ 00000000 ELFMAINZ