diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-06-24 09:31:43 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-06-24 10:44:10 +0200 |
commit | 8217ec1b888f3ff93f004801b018c5f85362c484 (patch) | |
tree | da3b24eb97a90756584ea7ec4ead031bf54cd340 | |
parent | 948fae8cacb440be638fd00c4a413fdf30f51a36 (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.cpp | 4 |
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 |