mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-20 00:52:33 +00:00
460 lines
19 KiB
Odin
460 lines
19 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{
|
|
/* [00] */ {0, 20},
|
|
/* [01] */ {20, 4},
|
|
/* [02] */ {24, 1},
|
|
/* [03] */ {25, 1},
|
|
/* [04] */ {26, 1},
|
|
/* [05] */ {27, 1},
|
|
/* [06] */ {28, 1},
|
|
/* [07] */ {29, 1},
|
|
/* [08] */ {30, 1},
|
|
/* [09] */ {31, 1},
|
|
/* [10] */ {32, 1},
|
|
/* [11] */ {33, 1},
|
|
/* [12] */ {34, 1},
|
|
/* [13] */ {35, 1},
|
|
/* [14] */ {36, 1},
|
|
/* [15] */ {37, 1},
|
|
/* [16] */ {38, 2},
|
|
/* [17] */ {0, 0},
|
|
/* [18] */ {40, 44},
|
|
/* [19] */ {0, 0},
|
|
/* [20] */ {0, 0},
|
|
/* [21] */ {0, 0},
|
|
/* [22] */ {0, 0},
|
|
/* [23] */ {0, 0},
|
|
/* [24] */ {0, 0},
|
|
/* [25] */ {0, 0},
|
|
/* [26] */ {0, 0},
|
|
/* [27] */ {0, 0},
|
|
/* [28] */ {0, 0},
|
|
/* [29] */ {0, 0},
|
|
/* [30] */ {0, 0},
|
|
/* [31] */ {0, 0},
|
|
/* [32] */ {84, 1},
|
|
/* [33] */ {85, 1},
|
|
/* [34] */ {0, 0},
|
|
/* [35] */ {86, 1},
|
|
/* [36] */ {87, 1},
|
|
/* [37] */ {88, 1},
|
|
/* [38] */ {0, 0},
|
|
/* [39] */ {0, 0},
|
|
/* [40] */ {89, 1},
|
|
/* [41] */ {90, 1},
|
|
/* [42] */ {0, 0},
|
|
/* [43] */ {91, 1},
|
|
/* [44] */ {0, 0},
|
|
/* [45] */ {0, 0},
|
|
/* [46] */ {0, 0},
|
|
/* [47] */ {0, 0},
|
|
/* [48] */ {0, 0},
|
|
/* [49] */ {0, 0},
|
|
/* [50] */ {92, 12},
|
|
/* [51] */ {0, 0},
|
|
/* [52] */ {0, 0},
|
|
/* [53] */ {0, 0},
|
|
/* [54] */ {0, 0},
|
|
/* [55] */ {0, 0},
|
|
/* [56] */ {0, 0},
|
|
/* [57] */ {0, 0},
|
|
/* [58] */ {104, 12},
|
|
/* [59] */ {0, 0},
|
|
/* [60] */ {0, 0},
|
|
/* [61] */ {0, 0},
|
|
/* [62] */ {0, 0},
|
|
/* [63] */ {0, 0},
|
|
}
|
|
|
|
@(rodata)
|
|
DECODE_INDEX_SPECIAL := [64]Decode_Index{
|
|
/* [00] */ {0, 2},
|
|
/* [01] */ {0, 0},
|
|
/* [02] */ {2, 1},
|
|
/* [03] */ {3, 1},
|
|
/* [04] */ {4, 1},
|
|
/* [05] */ {0, 0},
|
|
/* [06] */ {5, 1},
|
|
/* [07] */ {6, 1},
|
|
/* [08] */ {7, 1},
|
|
/* [09] */ {8, 1},
|
|
/* [10] */ {0, 0},
|
|
/* [11] */ {0, 0},
|
|
/* [12] */ {0, 0},
|
|
/* [13] */ {9, 1},
|
|
/* [14] */ {0, 0},
|
|
/* [15] */ {0, 0},
|
|
/* [16] */ {0, 0},
|
|
/* [17] */ {0, 0},
|
|
/* [18] */ {0, 0},
|
|
/* [19] */ {0, 0},
|
|
/* [20] */ {0, 0},
|
|
/* [21] */ {0, 0},
|
|
/* [22] */ {0, 0},
|
|
/* [23] */ {0, 0},
|
|
/* [24] */ {0, 0},
|
|
/* [25] */ {0, 0},
|
|
/* [26] */ {0, 0},
|
|
/* [27] */ {0, 0},
|
|
/* [28] */ {0, 0},
|
|
/* [29] */ {0, 0},
|
|
/* [30] */ {0, 0},
|
|
/* [31] */ {0, 0},
|
|
/* [32] */ {10, 1},
|
|
/* [33] */ {11, 1},
|
|
/* [34] */ {12, 1},
|
|
/* [35] */ {13, 1},
|
|
/* [36] */ {14, 1},
|
|
/* [37] */ {15, 1},
|
|
/* [38] */ {16, 1},
|
|
/* [39] */ {17, 1},
|
|
/* [40] */ {0, 0},
|
|
/* [41] */ {0, 0},
|
|
/* [42] */ {18, 1},
|
|
/* [43] */ {19, 1},
|
|
/* [44] */ {0, 0},
|
|
/* [45] */ {0, 0},
|
|
/* [46] */ {0, 0},
|
|
/* [47] */ {0, 0},
|
|
/* [48] */ {0, 0},
|
|
/* [49] */ {0, 0},
|
|
/* [50] */ {0, 0},
|
|
/* [51] */ {0, 0},
|
|
/* [52] */ {0, 0},
|
|
/* [53] */ {0, 0},
|
|
/* [54] */ {0, 0},
|
|
/* [55] */ {0, 0},
|
|
/* [56] */ {0, 0},
|
|
/* [57] */ {0, 0},
|
|
/* [58] */ {0, 0},
|
|
/* [59] */ {0, 0},
|
|
/* [60] */ {0, 0},
|
|
/* [61] */ {0, 0},
|
|
/* [62] */ {0, 0},
|
|
/* [63] */ {0, 0},
|
|
}
|
|
|
|
@(rodata)
|
|
DECODE_INDEX_REGIMM := [32]Decode_Index{
|
|
/* [00] */ {20, 1},
|
|
/* [01] */ {21, 1},
|
|
/* [02] */ {0, 0},
|
|
/* [03] */ {0, 0},
|
|
/* [04] */ {0, 0},
|
|
/* [05] */ {0, 0},
|
|
/* [06] */ {0, 0},
|
|
/* [07] */ {0, 0},
|
|
/* [08] */ {0, 0},
|
|
/* [09] */ {0, 0},
|
|
/* [10] */ {0, 0},
|
|
/* [11] */ {0, 0},
|
|
/* [12] */ {0, 0},
|
|
/* [13] */ {0, 0},
|
|
/* [14] */ {0, 0},
|
|
/* [15] */ {0, 0},
|
|
/* [16] */ {22, 1},
|
|
/* [17] */ {23, 1},
|
|
/* [18] */ {0, 0},
|
|
/* [19] */ {0, 0},
|
|
/* [20] */ {0, 0},
|
|
/* [21] */ {0, 0},
|
|
/* [22] */ {0, 0},
|
|
/* [23] */ {0, 0},
|
|
/* [24] */ {0, 0},
|
|
/* [25] */ {0, 0},
|
|
/* [26] */ {0, 0},
|
|
/* [27] */ {0, 0},
|
|
/* [28] */ {0, 0},
|
|
/* [29] */ {0, 0},
|
|
/* [30] */ {0, 0},
|
|
/* [31] */ {0, 0},
|
|
}
|
|
|
|
@(rodata)
|
|
DECODE_INDEX_COP2 := [64]Decode_Index{
|
|
/* [00] */ {40, 5},
|
|
/* [01] */ {45, 1},
|
|
/* [02] */ {0, 0},
|
|
/* [03] */ {0, 0},
|
|
/* [04] */ {46, 1},
|
|
/* [05] */ {47, 1},
|
|
/* [06] */ {48, 1},
|
|
/* [07] */ {49, 1},
|
|
/* [08] */ {50, 1},
|
|
/* [09] */ {51, 1},
|
|
/* [10] */ {0, 0},
|
|
/* [11] */ {0, 0},
|
|
/* [12] */ {52, 1},
|
|
/* [13] */ {53, 1},
|
|
/* [14] */ {54, 1},
|
|
/* [15] */ {55, 1},
|
|
/* [16] */ {56, 1},
|
|
/* [17] */ {57, 1},
|
|
/* [18] */ {0, 0},
|
|
/* [19] */ {58, 1},
|
|
/* [20] */ {59, 1},
|
|
/* [21] */ {60, 1},
|
|
/* [22] */ {0, 0},
|
|
/* [23] */ {0, 0},
|
|
/* [24] */ {0, 0},
|
|
/* [25] */ {0, 0},
|
|
/* [26] */ {0, 0},
|
|
/* [27] */ {0, 0},
|
|
/* [28] */ {0, 0},
|
|
/* [29] */ {61, 1},
|
|
/* [30] */ {0, 0},
|
|
/* [31] */ {0, 0},
|
|
/* [32] */ {62, 1},
|
|
/* [33] */ {63, 1},
|
|
/* [34] */ {64, 1},
|
|
/* [35] */ {65, 1},
|
|
/* [36] */ {66, 1},
|
|
/* [37] */ {67, 1},
|
|
/* [38] */ {68, 1},
|
|
/* [39] */ {69, 1},
|
|
/* [40] */ {70, 1},
|
|
/* [41] */ {71, 1},
|
|
/* [42] */ {72, 1},
|
|
/* [43] */ {73, 1},
|
|
/* [44] */ {74, 1},
|
|
/* [45] */ {75, 1},
|
|
/* [46] */ {0, 0},
|
|
/* [47] */ {0, 0},
|
|
/* [48] */ {76, 1},
|
|
/* [49] */ {77, 1},
|
|
/* [50] */ {78, 1},
|
|
/* [51] */ {79, 1},
|
|
/* [52] */ {80, 1},
|
|
/* [53] */ {81, 1},
|
|
/* [54] */ {82, 1},
|
|
/* [55] */ {83, 1},
|
|
/* [56] */ {0, 0},
|
|
/* [57] */ {0, 0},
|
|
/* [58] */ {0, 0},
|
|
/* [59] */ {0, 0},
|
|
/* [60] */ {0, 0},
|
|
/* [61] */ {0, 0},
|
|
/* [62] */ {0, 0},
|
|
/* [63] */ {0, 0},
|
|
}
|
|
|
|
@(rodata)
|
|
DECODE_INDEX_LWC2 := [32]Decode_Index{
|
|
/* [00] */ {92, 1},
|
|
/* [01] */ {93, 1},
|
|
/* [02] */ {94, 1},
|
|
/* [03] */ {95, 1},
|
|
/* [04] */ {96, 1},
|
|
/* [05] */ {97, 1},
|
|
/* [06] */ {98, 1},
|
|
/* [07] */ {99, 1},
|
|
/* [08] */ {100, 1},
|
|
/* [09] */ {101, 1},
|
|
/* [10] */ {102, 1},
|
|
/* [11] */ {103, 1},
|
|
/* [12] */ {0, 0},
|
|
/* [13] */ {0, 0},
|
|
/* [14] */ {0, 0},
|
|
/* [15] */ {0, 0},
|
|
/* [16] */ {0, 0},
|
|
/* [17] */ {0, 0},
|
|
/* [18] */ {0, 0},
|
|
/* [19] */ {0, 0},
|
|
/* [20] */ {0, 0},
|
|
/* [21] */ {0, 0},
|
|
/* [22] */ {0, 0},
|
|
/* [23] */ {0, 0},
|
|
/* [24] */ {0, 0},
|
|
/* [25] */ {0, 0},
|
|
/* [26] */ {0, 0},
|
|
/* [27] */ {0, 0},
|
|
/* [28] */ {0, 0},
|
|
/* [29] */ {0, 0},
|
|
/* [30] */ {0, 0},
|
|
/* [31] */ {0, 0},
|
|
}
|
|
|
|
@(rodata)
|
|
DECODE_INDEX_SWC2 := [32]Decode_Index{
|
|
/* [00] */ {104, 1},
|
|
/* [01] */ {105, 1},
|
|
/* [02] */ {106, 1},
|
|
/* [03] */ {107, 1},
|
|
/* [04] */ {108, 1},
|
|
/* [05] */ {109, 1},
|
|
/* [06] */ {110, 1},
|
|
/* [07] */ {111, 1},
|
|
/* [08] */ {112, 1},
|
|
/* [09] */ {113, 1},
|
|
/* [10] */ {114, 1},
|
|
/* [11] */ {115, 1},
|
|
/* [12] */ {0, 0},
|
|
/* [13] */ {0, 0},
|
|
/* [14] */ {0, 0},
|
|
/* [15] */ {0, 0},
|
|
/* [16] */ {0, 0},
|
|
/* [17] */ {0, 0},
|
|
/* [18] */ {0, 0},
|
|
/* [19] */ {0, 0},
|
|
/* [20] */ {0, 0},
|
|
/* [21] */ {0, 0},
|
|
/* [22] */ {0, 0},
|
|
/* [23] */ {0, 0},
|
|
/* [24] */ {0, 0},
|
|
/* [25] */ {0, 0},
|
|
/* [26] */ {0, 0},
|
|
/* [27] */ {0, 0},
|
|
/* [28] */ {0, 0},
|
|
/* [29] */ {0, 0},
|
|
/* [30] */ {0, 0},
|
|
/* [31] */ {0, 0},
|
|
}
|
|
|