aboutsummaryrefslogtreecommitdiffstats
path: root/src/3rdparty/masm/assembler
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2019-02-22 11:37:59 +0100
committerUlf Hermann <ulf.hermann@qt.io>2019-04-18 11:49:23 +0000
commit851387d40662cd82ff44a1792825265f82fe7ddf (patch)
tree139e48a2ebcc7c71f53020a3e62b4865a500293c /src/3rdparty/masm/assembler
parentfe8962aa455c7d2a094b0d8bf29e9662a3448719 (diff)
Enable back references in Yarr
The new version of Yarr has them and using them could give us some performance benefits. Add the required load16 primitive for the ARM64 aseembler from webkit. Change-Id: Ief498a353f9804c6b0f4ac091fb3707ffcb9f8cd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/3rdparty/masm/assembler')
-rw-r--r--src/3rdparty/masm/assembler/MacroAssemblerARM64.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARM64.h b/src/3rdparty/masm/assembler/MacroAssemblerARM64.h
index e5a704292d..3e6dfcf635 100644
--- a/src/3rdparty/masm/assembler/MacroAssemblerARM64.h
+++ b/src/3rdparty/masm/assembler/MacroAssemblerARM64.h
@@ -1126,6 +1126,14 @@ public:
m_assembler.ldrh(dest, address.base, memoryTempRegister);
}
+ void load16(ExtendedAddress address, RegisterID dest)
+ {
+ moveToCachedReg(TrustedImmPtr(reinterpret_cast<void*>(address.offset)), m_cachedMemoryTempRegister);
+ m_assembler.ldrh(dest, memoryTempRegister, address.base, ARM64Assembler::UXTX, 1);
+ if (dest == memoryTempRegister)
+ m_cachedMemoryTempRegister.invalidate();
+ }
+
void load16Unaligned(ImplicitAddress address, RegisterID dest)
{
load16(address, dest);