This is trivial to inline.
Change-Id: Idccfc3c39d19e85768ec1be4b3b62b67abf00325
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
void __qmljs_llvm_get_this_object(ExecutionContext *ctx, Value *result)
{
- __qmljs_get_thisObject(ctx, result);
+ *result = ctx->thisObject;
}
void __qmljs_llvm_delete_subscript(ExecutionContext *ctx, Value *result, Value *base, Value *index)
MOTH_END_INSTR(Ret)
MOTH_BEGIN_INSTR(LoadThis)
- __qmljs_get_thisObject(context, VALUEPTR(instr.result));
+ VALUE(instr.result) = context->thisObject;
MOTH_END_INSTR(LoadThis)
MOTH_BEGIN_INSTR(InplaceElementOp)
void InstructionSelection::loadThisObject(V4IR::Temp *temp)
{
- generateFunctionCall(Assembler::Void, __qmljs_get_thisObject, Assembler::ContextRegister, Assembler::PointerToValue(temp));
+ _as->loadPtr(Pointer(Assembler::ContextRegister, offsetof(ExecutionContext, thisObject)), Assembler::ReturnValueRegister);
+ _as->storeArgument(Assembler::ReturnValueRegister, temp);
}
void InstructionSelection::loadConst(V4IR::Const *sourceConst, V4IR::Temp *targetTemp)
void __qmljs_foreach_iterator_object(ExecutionContext *ctx, Value *result, const Value &in);
void __qmljs_foreach_next_property_name(Value *result, const Value &foreach_iterator);
-// context
-void __qmljs_get_thisObject(ExecutionContext *ctx, Value *result);
-
// type conversion and testing
Value __qmljs_to_primitive(const Value &value, int typeHint);
Bool __qmljs_to_boolean(const Value &value);