extension-riscv-m.h (1377B)
1 // Copyright 2022 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef jit_riscv64_extension_Extension_riscv_m_h_ 6 #define jit_riscv64_extension_Extension_riscv_m_h_ 7 8 #include "jit/riscv64/extension/base-assembler-riscv.h" 9 #include "jit/riscv64/Register-riscv64.h" 10 namespace js { 11 namespace jit { 12 class AssemblerRISCVM : public AssemblerRiscvBase { 13 // RV32M Standard Extension 14 public: 15 void mul(Register rd, Register rs1, Register rs2); 16 void mulh(Register rd, Register rs1, Register rs2); 17 void mulhsu(Register rd, Register rs1, Register rs2); 18 void mulhu(Register rd, Register rs1, Register rs2); 19 void div(Register rd, Register rs1, Register rs2); 20 void divu(Register rd, Register rs1, Register rs2); 21 void rem(Register rd, Register rs1, Register rs2); 22 void remu(Register rd, Register rs1, Register rs2); 23 #ifdef JS_CODEGEN_RISCV64 24 // RV64M Standard Extension (in addition to RV32M) 25 void mulw(Register rd, Register rs1, Register rs2); 26 void divw(Register rd, Register rs1, Register rs2); 27 void divuw(Register rd, Register rs1, Register rs2); 28 void remw(Register rd, Register rs1, Register rs2); 29 void remuw(Register rd, Register rs1, Register rs2); 30 #endif 31 }; 32 } // namespace jit 33 } // namespace js 34 #endif // jit_riscv64_extension_Extension_riscv_M_h_