Constant-riscv-c.h (2614B)
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 #ifndef jit_riscv64_constant_Constant_riscv64_c_h_ 5 #define jit_riscv64_constant_Constant_riscv64_c_h_ 6 7 #include "jit/riscv64/constant/Base-constant-riscv.h" 8 namespace js { 9 namespace jit { 10 enum OpcodeRISCVC : uint32_t { 11 12 RO_C_ADDI4SPN = C0 | (0b000 << kRvcFunct3Shift), 13 RO_C_ADDI16SP = C1 | (0b011 << kRvcFunct3Shift), 14 RO_C_LW = C0 | (0b010 << kRvcFunct3Shift), 15 RO_C_SW = C0 | (0b110 << kRvcFunct3Shift), 16 RO_C_NOP_ADDI = C1 | (0b000 << kRvcFunct3Shift), 17 RO_C_LI = C1 | (0b010 << kRvcFunct3Shift), 18 RO_C_SUB = C1 | (0b100011 << kRvcFunct6Shift) | (FUNCT2_0 << kRvcFunct2Shift), 19 RO_C_XOR = C1 | (0b100011 << kRvcFunct6Shift) | (FUNCT2_1 << kRvcFunct2Shift), 20 RO_C_OR = C1 | (0b100011 << kRvcFunct6Shift) | (FUNCT2_2 << kRvcFunct2Shift), 21 RO_C_AND = C1 | (0b100011 << kRvcFunct6Shift) | (FUNCT2_3 << kRvcFunct2Shift), 22 RO_C_LUI_ADD = C1 | (0b011 << kRvcFunct3Shift), 23 RO_C_MISC_ALU = C1 | (0b100 << kRvcFunct3Shift), 24 RO_C_J = C1 | (0b101 << kRvcFunct3Shift), 25 RO_C_BEQZ = C1 | (0b110 << kRvcFunct3Shift), 26 RO_C_BNEZ = C1 | (0b111 << kRvcFunct3Shift), 27 RO_C_SLLI = C2 | (0b000 << kRvcFunct3Shift), 28 RO_C_LWSP = C2 | (0b010 << kRvcFunct3Shift), 29 RO_C_JR_MV_ADD = C2 | (0b100 << kRvcFunct3Shift), 30 RO_C_JR = C2 | (0b1000 << kRvcFunct4Shift), 31 RO_C_MV = C2 | (0b1000 << kRvcFunct4Shift), 32 RO_C_EBREAK = C2 | (0b1001 << kRvcFunct4Shift), 33 RO_C_JALR = C2 | (0b1001 << kRvcFunct4Shift), 34 RO_C_ADD = C2 | (0b1001 << kRvcFunct4Shift), 35 RO_C_SWSP = C2 | (0b110 << kRvcFunct3Shift), 36 37 RO_C_FSD = C0 | (0b101 << kRvcFunct3Shift), 38 RO_C_FLD = C0 | (0b001 << kRvcFunct3Shift), 39 RO_C_FLDSP = C2 | (0b001 << kRvcFunct3Shift), 40 RO_C_FSDSP = C2 | (0b101 << kRvcFunct3Shift), 41 #ifdef JS_CODEGEN_RISCV64 42 RO_C_LD = C0 | (0b011 << kRvcFunct3Shift), 43 RO_C_SD = C0 | (0b111 << kRvcFunct3Shift), 44 RO_C_LDSP = C2 | (0b011 << kRvcFunct3Shift), 45 RO_C_SDSP = C2 | (0b111 << kRvcFunct3Shift), 46 RO_C_ADDIW = C1 | (0b001 << kRvcFunct3Shift), 47 RO_C_SUBW = 48 C1 | (0b100111 << kRvcFunct6Shift) | (FUNCT2_0 << kRvcFunct2Shift), 49 RO_C_ADDW = 50 C1 | (0b100111 << kRvcFunct6Shift) | (FUNCT2_1 << kRvcFunct2Shift), 51 #endif 52 #ifdef JS_CODEGEN_RISCV32 53 RO_C_FLWSP = C2 | (0b011 << kRvcFunct3Shift), 54 RO_C_FSWSP = C2 | (0b111 << kRvcFunct3Shift), 55 RO_C_FLW = C0 | (0b011 << kRvcFunct3Shift), 56 RO_C_FSW = C0 | (0b111 << kRvcFunct3Shift), 57 #endif 58 }; 59 } // namespace jit 60 } // namespace js 61 #endif // jit_riscv64_constant_Constant_riscv64_c_h_