From: Simon Hausmann Date: Tue, 25 Jun 2013 14:18:30 +0000 (+0200) Subject: Fix try/catch on ARM X-Git-Tag: upstream/5.2.1~669^2~124 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ab6124728fc33e4be7ce0d4eec278a446bd98e75;p=platform%2Fupstream%2Fqtdeclarative.git 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 --- 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.