diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-04-10 13:59:32 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-04-17 07:09:40 +0200 |
commit | 6572d4e50d73ac60a8974d07de74c27a7f99ebef (patch) | |
tree | 9a1ac37ad643b2fd1082f1e97bdffcf67b450b57 /src/qml/jit/qv4assembler_p.h | |
parent | fc634cb4a2daed40690f0530dc06ff850f3b73ab (diff) |
V4: fix register usage on ARM.
JSC was using r3 as the address scratch register, which collides with
the 4th parameter in a function call. This sometimes shows up when
generateFunctionCall needs to do a calulated jump.
Also fix the usage of r11, which seems to be the fp on some platforms.
Change-Id: Ib2ea64b9342e5aa631db6a7641747f899b2fbd89
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jit/qv4assembler_p.h')
-rw-r--r-- | src/qml/jit/qv4assembler_p.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 085da34ed3..32f9d7e867 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -219,12 +219,12 @@ public: #define ARGUMENTS_IN_REGISTERS #undef HAVE_ALU_OPS_WITH_MEM_OPERAND - static const RegisterID StackFrameRegister = JSC::ARMRegisters::r4; - static const RegisterID StackPointerRegister = JSC::ARMRegisters::sp; + static const RegisterID StackPointerRegister = JSC::ARMRegisters::sp; // r13 + static const RegisterID StackFrameRegister = JSC::ARMRegisters::fp; // r11 static const RegisterID LocalsRegister = JSC::ARMRegisters::r7; + static const RegisterID ScratchRegister = JSC::ARMRegisters::r6; static const RegisterID ContextRegister = JSC::ARMRegisters::r5; static const RegisterID ReturnValueRegister = JSC::ARMRegisters::r0; - static const RegisterID ScratchRegister = JSC::ARMRegisters::r6; static const FPRegisterID FPGpr0 = JSC::ARMRegisters::d0; static const FPRegisterID FPGpr1 = JSC::ARMRegisters::d1; |