Fix crash on ARMv7 when leaving functions
authorSimon Hausmann <simon.hausmann@digia.com>
Mon, 24 Jun 2013 07:31:43 +0000 (09:31 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Mon, 24 Jun 2013 08:44:10 +0000 (10:44 +0200)
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>
src/qml/qml/v4/qv4isel_masm.cpp

index 0f4f08d..4e27df7 100644 (file)
@@ -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