void __qmljs_llvm_get_this_object(ExecutionContext *ctx, Value *result)
{
- *result = __qmljs_get_thisObject(ctx);
+ __qmljs_get_thisObject(ctx, result);
}
void __qmljs_llvm_delete_subscript(ExecutionContext *ctx, Value *result, Value *base, Value *index)
MOTH_END_INSTR(Ret)
MOTH_BEGIN_INSTR(LoadThis)
- VALUE(instr.result) = __qmljs_get_thisObject(context);
+ __qmljs_get_thisObject(context, VALUEPTR(instr.result));
MOTH_END_INSTR(LoadThis)
MOTH_BEGIN_INSTR(InplaceElementOp)
}
-Value __qmljs_get_thisObject(ExecutionContext *ctx)
+void __qmljs_get_thisObject(ExecutionContext *ctx, Value *result)
{
- return ctx->thisObject;
+ *result = ctx->thisObject;
}
uint __qmljs_equal(const Value &x, const Value &y, ExecutionContext *ctx)
void __qmljs_foreach_next_property_name(Value *result, const Value &foreach_iterator);
// context
-Value __qmljs_get_thisObject(ExecutionContext *ctx);
+void __qmljs_get_thisObject(ExecutionContext *ctx, Value *result);
// type conversion and testing
Value __qmljs_to_primitive(const Value &value, ExecutionContext *ctx, int typeHint);
void InstructionSelection::loadThisObject(IR::Temp *temp)
{
- generateFunctionCall(temp, __qmljs_get_thisObject, Assembler::ContextRegister);
+ generateFunctionCall(Assembler::Void, __qmljs_get_thisObject, Assembler::ContextRegister, Assembler::PointerToValue(temp));
}
void InstructionSelection::loadConst(IR::Const *sourceConst, IR::Temp *targetTemp)