void __qmljs_llvm_get_exception(ExecutionContext *context, Value *result)
{
- *result = __qmljs_get_exception(context);
+ __qmljs_get_exception(context, result);
}
void __qmljs_llvm_foreach_iterator_object(ExecutionContext *context, Value *result, Value *in)
MOTH_END_INSTR(CallBuiltinDeleteExceptionHandler)
MOTH_BEGIN_INSTR(CallBuiltinGetException)
- VALUE(instr.result) = __qmljs_get_exception(context);
+ __qmljs_get_exception(context, VALUEPTR(instr.result));
MOTH_END_INSTR(CallBuiltinGetException)
MOTH_BEGIN_INSTR(CallBuiltinPushScope)
context->engine->unwindStack.pop_back();
}
-Value __qmljs_get_exception(ExecutionContext *context)
+void __qmljs_get_exception(ExecutionContext *context, Value *result)
{
- return context->engine->exception;
+ *result = context->engine->exception;
}
void __qmljs_builtin_typeof(ExecutionContext *ctx, Value *result, const Value &value)
// actually returns a jmp_buf *
Q_V4_EXPORT void *__qmljs_create_exception_handler(ExecutionContext *context);
void __qmljs_delete_exception_handler(ExecutionContext *context);
-Value __qmljs_get_exception(ExecutionContext *context);
+void __qmljs_get_exception(ExecutionContext *context, Value *result);
// binary operators
typedef void (*BinOp)(ExecutionContext *ctx, Value *result, const Value &left, const Value &right);
void InstructionSelection::callBuiltinGetException(IR::Temp *result)
{
- generateFunctionCall(result, __qmljs_get_exception, Assembler::ContextRegister);
+ generateFunctionCall(Assembler::Void, __qmljs_get_exception, Assembler::ContextRegister, Assembler::PointerToValue(result));
}
void InstructionSelection::callBuiltinForeachIteratorObject(IR::Temp *arg, IR::Temp *result)