aboutsummaryrefslogtreecommitdiffstats
path: root/src/3rdparty
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2017-11-14 10:45:06 +0100
committerLars Knoll <lars.knoll@qt.io>2017-11-17 11:53:42 +0000
commit3658f534cb1947663d29b9db00dcced462674aed (patch)
treea0c46c3c70c228426b4b774fb742b25a4854be9a /src/3rdparty
parent75584bde397b1a7e92281855ea04e743fae7c1c5 (diff)
V4: Add a baseline JIT
This patch add a JIT back in for all platforms that supported JITting before, with the exception of MIPS. Change-Id: I51bc5ce3a2ac40e0510bd72a563af897c5b60343 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/3rdparty')
-rw-r--r--src/3rdparty/masm/assembler/MacroAssembler.h2
-rw-r--r--src/3rdparty/masm/assembler/MacroAssemblerARMv7.h11
-rw-r--r--src/3rdparty/masm/assembler/MacroAssemblerX86_64.h13
3 files changed, 25 insertions, 1 deletions
diff --git a/src/3rdparty/masm/assembler/MacroAssembler.h b/src/3rdparty/masm/assembler/MacroAssembler.h
index 6e77a9ffb7..20ddcadae1 100644
--- a/src/3rdparty/masm/assembler/MacroAssembler.h
+++ b/src/3rdparty/masm/assembler/MacroAssembler.h
@@ -810,7 +810,7 @@ public:
Jump branchPtr(RelationalCondition cond, RegisterID left, TrustedImmPtr right)
{
- return branch64(cond, left, TrustedImm64(right));
+ return this->branch64(cond, left, TrustedImm64(right));
}
Jump branchPtr(RelationalCondition cond, RegisterID left, Address right)
diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h
index fe8170d098..d91122d4a1 100644
--- a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h
+++ b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h
@@ -815,6 +815,17 @@ public:
store8(src, setupArmAddress(address));
}
+ void store8(RegisterID src, Address address)
+ {
+ store8(src, setupArmAddress(address));
+ }
+
+ void store8(TrustedImm32 imm, Address address)
+ {
+ move(imm, dataTempRegister);
+ store8(dataTempRegister, address);
+ }
+
#if !defined(V4_BOOTSTRAP)
void store8(RegisterID src, void* address)
{
diff --git a/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h b/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h
index c7c6aae637..002caaae78 100644
--- a/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h
+++ b/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h
@@ -292,6 +292,12 @@ public:
or64(imm, dest);
}
+ void or64(TrustedImm64 imm, RegisterID src, RegisterID dest)
+ {
+ move(src, dest);
+ or64(imm, dest);
+ }
+
void rotateRight64(TrustedImm32 imm, RegisterID srcDst)
{
m_assembler.rorq_i8r(imm.m_value, srcDst);
@@ -366,6 +372,13 @@ public:
}
}
+ void urshift64(RegisterID src, TrustedImm32 imm, RegisterID dest)
+ {
+ if (src != dest)
+ move(src, dest);
+ urshift64(imm, dest);
+ }
+
void urshift64(TrustedImm32 imm, RegisterID dest)
{
m_assembler.shrq_i8r(imm.m_value, dest);