mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-19 16:42:33 +00:00
287 lines
15 KiB
Odin
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},
|
|
}
|
|
|