diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-01-09 16:11:36 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-01-28 19:04:01 +0000 |
commit | f2c92c5ccdf6789ddc00ec14ec9e399c6a431a9b (patch) | |
tree | a7e889efc6ff506071f235a670716ddb728a0f8d /src/qml/jit/qv4assembler_p.h | |
parent | d0cb0daed5217de2a2bc180f3ad2fb3344df21c1 (diff) |
Make QV4::JIT::TargetPlatform a template
In the future we're going to need different specializations of that
depending on the target platform chosen at run-time.
Change-Id: I2ed6f41c3eb0487d83afee01f81b78361678dfd9
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 | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index ad48e66693..290668e8af 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -89,7 +89,23 @@ struct CompilationUnit : public QV4::CompiledData::CompilationUnit QVector<JSC::MacroAssemblerCodeRef> codeRefs; }; -class Assembler : public JSC::MacroAssembler, public TargetPlatform +#if CPU(ARM_THUMB2) +typedef JSC::MacroAssemblerARMv7 PlatformAssembler; +#elif CPU(ARM64) +typedef JSC::MacroAssemblerARM64 PlatformAssembler; +#elif CPU(ARM_TRADITIONAL) +typedef JSC::MacroAssemblerARM PlatformAssembler; +#elif CPU(MIPS) +typedef JSC::MacroAssemblerMIPS PlatformAssembler; +#elif CPU(X86) +typedef JSC::MacroAssemblerX86 PlatformAssembler; +#elif CPU(X86_64) +typedef JSC::MacroAssemblerX86_64 PlatformAssembler; +#elif CPU(SH4) +typedef JSC::MacroAssemblerSH4 PlatformAssembler; +#endif + +class Assembler : public JSC::MacroAssembler, public TargetPlatform<PlatformAssembler> { Q_DISABLE_COPY(Assembler) @@ -821,7 +837,7 @@ public: loadArgumentOnStackOrRegister<0>(arg1); #ifdef RESTORE_EBX_ON_CALL - load32(ebxAddressOnStack(), JSC::X86Registers::ebx); // restore the GOT ptr + load32(this->ebxAddressOnStack(), JSC::X86Registers::ebx); // restore the GOT ptr #endif callAbsolute(functionName, function); |