From bec019b5fe35e1701c944eb340df458d5e3d1cdb Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 15 Apr 2013 11:25:09 +0200 Subject: [PATCH] Fix loading of this value on 32-bit Make sure to copy all 64-bits out of ctx->thisObject Change-Id: I9984f83f5f238177e75e469c574ef49ee5bb0665 Reviewed-by: Simon Hausmann --- src/v4/qv4isel_masm.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/v4/qv4isel_masm.cpp b/src/v4/qv4isel_masm.cpp index 97d3bea..a9d41ca 100644 --- a/src/v4/qv4isel_masm.cpp +++ b/src/v4/qv4isel_masm.cpp @@ -824,8 +824,12 @@ void InstructionSelection::callValue(V4IR::Temp *value, V4IR::ExprList *args, V4 void InstructionSelection::loadThisObject(V4IR::Temp *temp) { +#if defined(VALUE_FITS_IN_REGISTER) _as->loadPtr(Pointer(Assembler::ContextRegister, offsetof(ExecutionContext, thisObject)), Assembler::ReturnValueRegister); _as->storeArgument(Assembler::ReturnValueRegister, temp); +#else + _as->copyValue(temp, Pointer(Assembler::ContextRegister, offsetof(ExecutionContext, thisObject))); +#endif } void InstructionSelection::loadConst(V4IR::Const *sourceConst, V4IR::Temp *targetTemp) -- 2.7.4