diff options
Diffstat (limited to 'src/qml/jit/qv4jit.cpp')
-rw-r--r-- | src/qml/jit/qv4jit.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/qml/jit/qv4jit.cpp b/src/qml/jit/qv4jit.cpp index 15ece7e903..2bc60bff70 100644 --- a/src/qml/jit/qv4jit.cpp +++ b/src/qml/jit/qv4jit.cpp @@ -617,44 +617,40 @@ void BaselineJIT::generate_CreateCallContext() as->storeHeapObject(CallData::Context); } -void BaselineJIT::generate_PushCatchContext(int reg, int index, int name) { as->pushCatchContext(reg, index, name); } +void BaselineJIT::generate_PushCatchContext(int index, int name) { as->pushCatchContext(index, name); } -static void pushWithContextHelper(ExecutionEngine *engine, QV4::Value *stack, int reg) +static void pushWithContextHelper(ExecutionEngine *engine, QV4::Value *stack) { QV4::Value &accumulator = stack[CallData::Accumulator]; accumulator = accumulator.toObject(engine); if (engine->hasException) return; - stack[reg] = stack[CallData::Context]; ExecutionContext *c = static_cast<ExecutionContext *>(stack + CallData::Context); stack[CallData::Context] = Runtime::method_createWithContext(c, accumulator); } -void BaselineJIT::generate_PushWithContext(int reg) +void BaselineJIT::generate_PushWithContext() { STORE_IP(); as->saveAccumulatorInFrame(); - as->prepareCallWithArgCount(3); - as->passInt32AsArg(reg, 2); + as->prepareCallWithArgCount(2); as->passRegAsArg(0, 1); as->passEngineAsArg(0); JIT_GENERATE_RUNTIME_CALL(pushWithContextHelper, Assembler::IgnoreResult); as->checkException(); } -static void pushBlockContextHelper(QV4::Value *stack, int reg, int index) +static void pushBlockContextHelper(QV4::Value *stack, int index) { - stack[reg] = stack[CallData::Context]; ExecutionContext *c = static_cast<ExecutionContext *>(stack + CallData::Context); stack[CallData::Context] = Runtime::method_createBlockContext(c, index); } -void BaselineJIT::generate_PushBlockContext(int reg, int index) +void BaselineJIT::generate_PushBlockContext(int index) { as->saveAccumulatorInFrame(); - as->prepareCallWithArgCount(3); - as->passInt32AsArg(index, 2); - as->passInt32AsArg(reg, 1); + as->prepareCallWithArgCount(2); + as->passInt32AsArg(index, 1); as->passRegAsArg(0, 0); JIT_GENERATE_RUNTIME_CALL(pushBlockContextHelper, Assembler::IgnoreResult); } @@ -701,7 +697,7 @@ void BaselineJIT::generate_PopScriptContext() JIT_GENERATE_RUNTIME_CALL(popScriptContextHelper, Assembler::IgnoreResult); } -void BaselineJIT::generate_PopContext(int reg) { as->popContext(reg); } +void BaselineJIT::generate_PopContext() { as->popContext(); } void BaselineJIT::generate_GetIterator(int iterator) { |