Files
Odin/core/rexcode/rsp/decoding_tables.odin
2026-06-14 19:35:30 +01:00

287 lines
15 KiB
Odin

package rexcode_rsp
// =============================================================================
// GENERATED FILE - DO NOT EDIT
// =============================================================================
//
// Generated by tools/gen_decode_tables.odin from ENCODING_TABLE.
// Regenerate with: cd rsp && odin run tools/gen_decode_tables.odin -file
//
Decode_Entry :: struct #packed {
mnemonic: Mnemonic,
ops: [4]Operand_Type,
enc: [4]Operand_Encoding,
bits: u32,
mask: u32,
feature: Feature,
flags: Encoding_Flags,
}
#assert(size_of(Decode_Entry) == 20)
Decode_Index :: struct #packed {
start: u16,
count: u16,
}
#assert(size_of(Decode_Index) == 4)
@(rodata)
DECODE_ENTRIES := [116]Decode_Entry{
{ .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00000000, 0xFFFFFFFF, .RSP_SCALAR, {} },
{ .SLL, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RT,.IMM_5,.NONE}, 0x00000000, 0xFFE0003F, .RSP_SCALAR, {} },
{ .SRL, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RT,.IMM_5,.NONE}, 0x00000002, 0xFFE0003F, .RSP_SCALAR, {} },
{ .SRA, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RT,.IMM_5,.NONE}, 0x00000003, 0xFFE0003F, .RSP_SCALAR, {} },
{ .SLLV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RT,.RS,.NONE}, 0x00000004, 0xFC0007FF, .RSP_SCALAR, {} },
{ .SRLV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RT,.RS,.NONE}, 0x00000006, 0xFC0007FF, .RSP_SCALAR, {} },
{ .SRAV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RT,.RS,.NONE}, 0x00000007, 0xFC0007FF, .RSP_SCALAR, {} },
{ .JR, {.GPR,.NONE,.NONE,.NONE}, {.RS,.NONE,.NONE,.NONE}, 0x00000008, 0xFC1FFFFF, .RSP_SCALAR, {delay_slot=true} },
{ .JALR, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x00000009, 0xFC1F07FF, .RSP_SCALAR, {delay_slot=true} },
{ .BREAK, {.IMM20,.NONE,.NONE,.NONE}, {.IMM_20,.NONE,.NONE,.NONE}, 0x0000000D, 0xFC00003F, .RSP_SCALAR, {} },
{ .ADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000020, 0xFC0007FF, .RSP_SCALAR, {} },
{ .ADDU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000021, 0xFC0007FF, .RSP_SCALAR, {} },
{ .SUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000022, 0xFC0007FF, .RSP_SCALAR, {} },
{ .SUBU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000023, 0xFC0007FF, .RSP_SCALAR, {} },
{ .AND, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000024, 0xFC0007FF, .RSP_SCALAR, {} },
{ .OR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000025, 0xFC0007FF, .RSP_SCALAR, {} },
{ .XOR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000026, 0xFC0007FF, .RSP_SCALAR, {} },
{ .NOR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000027, 0xFC0007FF, .RSP_SCALAR, {} },
{ .SLT, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000002A, 0xFC0007FF, .RSP_SCALAR, {} },
{ .SLTU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000002B, 0xFC0007FF, .RSP_SCALAR, {} },
{ .BLTZ, {.GPR,.REL16,.NONE,.NONE}, {.RS,.BRANCH_16,.NONE,.NONE}, 0x04000000, 0xFC1F0000, .RSP_SCALAR, {delay_slot=true} },
{ .BGEZ, {.GPR,.REL16,.NONE,.NONE}, {.RS,.BRANCH_16,.NONE,.NONE}, 0x04010000, 0xFC1F0000, .RSP_SCALAR, {delay_slot=true} },
{ .BLTZAL, {.GPR,.REL16,.NONE,.NONE}, {.RS,.BRANCH_16,.NONE,.NONE}, 0x04100000, 0xFC1F0000, .RSP_SCALAR, {delay_slot=true} },
{ .BGEZAL, {.GPR,.REL16,.NONE,.NONE}, {.RS,.BRANCH_16,.NONE,.NONE}, 0x04110000, 0xFC1F0000, .RSP_SCALAR, {delay_slot=true} },
{ .J, {.REL_J26,.NONE,.NONE,.NONE}, {.IMM_26,.NONE,.NONE,.NONE}, 0x08000000, 0xFC000000, .RSP_SCALAR, {delay_slot=true} },
{ .JAL, {.REL_J26,.NONE,.NONE,.NONE}, {.IMM_26,.NONE,.NONE,.NONE}, 0x0C000000, 0xFC000000, .RSP_SCALAR, {delay_slot=true} },
{ .BEQ, {.GPR,.GPR,.REL16,.NONE}, {.RS,.RT,.BRANCH_16,.NONE}, 0x10000000, 0xFC000000, .RSP_SCALAR, {delay_slot=true} },
{ .BNE, {.GPR,.GPR,.REL16,.NONE}, {.RS,.RT,.BRANCH_16,.NONE}, 0x14000000, 0xFC000000, .RSP_SCALAR, {delay_slot=true} },
{ .BLEZ, {.GPR,.REL16,.NONE,.NONE}, {.RS,.BRANCH_16,.NONE,.NONE}, 0x18000000, 0xFC1F0000, .RSP_SCALAR, {delay_slot=true} },
{ .BGTZ, {.GPR,.REL16,.NONE,.NONE}, {.RS,.BRANCH_16,.NONE,.NONE}, 0x1C000000, 0xFC1F0000, .RSP_SCALAR, {delay_slot=true} },
{ .ADDI, {.GPR,.GPR,.IMM16S,.NONE}, {.RT,.RS,.IMM_16,.NONE}, 0x20000000, 0xFC000000, .RSP_SCALAR, {} },
{ .ADDIU, {.GPR,.GPR,.IMM16S,.NONE}, {.RT,.RS,.IMM_16,.NONE}, 0x24000000, 0xFC000000, .RSP_SCALAR, {} },
{ .SLTI, {.GPR,.GPR,.IMM16S,.NONE}, {.RT,.RS,.IMM_16,.NONE}, 0x28000000, 0xFC000000, .RSP_SCALAR, {} },
{ .SLTIU, {.GPR,.GPR,.IMM16S,.NONE}, {.RT,.RS,.IMM_16,.NONE}, 0x2C000000, 0xFC000000, .RSP_SCALAR, {} },
{ .ANDI, {.GPR,.GPR,.IMM16U,.NONE}, {.RT,.RS,.IMM_16,.NONE}, 0x30000000, 0xFC000000, .RSP_SCALAR, {} },
{ .ORI, {.GPR,.GPR,.IMM16U,.NONE}, {.RT,.RS,.IMM_16,.NONE}, 0x34000000, 0xFC000000, .RSP_SCALAR, {} },
{ .XORI, {.GPR,.GPR,.IMM16U,.NONE}, {.RT,.RS,.IMM_16,.NONE}, 0x38000000, 0xFC000000, .RSP_SCALAR, {} },
{ .LUI, {.GPR,.IMM16U,.NONE,.NONE}, {.RT,.IMM_16,.NONE,.NONE}, 0x3C000000, 0xFFE00000, .RSP_SCALAR, {} },
{ .MFC0, {.GPR,.CP0_REG,.NONE,.NONE}, {.RT,.RD,.NONE,.NONE}, 0x40000000, 0xFFE007FF, .RSP_SCALAR, {} },
{ .MTC0, {.GPR,.CP0_REG,.NONE,.NONE}, {.RT,.RD,.NONE,.NONE}, 0x40800000, 0xFFE007FF, .RSP_SCALAR, {} },
{ .CFC2, {.GPR,.CP2_CTRL,.NONE,.NONE}, {.RT,.RD,.NONE,.NONE}, 0x48400000, 0xFFE007FF, .RSP_SCALAR, {} },
{ .CTC2, {.GPR,.CP2_CTRL,.NONE,.NONE}, {.RT,.RD,.NONE,.NONE}, 0x48C00000, 0xFFE007FF, .RSP_SCALAR, {} },
{ .MFC2, {.GPR,.VR,.NONE,.NONE}, {.RT,.RD,.NONE,.NONE}, 0x48000000, 0xFFE0007F, .RSP_SCALAR, {} },
{ .MTC2, {.GPR,.VR,.NONE,.NONE}, {.RT,.RD,.NONE,.NONE}, 0x48800000, 0xFFE0007F, .RSP_SCALAR, {} },
{ .VMULF, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000000, 0xFE00003F, .RSP_VU, {} },
{ .VMULU, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000001, 0xFE00003F, .RSP_VU, {} },
{ .VMUDL, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000004, 0xFE00003F, .RSP_VU, {} },
{ .VMUDM, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000005, 0xFE00003F, .RSP_VU, {} },
{ .VMUDN, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000006, 0xFE00003F, .RSP_VU, {} },
{ .VMUDH, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000007, 0xFE00003F, .RSP_VU, {} },
{ .VMACF, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000008, 0xFE00003F, .RSP_VU, {} },
{ .VMACU, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000009, 0xFE00003F, .RSP_VU, {} },
{ .VMADL, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00000C, 0xFE00003F, .RSP_VU, {} },
{ .VMADM, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00000D, 0xFE00003F, .RSP_VU, {} },
{ .VMADN, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00000E, 0xFE00003F, .RSP_VU, {} },
{ .VMADH, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00000F, 0xFE00003F, .RSP_VU, {} },
{ .VADD, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000010, 0xFE00003F, .RSP_VU, {} },
{ .VSUB, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000011, 0xFE00003F, .RSP_VU, {} },
{ .VABS, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000013, 0xFE00003F, .RSP_VU, {} },
{ .VADDC, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000014, 0xFE00003F, .RSP_VU, {} },
{ .VSUBC, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000015, 0xFE00003F, .RSP_VU, {} },
{ .VSAR, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00001D, 0xFE00003F, .RSP_VU, {} },
{ .VLT, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000020, 0xFE00003F, .RSP_VU, {} },
{ .VEQ, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000021, 0xFE00003F, .RSP_VU, {} },
{ .VNE, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000022, 0xFE00003F, .RSP_VU, {} },
{ .VGE, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000023, 0xFE00003F, .RSP_VU, {} },
{ .VCL, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000024, 0xFE00003F, .RSP_VU, {} },
{ .VCH, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000025, 0xFE00003F, .RSP_VU, {} },
{ .VCR, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000026, 0xFE00003F, .RSP_VU, {} },
{ .VMRG, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000027, 0xFE00003F, .RSP_VU, {} },
{ .VAND, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000028, 0xFE00003F, .RSP_VU, {} },
{ .VNAND, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000029, 0xFE00003F, .RSP_VU, {} },
{ .VOR, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00002A, 0xFE00003F, .RSP_VU, {} },
{ .VNOR, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00002B, 0xFE00003F, .RSP_VU, {} },
{ .VXOR, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00002C, 0xFE00003F, .RSP_VU, {} },
{ .VNXOR, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A00002D, 0xFE00003F, .RSP_VU, {} },
{ .VRCP, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000030, 0xFE00003F, .RSP_VU, {} },
{ .VRCPL, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000031, 0xFE00003F, .RSP_VU, {} },
{ .VRCPH, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000032, 0xFE00003F, .RSP_VU, {} },
{ .VMOV, {.VR,.VR_ELEM,.NONE,.NONE}, {.VD,.VT,.NONE,.NONE}, 0x4A000033, 0xFE00003F, .RSP_VU, {} },
{ .VRSQ, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000034, 0xFE00003F, .RSP_VU, {} },
{ .VRSQL, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000035, 0xFE00003F, .RSP_VU, {} },
{ .VRSQH, {.VR,.VR,.VR_ELEM,.NONE}, {.VD,.VS,.VT,.NONE}, 0x4A000036, 0xFE00003F, .RSP_VU, {} },
{ .VNOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000037, 0xFE00003F, .RSP_VU, {} },
{ .LB, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0x80000000, 0xFC000000, .RSP_SCALAR, {} },
{ .LH, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0x84000000, 0xFC000000, .RSP_SCALAR, {} },
{ .LW, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0x8C000000, 0xFC000000, .RSP_SCALAR, {} },
{ .LBU, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0x90000000, 0xFC000000, .RSP_SCALAR, {} },
{ .LHU, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0x94000000, 0xFC000000, .RSP_SCALAR, {} },
{ .SB, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0xA0000000, 0xFC000000, .RSP_SCALAR, {} },
{ .SH, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0xA4000000, 0xFC000000, .RSP_SCALAR, {} },
{ .SW, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0xAC000000, 0xFC000000, .RSP_SCALAR, {} },
{ .LBV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8000000, 0xFC00F800, .RSP_VLS, {} },
{ .LSV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8000800, 0xFC00F800, .RSP_VLS, {} },
{ .LLV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8001000, 0xFC00F800, .RSP_VLS, {} },
{ .LDV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8001800, 0xFC00F800, .RSP_VLS, {} },
{ .LQV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8002000, 0xFC00F800, .RSP_VLS, {} },
{ .LRV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8002800, 0xFC00F800, .RSP_VLS, {} },
{ .LPV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8003000, 0xFC00F800, .RSP_VLS, {} },
{ .LUV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8003800, 0xFC00F800, .RSP_VLS, {} },
{ .LHV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8004000, 0xFC00F800, .RSP_VLS, {} },
{ .LFV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8004800, 0xFC00F800, .RSP_VLS, {} },
{ .LWV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8005000, 0xFC00F800, .RSP_VLS, {} },
{ .LTV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xC8005800, 0xFC00F800, .RSP_VLS, {} },
{ .SBV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8000000, 0xFC00F800, .RSP_VLS, {} },
{ .SSV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8000800, 0xFC00F800, .RSP_VLS, {} },
{ .SLV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8001000, 0xFC00F800, .RSP_VLS, {} },
{ .SDV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8001800, 0xFC00F800, .RSP_VLS, {} },
{ .SQV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8002000, 0xFC00F800, .RSP_VLS, {} },
{ .SRV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8002800, 0xFC00F800, .RSP_VLS, {} },
{ .SPV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8003000, 0xFC00F800, .RSP_VLS, {} },
{ .SUV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8003800, 0xFC00F800, .RSP_VLS, {} },
{ .SHV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8004000, 0xFC00F800, .RSP_VLS, {} },
{ .SFV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8004800, 0xFC00F800, .RSP_VLS, {} },
{ .SWV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8005000, 0xFC00F800, .RSP_VLS, {} },
{ .STV, {.VR,.VMEM,.NONE,.NONE}, {.VT_LS,.VBASE,.NONE,.NONE}, 0xE8005800, 0xFC00F800, .RSP_VLS, {} },
}
@(rodata)
DECODE_INDEX_PRIMARY := [64]Decode_Index{
0x00 = {0, 20},
0x01 = {20, 4},
0x02 = {24, 1},
0x03 = {25, 1},
0x04 = {26, 1},
0x05 = {27, 1},
0x06 = {28, 1},
0x07 = {29, 1},
0x08 = {30, 1},
0x09 = {31, 1},
0x0A = {32, 1},
0x0B = {33, 1},
0x0C = {34, 1},
0x0D = {35, 1},
0x0E = {36, 1},
0x0F = {37, 1},
0x10 = {38, 2},
0x12 = {40, 44},
0x20 = {84, 1},
0x21 = {85, 1},
0x23 = {86, 1},
0x24 = {87, 1},
0x25 = {88, 1},
0x28 = {89, 1},
0x29 = {90, 1},
0x2B = {91, 1},
0x32 = {92, 12},
0x3A = {104, 12},
}
@(rodata)
DECODE_INDEX_SPECIAL := [64]Decode_Index{
0x00 = {0, 2},
0x02 = {2, 1},
0x03 = {3, 1},
0x04 = {4, 1},
0x06 = {5, 1},
0x07 = {6, 1},
0x08 = {7, 1},
0x09 = {8, 1},
0x0D = {9, 1},
0x20 = {10, 1},
0x21 = {11, 1},
0x22 = {12, 1},
0x23 = {13, 1},
0x24 = {14, 1},
0x25 = {15, 1},
0x26 = {16, 1},
0x27 = {17, 1},
0x2A = {18, 1},
0x2B = {19, 1},
}
@(rodata)
DECODE_INDEX_REGIMM := [32]Decode_Index{
0x00 = {20, 1},
0x01 = {21, 1},
0x10 = {22, 1},
0x11 = {23, 1},
}
@(rodata)
DECODE_INDEX_COP2 := [64]Decode_Index{
0x00 = {40, 5},
0x01 = {45, 1},
0x04 = {46, 1},
0x05 = {47, 1},
0x06 = {48, 1},
0x07 = {49, 1},
0x08 = {50, 1},
0x09 = {51, 1},
0x0C = {52, 1},
0x0D = {53, 1},
0x0E = {54, 1},
0x0F = {55, 1},
0x10 = {56, 1},
0x11 = {57, 1},
0x13 = {58, 1},
0x14 = {59, 1},
0x15 = {60, 1},
0x1D = {61, 1},
0x20 = {62, 1},
0x21 = {63, 1},
0x22 = {64, 1},
0x23 = {65, 1},
0x24 = {66, 1},
0x25 = {67, 1},
0x26 = {68, 1},
0x27 = {69, 1},
0x28 = {70, 1},
0x29 = {71, 1},
0x2A = {72, 1},
0x2B = {73, 1},
0x2C = {74, 1},
0x2D = {75, 1},
0x30 = {76, 1},
0x31 = {77, 1},
0x32 = {78, 1},
0x33 = {79, 1},
0x34 = {80, 1},
0x35 = {81, 1},
0x36 = {82, 1},
0x37 = {83, 1},
}
@(rodata)
DECODE_INDEX_LWC2 := [32]Decode_Index{
0x00 = {92, 1},
0x01 = {93, 1},
0x02 = {94, 1},
0x03 = {95, 1},
0x04 = {96, 1},
0x05 = {97, 1},
0x06 = {98, 1},
0x07 = {99, 1},
0x08 = {100, 1},
0x09 = {101, 1},
0x0A = {102, 1},
0x0B = {103, 1},
}
@(rodata)
DECODE_INDEX_SWC2 := [32]Decode_Index{
0x00 = {104, 1},
0x01 = {105, 1},
0x02 = {106, 1},
0x03 = {107, 1},
0x04 = {108, 1},
0x05 = {109, 1},
0x06 = {110, 1},
0x07 = {111, 1},
0x08 = {112, 1},
0x09 = {113, 1},
0x0A = {114, 1},
0x0B = {115, 1},
}