aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-06-24 09:31:43 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2013-06-24 10:44:10 +0200
commit8217ec1b888f3ff93f004801b018c5f85362c484 (patch)
treeda3b24eb97a90756584ea7ec4ead031bf54cd340
parent948fae8cacb440be638fd00c4a413fdf30f51a36 (diff)
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>
-rw-r--r--src/qml/qml/v4/qv4isel_masm.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/qml/qml/v4/qv4isel_masm.cpp b/src/qml/qml/v4/qv4isel_masm.cpp
index 0f4f08dbf4..4e27df7da7 100644
--- a/src/qml/qml/v4/qv4isel_masm.cpp
+++ b/src/qml/qml/v4/qv4isel_masm.cpp
@@ -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