Prospective fix for JIT crashes on ARM
authorSimon Hausmann <simon.hausmann@digia.com>
Fri, 21 Jun 2013 06:58:02 +0000 (08:58 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Mon, 24 Jun 2013 08:42:49 +0000 (10:42 +0200)
Don't do the ret(n) cleanup dance on ARM, as the address of where to
store the return value is provided in r0 and therefore there's nothing
to clean up.

Change-Id: I5b34355e52c9d374d31981361bdfb67193530d38
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
src/qml/qml/v4/qv4isel_masm.cpp

index fce0252..98d357a 100644 (file)
@@ -1283,7 +1283,7 @@ void InstructionSelection::visitRet(V4IR::Ret *s)
     }
 
     _as->leaveStandardStackFrame(_locals);
-#if !defined(RETURN_VALUE_IN_REGISTER)
+#if !defined(ARGUMENTS_IN_REGISTERS) && !defined(RETURN_VALUE_IN_REGISTER)
     // Emulate ret(n) instruction
     // Pop off return address into scratch register ...
     _as->pop(Assembler::ScratchRegister);