ARM lzma bug in cacheflush
This commit is contained in:
parent
2f6ce88e28
commit
1993e94e53
File diff suppressed because it is too large
Load Diff
@ -112,13 +112,13 @@
|
||||
#define __NR_SYSCALL_BASE 0x900000
|
||||
#define __ARM_NR_BASE (__NR_SYSCALL_BASE+0x0f0000)
|
||||
#define __ARM_NR_cacheflush (__ARM_NR_BASE+2)
|
||||
mov r4,r0 // save result value
|
||||
mov r3,r0 // save result value
|
||||
POP {r0,r1} // dst, ldst
|
||||
ldr r1,[r1] // ldst by reference
|
||||
add r1,r1,r0 // just beyond what was written
|
||||
mov r2,#0
|
||||
swi __ARM_NR_cacheflush // decompressed region
|
||||
mov r0,r4 // result value
|
||||
mov r0,r3 // result value
|
||||
#endif /*}*/
|
||||
|
||||
POP {fp,pc}
|
||||
|
||||
@ -111,8 +111,7 @@ copy:
|
||||
str r3,[sp,#2*4] // sz_unc; lzma needs for EOF
|
||||
add r3, sp,#2*4 // &sz_unc
|
||||
mov lr,pc; mov pc,r5 // decompress folded code [opcode 'bx' not in v4a]
|
||||
add sp,sp,#4 // discard 5th param
|
||||
ldmia sp!,{pc}
|
||||
ldmia sp!,{r1, pc} // discard 5th param; return
|
||||
|
||||
f_decompress:
|
||||
#define LINUX_ARM_CACHEFLUSH 1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user