# format of a line in this file: # # # is given by specifying one or more range/value pairs: # highbit..lowbit=value (e.g. 31..25=0x45 14..12=0x0) # # is one of ra, rb, rc, rd, imm, imm20, imm27, shamt, shamtw unimp 31..0=0 j 31..27=0x18 imm27 # opcodes 0x60-0x64 jal 31..27=0x19 imm27 # opcodes 0x64-0x68 lui 31..25=0x71 ra imm20 beq 31..25=0x73 14..12=0 ra rb imm bne 31..25=0x73 14..12=1 ra rb imm blt 31..25=0x73 14..12=2 ra rb imm bltu 31..25=0x73 14..12=3 ra rb imm ble 31..25=0x73 14..12=4 ra rb imm bleu 31..25=0x73 14..12=5 ra rb imm addi 31..25=0x74 14..12=0 ra rb imm addiw 31..25=0x74 14..12=1 ra rb imm slti 31..25=0x74 14..12=2 ra rb imm sltiu 31..25=0x74 14..12=3 ra rb imm andi 31..25=0x74 14..12=4 ra rb imm ori 31..25=0x74 14..12=5 ra rb imm xori 31..25=0x74 14..12=6 ra rb imm add 31..25=0x75 14..12=0 11..5=0 rc rb ra sub 31..25=0x75 14..12=0 11..5=1 rc rb ra slt 31..25=0x75 14..12=0 11..5=2 rc rb ra sltu 31..25=0x75 14..12=0 11..5=3 rc rb ra and 31..25=0x75 14..12=0 11..5=4 rc rb ra or 31..25=0x75 14..12=0 11..5=5 rc rb ra xor 31..25=0x75 14..12=0 11..5=6 rc rb ra nor 31..25=0x75 14..12=0 11..5=7 rc rb ra mul 31..25=0x75 14..12=1 11..5=0 rc rb ra mulh 31..25=0x75 14..12=1 11..5=2 rc rb ra mulhu 31..25=0x75 14..12=1 11..5=3 rc rb ra div 31..25=0x75 14..12=1 11..5=4 rc rb ra divu 31..25=0x75 14..12=1 11..5=5 rc rb ra rem 31..25=0x75 14..12=1 11..5=6 rc rb ra remu 31..25=0x75 14..12=1 11..5=7 rc rb ra sllv 31..25=0x75 14..12=4 11..5=1 rc rb ra srlv 31..25=0x75 14..12=4 11..5=2 rc rb ra srav 31..25=0x75 14..12=4 11..5=3 rc rb ra sll 31..25=0x75 14..12=5 11=0 24..20=0 rc rb shamt srl 31..25=0x75 14..12=6 11=0 24..20=0 rc rb shamt sra 31..25=0x75 14..12=7 11=0 24..20=0 rc rb shamt addw 31..25=0x76 14..12=0 11..5=0 rc rb ra subw 31..25=0x76 14..12=0 11..5=1 rc rb ra mulw 31..25=0x76 14..12=1 11..5=0 rc rb ra mulhw 31..25=0x76 14..12=1 11..5=2 rc rb ra mulhuw 31..25=0x76 14..12=1 11..5=3 rc rb ra divw 31..25=0x76 14..12=1 11..5=4 rc rb ra divuw 31..25=0x76 14..12=1 11..5=5 rc rb ra remw 31..25=0x76 14..12=1 11..5=6 rc rb ra remuw 31..25=0x76 14..12=1 11..5=7 rc rb ra sllvw 31..25=0x76 14..12=4 11..5=1 rc rb ra srlvw 31..25=0x76 14..12=4 11..5=2 rc rb ra sravw 31..25=0x76 14..12=4 11..5=3 rc rb ra sllw 31..25=0x76 14..12=5 11..10=0 24..20=0 rc rb shamtw srlw 31..25=0x76 14..12=6 11..10=0 24..20=0 rc rb shamtw sraw 31..25=0x76 14..12=7 11..10=0 24..20=0 rc rb shamtw lb 31..25=0x78 14..12=0 rb ra imm lh 31..25=0x78 14..12=1 rb ra imm lw 31..25=0x78 14..12=2 rb ra imm ld 31..25=0x78 14..12=3 rb ra imm lbu 31..25=0x78 14..12=4 rb ra imm lhu 31..25=0x78 14..12=5 rb ra imm lwu 31..25=0x78 14..12=6 rb ra imm synci 31..25=0x78 14..12=7 24..20=0 rb imm sb 31..25=0x79 14..12=0 rb ra imm sh 31..25=0x79 14..12=1 rb ra imm sw 31..25=0x79 14..12=2 rb ra imm sd 31..25=0x79 14..12=3 rb ra imm amow.add 31..25=0x7A 14..12=2 11..5=0 rc rb ra amow.swap 31..25=0x7A 14..12=2 11..5=1 rc rb ra amow.and 31..25=0x7A 14..12=2 11..5=2 rc rb ra amow.or 31..25=0x7A 14..12=2 11..5=3 rc rb ra amow.min 31..25=0x7A 14..12=2 11..5=4 rc rb ra amow.max 31..25=0x7A 14..12=2 11..5=5 rc rb ra amow.minu 31..25=0x7A 14..12=2 11..5=6 rc rb ra amow.maxu 31..25=0x7A 14..12=2 11..5=7 rc rb ra amo.add 31..25=0x7A 14..12=3 11..5=0 rc rb ra amo.swap 31..25=0x7A 14..12=3 11..5=1 rc rb ra amo.and 31..25=0x7A 14..12=3 11..5=2 rc rb ra amo.or 31..25=0x7A 14..12=3 11..5=3 rc rb ra amo.min 31..25=0x7A 14..12=3 11..5=4 rc rb ra amo.max 31..25=0x7A 14..12=3 11..5=5 rc rb ra amo.minu 31..25=0x7A 14..12=3 11..5=6 rc rb ra amo.maxu 31..25=0x7A 14..12=3 11..5=7 rc rb ra jalr.c 31..25=0x7B 19..15=0 14..12=0 11..5=0 ra rc jalr.r 31..25=0x7B 19..15=0 14..12=0 11..5=1 ra rc jalr.j 31..25=0x7B 19..15=0 14..12=0 11..5=2 ra rc rdpc 31..25=0x7B 24..15=0 14..12=1 11..5=0 rc mfcr 31..25=0x7B 24..20=0 14..12=2 11..5=0 rc rb mtcr 31..25=0x7B 14..12=3 11..0=0 ra rb sync 31..25=0x7B 24..15=0 14..12=4 11..0=0 syscall 31..25=0x7B 24..15=0 14..12=5 11..0=0 break 31..25=0x7B 24..15=0 14..12=6 11..0=0 ei 31..25=0x7E 14..12=0 24..15=0 11..5=0 rc di 31..25=0x7E 14..12=1 24..15=0 11..5=0 rc eret 31..25=0x7E 14..12=2 24..15=0 11..0=0 mfpcr 31..25=0x7E 14..12=4 24..20=0 11..5=0 rc rb mtpcr 31..25=0x7E 14..12=5 11..0=0 ra rb # 0x7F is reserved for 64-bit-long instructions add.s 31..25=0x68 14..12=0 11..10=0 9..5=0 rc rb ra sub.s 31..25=0x68 14..12=0 11..10=0 9..5=1 rc rb ra mul.s 31..25=0x68 14..12=0 11..10=0 9..5=2 rc rb ra div.s 31..25=0x68 14..12=0 11..10=0 9..5=3 rc rb ra sqrt.s 31..25=0x68 14..12=0 11..10=0 9..5=4 19..15=0 rc ra sgninj.s 31..25=0x68 14..12=0 11..10=0 9..5=5 rc rb ra sgninjn.s 31..25=0x68 14..12=0 11..10=0 9..5=6 rc rb ra sgnmul.s 31..25=0x68 14..12=0 11..10=0 9..5=7 rc rb ra add.d 31..25=0x68 14..12=0 11..10=3 9..5=0 rc rb ra sub.d 31..25=0x68 14..12=0 11..10=3 9..5=1 rc rb ra mul.d 31..25=0x68 14..12=0 11..10=3 9..5=2 rc rb ra div.d 31..25=0x68 14..12=0 11..10=3 9..5=3 rc rb ra sqrt.d 31..25=0x68 14..12=0 11..10=3 9..5=4 19..15=0 rc ra sgninj.d 31..25=0x68 14..12=0 11..10=3 9..5=5 rc rb ra sgninjn.d 31..25=0x68 14..12=0 11..10=3 9..5=6 rc rb ra sgnmul.d 31..25=0x68 14..12=0 11..10=3 9..5=7 rc rb ra trunc.l.s 31..25=0x68 14..12=1 11..10=0 9..5=0 19..15=0 rc ra truncu.l.s 31..25=0x68 14..12=1 11..10=0 9..5=1 19..15=0 rc ra trunc.w.s 31..25=0x68 14..12=1 11..10=0 9..5=2 19..15=0 rc ra truncu.w.s 31..25=0x68 14..12=1 11..10=0 9..5=3 19..15=0 rc ra trunc.l.d 31..25=0x68 14..12=1 11..10=3 9..5=0 19..15=0 rc ra truncu.l.d 31..25=0x68 14..12=1 11..10=3 9..5=1 19..15=0 rc ra trunc.w.d 31..25=0x68 14..12=1 11..10=3 9..5=2 19..15=0 rc ra truncu.w.d 31..25=0x68 14..12=1 11..10=3 9..5=3 19..15=0 rc ra cvt.s.l 31..25=0x68 14..12=1 11..10=0 9..5=4 19..15=0 rc ra cvtu.s.l 31..25=0x68 14..12=1 11..10=0 9..5=5 19..15=0 rc ra cvt.s.w 31..25=0x68 14..12=1 11..10=0 9..5=6 19..15=0 rc ra cvtu.s.w 31..25=0x68 14..12=1 11..10=0 9..5=7 19..15=0 rc ra cvt.d.l 31..25=0x68 14..12=1 11..10=3 9..5=4 19..15=0 rc ra cvtu.d.l 31..25=0x68 14..12=1 11..10=3 9..5=5 19..15=0 rc ra cvt.d.w 31..25=0x68 14..12=1 11..10=3 9..5=6 19..15=0 rc ra cvtu.d.w 31..25=0x68 14..12=1 11..10=3 9..5=7 19..15=0 rc ra cvt.s.d 31..25=0x68 14..12=1 11..10=0 9..5=0x13 19..15=0 rc ra cvt.d.s 31..25=0x68 14..12=1 11..10=3 9..5=0x10 19..15=0 rc ra c.eq.s 31..25=0x68 14..12=2 11..10=0 9..5=1 rc ra rb c.lt.s 31..25=0x68 14..12=2 11..10=0 9..5=2 rc ra rb c.le.s 31..25=0x68 14..12=2 11..10=0 9..5=3 rc ra rb c.eq.d 31..25=0x68 14..12=2 11..10=3 9..5=1 rc ra rb c.lt.d 31..25=0x68 14..12=2 11..10=3 9..5=2 rc ra rb c.le.d 31..25=0x68 14..12=2 11..10=3 9..5=3 rc ra rb madd.s 31..25=0x68 14..12=4 11..10=0 rc rb ra rd msub.s 31..25=0x68 14..12=5 11..10=0 rc rb ra rd nmadd.s 31..25=0x68 14..12=6 11..10=0 rc rb ra rd nmsub.s 31..25=0x68 14..12=7 11..10=0 rc rb ra rd madd.d 31..25=0x68 14..12=4 11..10=3 rc rb ra rd msub.d 31..25=0x68 14..12=5 11..10=3 rc rb ra rd nmadd.d 31..25=0x68 14..12=6 11..10=3 rc rb ra rd nmsub.d 31..25=0x68 14..12=7 11..10=3 rc rb ra rd l.s 31..25=0x69 14..12=2 rb ra imm l.d 31..25=0x69 14..12=3 rb ra imm s.s 31..25=0x69 14..12=6 rb ra imm s.d 31..25=0x69 14..12=7 rb ra imm mff.s 31..25=0x6A 19..15=0 14..12=0 11..5=0 ra rc mff.d 31..25=0x6A 19..15=0 14..12=1 11..5=0 ra rc mtf.s 31..25=0x6A 19..15=0 14..12=4 11..5=0 ra rc mtf.d 31..25=0x6A 19..15=0 14..12=5 11..5=0 ra rc