diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-03-28 16:14:24 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-03-29 07:05:00 +0000 |
commit | 05090868b816d2add1c22078a015a6dc19f401ae (patch) | |
tree | 95690cfc43226e1e2788adaf1a44e58ff74e2e3a /src | |
parent | 03006adeecfba8fdfa219e2a54f93eea21c81eeb (diff) |
Simplify function prologue code in the JIT
We don't have to do a engine->current->engine dance to get hold of the
engine pointer, in order to update jsStackTop. We have a dedicated
engine register :)
Change-Id: I187ea67bf9f3e43b0048dca3cd6ee35f70d8737c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/jit/qv4assembler.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index c5a60ec013..d239ed9907 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -529,9 +529,7 @@ void Assembler<TargetConfiguration>::returnFromFunction(IR::Ret *s, RegisterInfo const int locals = stackLayout().calculateJSStackFrameSize(); subPtr(TrustedImm32(sizeof(QV4::Value)*locals), JITTargetPlatform::LocalsRegister); - loadPtr(Address(JITTargetPlatform::EngineRegister, targetStructureOffset(offsetof(QV4::EngineBase, current))), JITTargetPlatform::ScratchRegister); - loadPtr(Address(JITTargetPlatform::ScratchRegister, targetStructureOffset(Heap::ExecutionContext::baseOffset + offsetof(Heap::ExecutionContextData, engine))), JITTargetPlatform::ScratchRegister); - storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::ScratchRegister, targetStructureOffset(offsetof(EngineBase, jsStackTop)))); + storePtr(JITTargetPlatform::LocalsRegister, Address(JITTargetPlatform::EngineRegister, targetStructureOffset(offsetof(EngineBase, jsStackTop)))); leaveStandardStackFrame(regularRegistersToSave, fpRegistersToSave); ret(); |