35#ifndef V8_CODEGEN_RISCV_BASE_ASSEMBLER_RISCV_H_
36#define V8_CODEGEN_RISCV_BASE_ASSEMBLER_RISCV_H_
56#define DEBUG_PRINTF(...) \
57 if (v8_flags.riscv_debug) { \
58 printf(__VA_ARGS__); \
61class SafepointTableBuilder;
81 virtual void emit(uint64_t
x) = 0;
void GenInstrIShiftW(uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t shamt)
void GenInstrR(uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, Register rs2)
void GenInstrCI(uint8_t funct3, BaseOpcode opcode, Register rd, int8_t imm6)
virtual void emit(uint64_t x)=0
void GenInstrBranchCC_rri(uint8_t funct3, Register rs1, Register rs2, int16_t imm12)
virtual void emit(Instr x)=0
void GenInstrRFrm(uint8_t funct7, BaseOpcode opcode, Register rd, Register rs1, Register rs2, FPURoundingMode frm)
void GenInstrJ(BaseOpcode opcode, Register rd, int32_t imm20)
void GenInstrLoad_ri(uint8_t funct3, Register rd, Register rs1, int16_t imm12)
void GenInstrALU_ri(uint8_t funct3, Register rd, Register rs1, int16_t imm12)
void GenInstrR4(uint8_t funct2, BaseOpcode opcode, Register rd, Register rs1, Register rs2, Register rs3, FPURoundingMode frm)
void GenInstrShift_ri(bool arithshift, uint8_t funct3, Register rd, Register rs1, uint8_t shamt)
virtual int32_t branch_offset_helper(Label *L, OffsetSize bits)=0
virtual void emit(ShortInstr x)=0
void GenInstrALUW_rr(uint8_t funct7, uint8_t funct3, Register rd, Register rs1, Register rs2)
void GenInstrCR(uint8_t funct4, BaseOpcode opcode, Register rd, Register rs2)
void GenInstrCB(uint8_t funct3, BaseOpcode opcode, Register rs1, uint8_t uimm8)
void GenInstrCSR_ir(uint8_t funct3, Register rd, ControlStatusReg csr, Register rs1)
void GenInstrALU_rr(uint8_t funct7, uint8_t funct3, Register rd, Register rs1, Register rs2)
void GenInstrCIU(uint8_t funct3, BaseOpcode opcode, Register rd, uint8_t uimm6)
void GenInstrPriv(uint8_t funct7, Register rs1, Register rs2)
void GenInstrCJ(uint8_t funct3, BaseOpcode opcode, uint16_t uint11)
void GenInstrCSR_ii(uint8_t funct3, Register rd, ControlStatusReg csr, uint8_t rs1)
void GenInstrStore_rri(uint8_t funct3, Register rs1, Register rs2, int16_t imm12)
void GenInstrStoreFP_rri(uint8_t funct3, Register rs1, FPURegister rs2, int16_t imm12)
void GenInstrCL(uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t uimm5)
void GenInstrALUFP_rr(uint8_t funct7, uint8_t funct3, FPURegister rd, FPURegister rs1, FPURegister rs2)
virtual void ClearVectorunit()=0
void GenInstrS(uint8_t funct3, BaseOpcode opcode, Register rs1, Register rs2, int16_t imm12)
void GenInstrCBA(uint8_t funct3, uint8_t funct2, BaseOpcode opcode, Register rs1, int8_t imm6)
void GenInstrI(uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, int16_t imm12)
void GenInstrRAtomic(uint8_t funct5, bool aq, bool rl, uint8_t funct3, Register rd, Register rs1, Register rs2)
void GenInstrU(BaseOpcode opcode, Register rd, int32_t imm20)
void GenInstrB(uint8_t funct3, BaseOpcode opcode, Register rs1, Register rs2, int16_t imm12)
virtual void BlockTrampolinePoolFor(int instructions)=0
void GenInstrCA(uint8_t funct6, BaseOpcode opcode, Register rd, uint8_t funct, Register rs2)
void GenInstrCS(uint8_t funct3, BaseOpcode opcode, Register rs2, Register rs1, uint8_t uimm5)
void GenInstrCIW(uint8_t funct3, BaseOpcode opcode, Register rd, uint8_t uimm8)
void GenInstrLoadFP_ri(uint8_t funct3, FPURegister rd, Register rs1, int16_t imm12)
void GenInstrShiftW_ri(bool arithshift, uint8_t funct3, Register rd, Register rs1, uint8_t shamt)
void GenInstrCSS(uint8_t funct3, BaseOpcode opcode, FPURegister rs2, uint8_t uimm6)
void GenInstrIShift(uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t shamt)