diff options
author | Jiaxun Yang <jiaxun.yang@flygoat.com> | 2020-05-12 12:40:07 +0800 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-05-20 14:00:59 +0000 |
commit | 3fb8648bed83c95f601d2c2e20962cbd08bc7dc7 (patch) | |
tree | 2de25a180e7fd42a82be6aad4c8db98ae24d32cf /js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp | |
parent | f18d78dea035c5291984d1c468336d20dc0b47b7 (diff) | |
download | UXP-3fb8648bed83c95f601d2c2e20962cbd08bc7dc7.tar UXP-3fb8648bed83c95f601d2c2e20962cbd08bc7dc7.tar.gz UXP-3fb8648bed83c95f601d2c2e20962cbd08bc7dc7.tar.lz UXP-3fb8648bed83c95f601d2c2e20962cbd08bc7dc7.tar.xz UXP-3fb8648bed83c95f601d2c2e20962cbd08bc7dc7.zip |
Bug 1271968 - IonMonkey: MIPS: Replace long jumps by mixed jumps.
Tag: #1542
Diffstat (limited to 'js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp')
-rw-r--r-- | js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp b/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp index 658cafd36..a8b53e67c 100644 --- a/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp +++ b/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp @@ -959,6 +959,22 @@ MacroAssemblerMIPSShared::compareFloatingPoint(FloatFormat fmt, FloatRegister lh } void +MacroAssemblerMIPSShared::GenerateMixedJumps() +{ + // Generate all mixed jumps. + for (size_t i = 0; i < numMixedJumps(); i++) { + MixedJumpPatch& mjp = mixedJump(i); + if (MixedJumpPatch::NONE == mjp.kind && uintptr_t(mjp.target) <= size()) + continue; + BufferOffset bo = m_buffer.nextOffset(); + asMasm().ma_liPatchable(ScratchRegister, ImmWord(0)); + as_jr(ScratchRegister); + as_nop(); + mjp.mid = bo; + } +} + +void MacroAssemblerMIPSShared::ma_cmp_set_double(Register dest, FloatRegister lhs, FloatRegister rhs, DoubleCondition c) { @@ -1572,7 +1588,7 @@ MacroAssembler::call(Register reg) CodeOffset MacroAssembler::call(Label* label) { - ma_bal(label); + ma_jal(label); return CodeOffset(currentOffset()); } |