RISC-V Opcode Map
Reverse lookup instructions by their hexadecimal encoding.
| Opcode | Mnemonic | Syntax | Format | Name |
|---|---|---|---|---|
| 0x0200004B | FNMSUB.D | FNMSUB.D rd, rs1, rs2, rs3 | R4-Type | Float Negated Fused Multiply-Subtract (Double) |
| 0x0400004B | FNMSUB.H | FNMSUB.H rd, rs1, rs2, rs3 | R4-Type | Float Negated Fused Multiply-Subtract (Half) |
| 0x0000004B | FNMSUB.S | FNMSUB.S rd, rs1, rs2, rs3 | R4-Type | Float Negated Fused Multiply-Subtract (Single) |
| 0x40400053 | FROUND.S | FROUND.S rd, rs1, rm | I-Type | Float Round to Integer |
| 0x00003027 | FSD | FSD rs2, offset(rs1) | S-Type | Float Store Double |
| 0x22000053 | FSGNJ.D | FSGNJ.D rd, rs1, rs2 | R-Type | Float Sign Injection (Double) |
| 0x24000053 | FSGNJ.H | FSGNJ.H rd, rs1, rs2 | R-Type | Float Sign Injection (Half) |
| 0x20000053 | FSGNJ.S | FSGNJ.S rd, rs1, rs2 | R-Type | Float Sign Injection (Single) |
| 0x22001053 | FSGNJN.D | FSGNJN.D rd, rs1, rs2 | R-Type | Float Sign Injection Negate (Double) |
| 0x24001053 | FSGNJN.H | FSGNJN.H rd, rs1, rs2 | R-Type | Float Sign Injection Negate (Half) |
| 0x20001053 | FSGNJN.S | FSGNJN.S rd, rs1, rs2 | R-Type | Float Sign Injection Negate (Single) |
| 0x22002053 | FSGNJX.D | FSGNJX.D rd, rs1, rs2 | R-Type | Float Sign Injection XOR (Double) |
| 0x24002053 | FSGNJX.H | FSGNJX.H rd, rs1, rs2 | R-Type | Float Sign Injection XOR (Half) |
| 0x20002053 | FSGNJX.S | FSGNJX.S rd, rs1, rs2 | R-Type | Float Sign Injection XOR (Single) |
| 0x00001027 | FSH | FSH rs2, offset(rs1) | S-Type | Float Store Halfword |
| 0x5A000053 | FSQRT.D | FSQRT.D rd, rs1 | I-Type (Float) | Float Square Root (Double) |
| 0x5C000053 | FSQRT.H | FSQRT.H rd, rs1 | I-Type (Float) | Float Square Root (Half) |
| 0x58000053 | FSQRT.S | FSQRT.S rd, rs1 | I-Type (Float) | Float Square Root (Single) |
| 0x0A000053 | FSUB.D | FSUB.D rd, rs1, rs2 | R-Type | Float Subtract Double |
| 0x0C000053 | FSUB.H | FSUB.H rd, rs1, rs2 | R-Type | Float Subtract (Half) |
| 0x08000053 | FSUB.S | FSUB.S rd, rs1, rs2 | R-Type | Float Subtract (Single) |
| 0x00002027 | FSW | FSW rs2, offset(rs1) | S-Type | Float Store Word |
| 0x62000073 | HFENCE.GVMA | HFENCE.GVMA rs1, rs2 | R-Type | Hypervisor Fence Guest Virtual Memory Address |
| 0x22000073 | HFENCE.VVMA | HFENCE.VVMA rs1, rs2 | R-Type | Hypervisor Fence Virtual Virtual Memory Address |
| 0x60004073 | HLV.B | HLV.B rd, (rs1) | R-Type (System) | Hypervisor Load Byte |
| 0x6C004073 | HLV.D | HLV.D rd, (rs1) | R-Type (System) | Hypervisor Load Double |
| 0x68004073 | HLV.W | HLV.W rd, (rs1) | R-Type (System) | Hypervisor Load Word |
| 0x68104073 | HLV.WU | HLV.WU rd, (rs1) | R-Type (System) | Hypervisor Load Word Unsigned |
| 0x62004073 | HSV.B | HSV.B rs2, (rs1) | R-Type (System) | Hypervisor Store Byte |
| 0x6E004073 | HSV.D | HSV.D rs2, (rs1) | R-Type (System) | Hypervisor Store Double |
| 0x6A004073 | HSV.W | HSV.W rs2, (rs1) | R-Type (System) | Hypervisor Store Word |
| 0x0000006F | J | J offset | J-Type | Jump |
| 0x0000006F | JAL | JAL rd, offset | J-Type | Jump and Link |
| 0x00000067 | JALR | JALR rd, offset(rs1) | I-Type | Jump and Link Register |
| 0x00000067 | JR | JR rs | I-Type | Jump Register |
| 0x00000003 | LB | LB rd, offset(rs1) | I-Type | Load Byte |
| 0x00004003 | LBU | LBU rd, offset(rs1) | I-Type | Load Byte Unsigned |
| 0x00003003 | LD | LD rd, offset(rs1) | I-Type | Load Doubleword |
| 0x00001003 | LH | LH rd, offset(rs1) | I-Type | Load Halfword |
| 0x00005003 | LHU | LHU rd, offset(rs1) | I-Type | Load Halfword Unsigned |
| 0x00000013 | LI | LI rd, imm | U-Type | Load Immediate |
| 0x1000302F | LR.D | LR.D rd, (rs1) | R-Type (Atomic) | Load Reserved Doubleword |
| 0x1000202F | LR.W | LR.W rd, (rs1) | R-Type (Atomic) | Load Reserved Word |
| 0x00000037 | LUI | LUI rd, imm | U-Type | Load Upper Immediate |
| 0x00002003 | LW | LW rd, offset(rs1) | I-Type | Load Word |
| 0x00006003 | LWU | LWU rd, offset(rs1) | I-Type | Load Word Unsigned |
| 0x0A006033 | MAX | MAX rd, rs1, rs2 | R-Type | Maximum |
| 0x0A007033 | MAXU | MAXU rd, rs1, rs2 | R-Type | Maximum Unsigned |
| 0x0A004033 | MIN | MIN rd, rs1, rs2 | R-Type | Minimum |
| 0x0A005033 | MINU | MINU rd, rs1, rs2 | R-Type | Minimum Unsigned |
| 0x30200073 | MRET | MRET | R-Type (System) | Machine Return |
| 0x02000033 | MUL | MUL rd, rs1, rs2 | R-Type | Multiply |
| 0x02001033 | MULH | MULH rd, rs1, rs2 | R-Type | Multiply High Signed |
| 0x02002033 | MULHSU | MULHSU rd, rs1, rs2 | R-Type | Multiply High Signed-Unsigned |
| 0x02003033 | MULHU | MULHU rd, rs1, rs2 | R-Type | Multiply High Unsigned |
| 0x0200003B | MULW | MULW rd, rs1, rs2 | R-Type | Multiply Word |
| 0x00000013 | MV | MV rd, rs | I-Type | Move |
| 0x40000033 | NEG | NEG rd, rs | R-Type | Negate |
| 0x00000013 | NOP | NOP | I-Type | No Operation |
| 0x00004013 | NOT | NOT rd, rs | I-Type | Bitwise NOT |
| 0x00500033 | NTL.ALL | NTL.ALL | R-Type | Non-Temporal Locality Hint (Store All) |
| 0x00200033 | NTL.P1 | NTL.P1 | R-Type | Non-Temporal Locality Hint (Prefetch Level 1) |
| 0x00300033 | NTL.PALL | NTL.PALL | R-Type | Non-Temporal Locality Hint (All Levels) |
| 0x00400033 | NTL.S1 | NTL.S1 | R-Type | Non-Temporal Locality Hint (Store Level 1) |
| 0x00006033 | OR | OR rd, rs1, rs2 | R-Type | Logical OR |
| 0x28705013 | ORC.B | ORC.B rd, rs1 | I-Type | Bitwise OR-Combine Byte |
| 0x00006013 | ORI | ORI rd, rs1, imm | I-Type | Logical OR Immediate |
| 0x40006033 | ORN | ORN rd, rs1, rs2 | R-Type | OR Not |
| 0x08004033 | PACK | PACK rd, rs1, rs2 | R-Type | Pack two words into a register |
| 0x08007033 | PACKH | PACKH rd, rs1, rs2 | R-Type | Pack Byte |
| 0x0100000F | PAUSE | PAUSE | I-Type (Hint) | Pause |
| 0x00006013 | PREFETCH.I | PREFETCH.I offset(rs1) | S-Type (Hint) | Prefetch Instruction |
| 0x00106013 | PREFETCH.R | PREFETCH.R offset(rs1) | S-Type (Hint) | Prefetch Read |
| 0x00306013 | PREFETCH.W | PREFETCH.W offset(rs1) | S-Type (Hint) | Prefetch Write |
| 0xC0002073 | RDCYCLE | RDCYCLE rd | I-Type | Read Cycle Counter |
| 0xC0202073 | RDINSTRET | RDINSTRET rd | I-Type | Read Instructions Retired |
| 0xC0102073 | RDTIME | RDTIME rd | I-Type | Read Real-Time Clock |
| 0x02006033 | REM | REM rd, rs1, rs2 | R-Type | Remainder |
| 0x02007033 | REMU | REMU rd, rs1, rs2 | R-Type | Remainder Unsigned |
| 0x0200703B | REMUW | REMUW rd, rs1, rs2 | R-Type | Remainder Unsigned Word |
| 0x0200603B | REMW | REMW rd, rs1, rs2 | R-Type | Remainder Word |
| 0x00008067 | RET | RET | I-Type | Return |
| 0x6B805013 | REV8 | REV8 rd, rs1 | I-Type | Byte Reverse |
| 0x60001033 | ROL | ROL rd, rs1, rs2 | R-Type | Rotate Left |
| 0x60005033 | ROR | ROR rd, rs1, rs2 | R-Type | Rotate Right |
| 0x00000023 | SB | SB rs2, offset(rs1) | S-Type | Store Byte |
| 0x1800302F | SC.D | SC.D rd, rs2, (rs1) | R-Type (Atomic) | Store Conditional Doubleword |
| 0x1800202F | SC.W | SC.W rd, rs2, (rs1) | R-Type (Atomic) | Store Conditional Word |
| 0x00003023 | SD | SD rs2, offset(rs1) | S-Type | Store Doubleword |
| 0x00103013 | SEQZ | SEQZ rd, rs | I-Type | Set if Equal to Zero |
| 0x60401013 | SEXT.B | SEXT.B rd, rs1 | I-Type | Sign Extend Byte |
| 0x60501013 | SEXT.H | SEXT.H rd, rs1 | I-Type | Sign Extend Halfword |
| 0x18100073 | SFENCE.INVAL.IR | SFENCE.INVAL.IR | R-Type (System) | Supervisor Fence Invalidate Range |
| 0x12000073 | SFENCE.VMA | SFENCE.VMA rs1, rs2 | R-Type (System) | Supervisor Fence Virtual Memory |
| 0x18000073 | SFENCE.W.INVAL | SFENCE.W.INVAL | R-Type (System) | Supervisor Fence Write Invalidate |
| 0x00001023 | SH | SH rs2, offset(rs1) | S-Type | Store Halfword |
| 0x20002033 | SH1ADD | SH1ADD rd, rs1, rs2 | R-Type | Shift Left 1 and Add |
| 0x20004033 | SH2ADD | SH2ADD rd, rs1, rs2 | R-Type | Shift Left 2 and Add |
| 0x20006033 | SH3ADD | SH3ADD rd, rs1, rs2 | R-Type | Shift Left 3 and Add |
| 0x10201013 | SHA256SIG0 | SHA256SIG0 rd, rs1 | I-Type | SHA-256 Sigma0 |