commit ab14aa70c09eb5cdd72535cc41f3b29a6acfda85
parent 8688a5602fde55fe31790a2dff598d10477dcba4
Author: Xuan Chen <henry.chen@oss.cipunited.com>
Date: Mon, 24 Nov 2025 12:24:53 +0000
Bug 2001289 - Part 1: [mips64] Add mips64 JSPI support for the CodeGen. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D273765
Diffstat:
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp
@@ -10457,7 +10457,8 @@ void CodeGenerator::visitWasmStackSwitchToSuspendable(
const Register ScratchReg1 = ScratchReg;
# elif defined(JS_CODEGEN_ARM)
const Register ScratchReg1 = ABINonArgReturnVolatileReg;
-# elif defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64)
+# elif defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64) || \
+ defined(JS_CODEGEN_MIPS64)
UseScratchRegisterScope temps(masm);
const Register ScratchReg1 = temps.Acquire();
# else
@@ -10540,7 +10541,8 @@ void CodeGenerator::visitWasmStackSwitchToSuspendable(
// Call wasm function fast.
# ifdef JS_USE_LINK_REGISTER
-# if defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64)
+# if defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64) || \
+ defined(JS_CODEGEN_MIPS64)
masm.mov(ReturnAddressReg, ra);
# else
masm.mov(ReturnAddressReg, lr);
@@ -10606,7 +10608,8 @@ void CodeGenerator::visitWasmStackSwitchToMain(LWasmStackSwitchToMain* lir) {
const Register ScratchReg1 = ScratchReg;
# elif defined(JS_CODEGEN_ARM)
const Register ScratchReg1 = ABINonArgReturnVolatileReg;
-# elif defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64)
+# elif defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64) || \
+ defined(JS_CODEGEN_MIPS64)
UseScratchRegisterScope temps(masm);
const Register ScratchReg1 = temps.Acquire();
# else
@@ -10726,7 +10729,8 @@ void CodeGenerator::visitWasmStackSwitchToMain(LWasmStackSwitchToMain* lir) {
// Call wasm function fast.
# ifdef JS_USE_LINK_REGISTER
-# if defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64)
+# if defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64) || \
+ defined(JS_CODEGEN_MIPS64)
masm.mov(ReturnAddressReg, ra);
# else
masm.mov(ReturnAddressReg, lr);
@@ -10802,7 +10806,8 @@ void CodeGenerator::visitWasmStackContinueOnSuspendable(
const Register ScratchReg1 = ScratchReg;
# elif defined(JS_CODEGEN_ARM)
const Register ScratchReg1 = ABINonArgReturnVolatileReg;
-# elif defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64)
+# elif defined(JS_CODEGEN_LOONG64) || defined(JS_CODEGEN_RISCV64) || \
+ defined(JS_CODEGEN_MIPS64)
UseScratchRegisterScope temps(masm);
const Register ScratchReg1 = temps.Acquire();
# else