diff options
Diffstat (limited to 'src/3rdparty/masm/assembler/MacroAssemblerARMv7.h')
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssemblerARMv7.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h index d91122d4a1..99801a0e3b 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h @@ -255,6 +255,14 @@ public: store32(dataTempRegister, address.m_ptr); } + void getEffectiveAddress(BaseIndex address, RegisterID dest) + { + m_assembler.lsl(addressTempRegister, address.index, static_cast<int>(address.scale)); + m_assembler.add(dest, address.base, addressTempRegister); + if (address.offset) + add32(TrustedImm32(address.offset), dest); + } + void add64(TrustedImm32 imm, AbsoluteAddress address) { move(TrustedImmPtr(address.m_ptr), addressTempRegister); @@ -680,6 +688,11 @@ public: load32(setupArmAddress(address), dest); } + void load16Unaligned(ImplicitAddress address, RegisterID dest) + { + load16(setupArmAddress(address), dest); + } + void load16Unaligned(BaseIndex address, RegisterID dest) { load16(setupArmAddress(address), dest); |