mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-24 07:46:48 +00:00
ramips: lzma-loader: fix O32 ABI conformance
According to the calling convention of the o32 ABI the caller function must reserve stack space for $a0-$a3 registers in case the callee needs to save its arguments. The assembly startup code does not reserve stack space for these registers thus when the main C function needs to save its arguments, that will cause a stack overflow. Fix the assembly code to reserve stack space for the registers to avoid that. Untested. It seems that the lzma-loader is not used at all? Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 49062
This commit is contained in:
parent
4d0681d865
commit
fc5c19f45b
@ -109,6 +109,9 @@ __bss_check:
|
||||
/* Setup new "C" stack */
|
||||
la sp, _stack
|
||||
|
||||
/* reserve stack space for a0-a3 registers */
|
||||
subu sp, 16
|
||||
|
||||
/* jump to the decompressor routine */
|
||||
la t0, loader_main
|
||||
jr t0
|
||||
|
Loading…
Reference in New Issue
Block a user