diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-02-01 13:49:37 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-02-07 12:11:37 +0000 |
commit | ff46a4127bbe46d9887457d5740e52ffff4d43d4 (patch) | |
tree | d98a21e0288df8d91f177f7f34b554209b5cb4cf /src/qml/jit/qv4assembler_p.h | |
parent | 9e926ddbf985f8d41747ae8a89ee3752a11011e4 (diff) |
Fix assembler cross-compilation on 32-bit hosts
The GOT register restoring logic needs to be done via TargetPLatform
members instead of plain #ifdefs.
Task-number: QTBUG-58569
Change-Id: If00d3f92558361ad5dcb20c3ff7eff78d31d75d3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/jit/qv4assembler_p.h')
-rw-r--r-- | src/qml/jit/qv4assembler_p.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index b2d7b13401..fd65c9b3d2 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -1372,9 +1372,8 @@ public: if (prepareCall(function)) loadArgumentOnStackOrRegister<0>(arg1); -#ifdef RESTORE_EBX_ON_CALL - load32(this->ebxAddressOnStack(), JSC::X86Registers::ebx); // restore the GOT ptr -#endif + if (JITTargetPlatform::gotRegister != -1) + load32(Address(JITTargetPlatform::FramePointerRegister, JITTargetPlatform::savedGOTRegisterSlotOnStack()), static_cast<RegisterID>(JITTargetPlatform::gotRegister)); // restore the GOT ptr callAbsolute(functionName, function); |