summaryrefslogtreecommitdiffstats
path: root/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp
diff options
context:
space:
mode:
authorJiaxun Yang <jiaxun.yang@flygoat.com>2020-05-12 12:40:05 +0800
committerJiaxun Yang <jiaxun.yang@flygoat.com>2020-05-14 16:31:55 +0800
commit4fc1cd5563bf3b7312ccd8317f296a8142ba2ff5 (patch)
treeaea6797e42091d18f925b8fc163018811da816e1 /js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp
parent4e2559d92f3f1238013b8d6e26e49632d13ba873 (diff)
downloadUXP-4fc1cd5563bf3b7312ccd8317f296a8142ba2ff5.tar
UXP-4fc1cd5563bf3b7312ccd8317f296a8142ba2ff5.tar.gz
UXP-4fc1cd5563bf3b7312ccd8317f296a8142ba2ff5.tar.lz
UXP-4fc1cd5563bf3b7312ccd8317f296a8142ba2ff5.tar.xz
UXP-4fc1cd5563bf3b7312ccd8317f296a8142ba2ff5.zip
Bug 1323136 - wasm: MIPS: Do bounds check in 32-bit
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.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp b/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp
index 18997e542..658cafd36 100644
--- a/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp
+++ b/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp
@@ -39,6 +39,17 @@ MacroAssemblerMIPSShared::ma_li(Register dest, Imm32 imm)
}
}
+// This method generates lui and ori instruction pair that can be modified by
+// UpdateLuiOriValue, either during compilation (eg. Assembler::bind), or
+// during execution (eg. jit::PatchJump).
+void
+MacroAssemblerMIPSShared::ma_liPatchable(Register dest, Imm32 imm)
+{
+ m_buffer.ensureSpace(2 * sizeof(uint32_t));
+ as_lui(dest, Imm16::Upper(imm).encode());
+ as_ori(dest, dest, Imm16::Lower(imm).encode());
+}
+
// Shifts
void
MacroAssemblerMIPSShared::ma_sll(Register rd, Register rt, Imm32 shift)