aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jit/qv4assembler_p.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2017-01-09 16:11:36 +0100
committerSimon Hausmann <simon.hausmann@qt.io>2017-01-28 19:04:01 +0000
commitf2c92c5ccdf6789ddc00ec14ec9e399c6a431a9b (patch)
treea7e889efc6ff506071f235a670716ddb728a0f8d /src/qml/jit/qv4assembler_p.h
parentd0cb0daed5217de2a2bc180f3ad2fb3344df21c1 (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.h20
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);