|
| void | c_nop () |
| |
| void | c_addi (Register rd, int8_t imm6) |
| |
| void | c_addi16sp (int16_t imm10) |
| |
| void | c_addi4spn (Register rd, int16_t uimm10) |
| |
| void | c_li (Register rd, int8_t imm6) |
| |
| void | c_lui (Register rd, int8_t imm6) |
| |
| void | c_slli (Register rd, uint8_t shamt6) |
| |
| void | c_lwsp (Register rd, uint16_t uimm8) |
| |
| void | c_jr (Register rs1) |
| |
| void | c_mv (Register rd, Register rs2) |
| |
| void | c_ebreak () |
| |
| void | c_jalr (Register rs1) |
| |
| void | c_j (int16_t imm12) |
| |
| void | c_add (Register rd, Register rs2) |
| |
| void | c_sub (Register rd, Register rs2) |
| |
| void | c_and (Register rd, Register rs2) |
| |
| void | c_xor (Register rd, Register rs2) |
| |
| void | c_or (Register rd, Register rs2) |
| |
| void | c_swsp (Register rs2, uint16_t uimm8) |
| |
| void | c_lw (Register rd, Register rs1, uint16_t uimm7) |
| |
| void | c_sw (Register rs2, Register rs1, uint16_t uimm7) |
| |
| void | c_bnez (Register rs1, int16_t imm9) |
| |
| void | c_beqz (Register rs1, int16_t imm9) |
| |
| void | c_srli (Register rs1, int8_t shamt6) |
| |
| void | c_srai (Register rs1, int8_t shamt6) |
| |
| void | c_andi (Register rs1, int8_t imm6) |
| |
| void | c_fld (FPURegister rd, Register rs1, uint16_t uimm8) |
| |
| void | c_fsd (FPURegister rs2, Register rs1, uint16_t uimm8) |
| |
| void | c_fldsp (FPURegister rd, uint16_t uimm9) |
| |
| void | c_fsdsp (FPURegister rs2, uint16_t uimm9) |
| |
| int | CJumpOffset (Instr instr) |
| |
| int16_t | cjump_offset (Label *L) |
| |
| int32_t | cbranch_offset (Label *L) |
| |
| void | c_j (Label *L) |
| |
| void | c_bnez (Register rs1, Label *L) |
| |
| void | c_beqz (Register rs1, Label *L) |
| |
|
| enum | OffsetSize : int {
kOffset21 = 21
, kOffset12 = 12
, kOffset20 = 20
, kOffset13 = 13
,
kOffset32 = 32
, kOffset11 = 11
, kOffset9 = 9
} |
| |
| virtual int32_t | branch_offset_helper (Label *L, OffsetSize bits)=0 |
| |
| virtual void | emit (Instr x)=0 |
| |
| virtual void | emit (ShortInstr x)=0 |
| |
| virtual void | emit (uint64_t x)=0 |
| |
| virtual void | ClearVectorunit ()=0 |
| |
| void | GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, Register rs2) |
| |
| void | GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, FPURegister rs1, FPURegister rs2) |
| |
| void | GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, FPURegister rs1, Register rs2) |
| |
| void | GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, Register rs2) |
| |
| void | GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, FPURegister rs1, Register rs2) |
| |
| void | GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, FPURegister rs1, FPURegister rs2) |
| |
| void | GenInstrR4 (uint8_t funct2, BaseOpcode opcode, Register rd, Register rs1, Register rs2, Register rs3, FPURoundingMode frm) |
| |
| void | GenInstrR4 (uint8_t funct2, BaseOpcode opcode, FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm) |
| |
| void | GenInstrRAtomic (uint8_t funct5, bool aq, bool rl, uint8_t funct3, Register rd, Register rs1, Register rs2) |
| |
| void | GenInstrRFrm (uint8_t funct7, BaseOpcode opcode, Register rd, Register rs1, Register rs2, FPURoundingMode frm) |
| |
| void | GenInstrI (uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, int16_t imm12) |
| |
| void | GenInstrI (uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, int16_t imm12) |
| |
| void | GenInstrIShift (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t shamt) |
| |
| void | GenInstrIShiftW (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t shamt) |
| |
| void | GenInstrS (uint8_t funct3, BaseOpcode opcode, Register rs1, Register rs2, int16_t imm12) |
| |
| void | GenInstrS (uint8_t funct3, BaseOpcode opcode, Register rs1, FPURegister rs2, int16_t imm12) |
| |
| void | GenInstrB (uint8_t funct3, BaseOpcode opcode, Register rs1, Register rs2, int16_t imm12) |
| |
| void | GenInstrU (BaseOpcode opcode, Register rd, int32_t imm20) |
| |
| void | GenInstrJ (BaseOpcode opcode, Register rd, int32_t imm20) |
| |
| void | GenInstrCR (uint8_t funct4, BaseOpcode opcode, Register rd, Register rs2) |
| |
| void | GenInstrCA (uint8_t funct6, BaseOpcode opcode, Register rd, uint8_t funct, Register rs2) |
| |
| void | GenInstrCI (uint8_t funct3, BaseOpcode opcode, Register rd, int8_t imm6) |
| |
| void | GenInstrCIU (uint8_t funct3, BaseOpcode opcode, Register rd, uint8_t uimm6) |
| |
| void | GenInstrCIU (uint8_t funct3, BaseOpcode opcode, FPURegister rd, uint8_t uimm6) |
| |
| void | GenInstrCIW (uint8_t funct3, BaseOpcode opcode, Register rd, uint8_t uimm8) |
| |
| void | GenInstrCSS (uint8_t funct3, BaseOpcode opcode, FPURegister rs2, uint8_t uimm6) |
| |
| void | GenInstrCSS (uint8_t funct3, BaseOpcode opcode, Register rs2, uint8_t uimm6) |
| |
| void | GenInstrCL (uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t uimm5) |
| |
| void | GenInstrCL (uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, uint8_t uimm5) |
| |
| void | GenInstrCS (uint8_t funct3, BaseOpcode opcode, Register rs2, Register rs1, uint8_t uimm5) |
| |
| void | GenInstrCS (uint8_t funct3, BaseOpcode opcode, FPURegister rs2, Register rs1, uint8_t uimm5) |
| |
| void | GenInstrCJ (uint8_t funct3, BaseOpcode opcode, uint16_t uint11) |
| |
| void | GenInstrCB (uint8_t funct3, BaseOpcode opcode, Register rs1, uint8_t uimm8) |
| |
| void | GenInstrCBA (uint8_t funct3, uint8_t funct2, BaseOpcode opcode, Register rs1, int8_t imm6) |
| |
| void | GenInstrBranchCC_rri (uint8_t funct3, Register rs1, Register rs2, int16_t imm12) |
| |
| void | GenInstrLoad_ri (uint8_t funct3, Register rd, Register rs1, int16_t imm12) |
| |
| void | GenInstrStore_rri (uint8_t funct3, Register rs1, Register rs2, int16_t imm12) |
| |
| void | GenInstrALU_ri (uint8_t funct3, Register rd, Register rs1, int16_t imm12) |
| |
| void | GenInstrShift_ri (bool arithshift, uint8_t funct3, Register rd, Register rs1, uint8_t shamt) |
| |
| void | GenInstrALU_rr (uint8_t funct7, uint8_t funct3, Register rd, Register rs1, Register rs2) |
| |
| void | GenInstrCSR_ir (uint8_t funct3, Register rd, ControlStatusReg csr, Register rs1) |
| |
| void | GenInstrCSR_ii (uint8_t funct3, Register rd, ControlStatusReg csr, uint8_t rs1) |
| |
| void | GenInstrShiftW_ri (bool arithshift, uint8_t funct3, Register rd, Register rs1, uint8_t shamt) |
| |
| void | GenInstrALUW_rr (uint8_t funct7, uint8_t funct3, Register rd, Register rs1, Register rs2) |
| |
| void | GenInstrPriv (uint8_t funct7, Register rs1, Register rs2) |
| |
| void | GenInstrLoadFP_ri (uint8_t funct3, FPURegister rd, Register rs1, int16_t imm12) |
| |
| void | GenInstrStoreFP_rri (uint8_t funct3, Register rs1, FPURegister rs2, int16_t imm12) |
| |
| void | GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, FPURegister rs1, FPURegister rs2) |
| |
| void | GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, Register rs1, Register rs2) |
| |
| void | GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, FPURegister rs1, Register rs2) |
| |
| void | GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, Register rd, FPURegister rs1, Register rs2) |
| |
| void | GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, Register rd, FPURegister rs1, FPURegister rs2) |
| |
| virtual void | BlockTrampolinePoolFor (int instructions)=0 |
| |