From ab6124728fc33e4be7ce0d4eec278a446bd98e75 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 25 Jun 2013 16:18:30 +0200 Subject: [PATCH] Fix try/catch on ARM When returning _to_ tryWrapper we pass the address on where to continue execution in r0. So in our leaveStackFrame() we shouldn't clobber r0 and in fact there's little value in restoring r0-r3 given that they're used to pass arguments and don't require save/restore. Change-Id: Iba0091e19eb74347472e698ffc7687e647a5e5be Reviewed-by: Lars Knoll --- src/qml/qml/v4/qv4isel_masm_p.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/qml/qml/v4/qv4isel_masm_p.h b/src/qml/qml/v4/qv4isel_masm_p.h index 30dbc62..b0ba22d 100644 --- a/src/qml/qml/v4/qv4isel_masm_p.h +++ b/src/qml/qml/v4/qv4isel_masm_p.h @@ -183,10 +183,7 @@ public: inline void platformLeaveStandardStackFrame() { pop(JSC::ARMRegisters::lr); - pop(JSC::ARMRegisters::r0); - pop(JSC::ARMRegisters::r1); - pop(JSC::ARMRegisters::r2); - pop(JSC::ARMRegisters::r3); + addPtr(TrustedImm32(4 * RegisterSize), StackPointerRegister); } #else #error The JIT needs to be ported to this platform. -- 2.7.4