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 |