Fix crash on ARMv7 when leaving functions
Don't clobber r6 (ScratchRegister) when adjusting the stack pointer for the locals, as it is a callee-save register. Change-Id: Ib14fca0cb0807e7b07d0210d102ae9cc57828741 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
parent
948fae8cac
commit
8217ec1b88
|
@ -267,8 +267,8 @@ void Assembler::leaveStandardStackFrame(int locals)
|
|||
// Work around bug in ARMv7Assembler.h where add32(imm, sp, sp) doesn't
|
||||
// work well for large immediates.
|
||||
#if CPU(ARM_THUMB2)
|
||||
move(TrustedImm32(frameSize), Assembler::ScratchRegister);
|
||||
add32(Assembler::ScratchRegister, StackPointerRegister);
|
||||
move(TrustedImm32(frameSize), JSC::ARMRegisters::r3);
|
||||
add32(JSC::ARMRegisters::r3, StackPointerRegister);
|
||||
#else
|
||||
addPtr(TrustedImm32(frameSize), StackPointerRegister);
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue