Instruction Listing

The canonical list of instructions the core implements and their operand assignments inside the pipeline.


Control flow change instructions

Mnemonic ALU LHS ALU RHS ALU Op CFU OP WB Op s2 wdata s2 trap
beq rs1 rs2 SUB BEQ
bne rs1 rs2 SUB BNE
c.beqz rs1 rs2 SUB BEQ
c.bnez rs1 rs2 SUB BNE
blt rs1 rs2 SUB BLT
bge rs1 rs2 SUB BGE
bltu rs1 rs2 SUB BLTU
bgeu rs1 rs2 SUB BGEU
jalr JAL wdata npn
jal JAL wdata npc
c.jalr JALR wdata npc
c.j J
c.jr J
ecall ECALL 1
ebreak EBREAK 1
mret MRET
wfi WFI

ALU instructions

Mnemonic ALU LHS ALU RHS ALU Op WB Op s2 wdata
c.mv rs1 0 OR wdata alu out
c.li 0 imm OR wdata alu out
c.lui 0 imm OR wdata alu out
lui 0 imm OR wdata alu out
auipc PC imm ADD wdata alu out
addi rs1 imm ADD wdata alu out
c.addi4spn rs1 imm ADD wdata alu out
c.addi rs1 imm ADD wdata alu out
c.addiw rs1 imm ADD wdata alu out
slli rs1 imm SLL wdata alu out
c.slli rs1 imm SLL wdata alu out
slti rs1 imm SLT wdata alu out
sltiu rs1 imm SLTU wdata alu out
xori rs1 imm XOR wdata alu out
srli rs1 imm SRL wdata alu out
srai rs1 imm SRA wdata alu out
ori rs1 imm OR wdata alu out
andi rs1 imm AND wdata alu out
addiw rs1 imm ADD wdata alu out
slliw rs1 imm SLL wdata alu out
srliw rs1 imm SRL wdata alu out
sraiw rs1 imm SRA wdata alu out
c.srli rs1 imm SRL wdata alu out
c.srai rs1 imm SRA wdata alu out
c.andi rs1 imm AND wdata alu out
c.add rs1 rs2 ADD wdata alu out
add rs1 rs2 ADD wdata alu out
sub rs1 rs2 SUB wdata alu out
sll rs1 rs2 SLL wdata alu out
slt rs1 rs2 SLT wdata alu out
sltu rs1 rs2 SLTU wdata alu out
xor rs1 rs2 XOR wdata alu out
srl rs1 rs2 SRL wdata alu out
sra rs1 rs2 SRA wdata alu out
or rs1 rs2 OR wdata alu out
and rs1 rs2 AND wdata alu out
addw rs1 rs2 ADD wdata alu out
subw rs1 rs2 SUB wdata alu out
sllw rs1 rs2 SLL wdata alu out
srlw rs1 rs2 SRL wdata alu out
sraw rs1 rs2 SRA wdata alu out
c.sub rs1 rs2 SUB wdata alu out
c.xor rs1 rs2 XOR wdata alu out
c.or rs1 rs2 OR wdata alu out
c.and rs1 rs2 AND wdata alu out
c.subw rs1 rs2 SUB wdata alu out
c.addw rs1 rs2 ADD wdata alu out
fence NOP wdata alu out

Load/Store instructions

Mnemonic ALU LHS ALU RHS ALU Op lsu op wb op
lb rs1 imm ADD l b lsu
lh rs1 imm ADD l h lsu
lw rs1 imm ADD l w lsu
c.lw rs1 imm ADD l w lsu
ld rs1 imm ADD l d lsu
c.ld rs1 imm ADD l d lsu
lbu rs1 imm ADD l b u lsu
lhu rs1 imm ADD l h u lsu
lwu rs1 imm ADD l w u lsu
c.lwsp rs1 imm ADD l w lsu
c.ldsp rs1 imm ADD l d lsu
sb rs1 imm ADD s b lsu
sh rs1 imm ADD s h lsu
sw rs1 imm ADD s w lsu
c.sw rs1 imm ADD s w lsu
sd rs1 imm ADD s d lsu
c.sd rs1 imm ADD s d lsu
c.swsp rs1 imm ADD s w lsu
c.sdsp rs1 imm ADD s d lsu

M-Extension - Multiply / Divide

Mnemonic MDU LHS MDU LHS MDU Op wb op wdata
mul rs1 rs2 MUL mdu out mdu
mulh rs1 rs2 MULH mdu out mdu
mulhsu rs1 rs2 MULHSU mdu out mdu
mulhu rs1 rs2 MULHU mdu out mdu
div rs1 rs2 DIV mdu out mdu
divu rs1 rs2 DIVU mdu out mdu
rem rs1 rs2 REM mdu out mdu
remu rs1 rs2 REMU mdu out mdu
mulw rs1 rs2 MUL mdu out mdu
divw rs1 rs2 DIV mdu out mdu
divuw rs1 rs2 DIVU mdu out mdu
remw rs1 rs2 REM mdu out mdu
remuw rs1 rs2 REMU mdu out mdu

CSR Instructions

Mnemonic CSR OP wb op wdata
csrrw rw csr rs1
csrrs rs csr rs1
csrrc rc csr rs1
csrrwi rw csr rs1
csrrsi rs csr rs1
csrrci rc csr rs1