diff options
Diffstat (limited to 'src/3rdparty/masm/assembler')
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssembler.h | 31 | ||||
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssemblerARMv7.h | 5 |
2 files changed, 34 insertions, 2 deletions
diff --git a/src/3rdparty/masm/assembler/MacroAssembler.h b/src/3rdparty/masm/assembler/MacroAssembler.h index 1fbca4c55b..1d0fa0003e 100644 --- a/src/3rdparty/masm/assembler/MacroAssembler.h +++ b/src/3rdparty/masm/assembler/MacroAssembler.h @@ -68,6 +68,7 @@ typedef MacroAssemblerSH4 MacroAssemblerBase; namespace JSC { +template <typename MacroAssemblerBase> class MacroAssembler : public MacroAssemblerBase { public: using DoubleCondition = typename MacroAssemblerBase::DoubleCondition; @@ -96,6 +97,18 @@ public: using MacroAssemblerBase::jump; using MacroAssemblerBase::branch32; using MacroAssemblerBase::move; + using MacroAssemblerBase::store32; + using MacroAssemblerBase::add32; + using MacroAssemblerBase::xor32; + using MacroAssemblerBase::sub32; + using MacroAssemblerBase::load32; +#if CPU(X86_64) || CPU(ARM64) + using MacroAssemblerBase::add64; + using MacroAssemblerBase::sub64; + using MacroAssemblerBase::xor64; + using MacroAssemblerBase::load64; + using MacroAssemblerBase::store64; +#endif #if ENABLE(JIT_CONSTANT_BLINDING) using MacroAssemblerBase::add32; @@ -344,7 +357,7 @@ public: static const unsigned BlindingModulus = 64; bool shouldConsiderBlinding() { - return !(random() & (BlindingModulus - 1)); + return !(this->random() & (BlindingModulus - 1)); } // Ptr methods @@ -1468,6 +1481,22 @@ public: #endif }; +#if CPU(ARM_THUMB2) +typedef MacroAssembler<MacroAssemblerARMv7> DefaultMacroAssembler; +#elif CPU(ARM64) +typedef MacroAssembler<MacroAssemblerARM64> DefaultMacroAssembler; +#elif CPU(ARM_TRADITIONAL) +typedef MacroAssembler<MacroAssemblerARM> DefaultMacroAssembler; +#elif CPU(MIPS) +typedef MacroAssembler<MacroAssemblerMIPS> DefaultMacroAssembler; +#elif CPU(X86) +typedef MacroAssembler<MacroAssemblerX86> DefaultMacroAssembler; +#elif CPU(X86_64) +typedef MacroAssembler<MacroAssemblerX86_64> DefaultMacroAssembler; +#elif CPU(SH4) +typedef JSC::MacroAssemblerSH4 DefaultMacroAssembler; +#endif + } // namespace JSC #else // ENABLE(ASSEMBLER) diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h index 73833c0ceb..9f5a089a75 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h @@ -526,7 +526,9 @@ public: // operand objects to loads and store will be implicitly constructed if a // register is passed. -private: + // internal function, but public because of "using load32;" in template sub-classes to pull + // in the other public overloads. + void load32(ArmAddress address, RegisterID dest) { if (address.type == ArmAddress::HasIndex) @@ -541,6 +543,7 @@ private: } } +private: void load16(ArmAddress address, RegisterID dest) { if (address.type == ArmAddress::HasIndex) |