From c6edd6d5cdbbb3409712dd5ea29cbe289eb13e1c Mon Sep 17 00:00:00 2001 From: Brendan Punsky Date: Thu, 18 Jun 2026 04:17:50 -0400 Subject: [PATCH] rexcode/mips: R5900 MMI MADD/MSUB, RDPGPR/WRPGPR; drop BPOSGE64 -> 100% PS2 R5900 MMI: MSUB1/MSUBU1 (second-MAC, SPECIAL2 func +0x20 exactly like the implemented MADD1/MADDU1) and the three-operand MADD_EE/MADDU_EE/ MSUB_EE/MSUBU_EE (write Rd as well as HI/LO; the Rd!=0 form selected by a less-specific mask after the two-operand MADD/MSUB and PLZCW match). RDPGPR/WRPGPR (COP0 shadow-GPR move, hand-encoded from the MIPS32r2 manual since llvm-mc gates them). Drop BPOSGE64: not a real ISA instruction (DSPControl.pos is 6-bit, only BPOSGE32 exists; llvm rejects it). Every encodable mips Mnemonic now has an encode form (gap = 0). All self-consistent and decode-clean; 281 tests green. --- core/rexcode/mips/mnemonic_builders.odin | 32 + core/rexcode/mips/mnemonics.odin | 1 - .../rexcode/mips/tablegen/encoding_table.odin | 17 + .../tablegen/generated/decode_tables.odin | 256 +-- .../tablegen/generated/encode_tables.odin | 1767 +++++++++-------- .../rexcode/mips/tables/mips.encode_forms.bin | Bin 20360 -> 20520 bytes core/rexcode/mips/tables/mips.encode_runs.bin | Bin 8224 -> 8216 bytes core/rexcode/mips/tables/mips.entries.bin | Bin 20360 -> 20520 bytes core/rexcode/mips/tables/mips.idx_cop1.bin | Bin 128 -> 128 bytes core/rexcode/mips/tables/mips.idx_primary.bin | Bin 256 -> 256 bytes .../rexcode/mips/tables/mips.idx_special2.bin | Bin 256 -> 256 bytes .../rexcode/mips/tables/mips.idx_special3.bin | Bin 256 -> 256 bytes 12 files changed, 1072 insertions(+), 1001 deletions(-) diff --git a/core/rexcode/mips/mnemonic_builders.odin b/core/rexcode/mips/mnemonic_builders.odin index 9035773f5..dd610e283 100644 --- a/core/rexcode/mips/mnemonic_builders.odin +++ b/core/rexcode/mips/mnemonic_builders.odin @@ -332,6 +332,10 @@ inst_seh_r_r :: #force_inline proc "contextless" (dst: GPR, src: G emit_seh_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_seh_r_r(dst, src)) } inst_rdhwr_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .RDHWR, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } emit_rdhwr_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_rdhwr_r_r(dst, src)) } +inst_rdpgpr_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .RDPGPR, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +emit_rdpgpr_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_rdpgpr_r_r(dst, src)) } +inst_wrpgpr_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .WRPGPR, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +emit_wrpgpr_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_wrpgpr_r_r(dst, src)) } inst_di_r :: #force_inline proc "contextless" (dst: GPR) -> Instruction { return Instruction{mnemonic = .DI, operand_count = 1, length = 4, ops = {op_gpr(dst), {}, {}, {}}} } emit_di_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR) { append(instructions, inst_di_r(dst)) } inst_ei_r :: #force_inline proc "contextless" (dst: GPR) -> Instruction { return Instruction{mnemonic = .EI, operand_count = 1, length = 4, ops = {op_gpr(dst), {}, {}, {}}} } @@ -860,10 +864,22 @@ inst_div1_r_r :: #force_inline proc "contextless" (dst: GPR, src: G emit_div1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_div1_r_r(dst, src)) } inst_divu1_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .DIVU1, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } emit_divu1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_divu1_r_r(dst, src)) } +inst_madd_ee_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MADD_EE, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } +emit_madd_ee_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_madd_ee_r_r_r(dst, src, src2)) } +inst_maddu_ee_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MADDU_EE, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } +emit_maddu_ee_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_maddu_ee_r_r_r(dst, src, src2)) } +inst_msub_ee_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MSUB_EE, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } +emit_msub_ee_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_msub_ee_r_r_r(dst, src, src2)) } +inst_msubu_ee_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MSUBU_EE, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } +emit_msubu_ee_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_msubu_ee_r_r_r(dst, src, src2)) } inst_madd1_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MADD1, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } emit_madd1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_madd1_r_r(dst, src)) } inst_maddu1_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MADDU1, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } emit_maddu1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_maddu1_r_r(dst, src)) } +inst_msub1_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MSUB1, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +emit_msub1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_msub1_r_r(dst, src)) } +inst_msubu1_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MSUBU1, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +emit_msubu1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_msubu1_r_r(dst, src)) } inst_pmfhl_lw_r :: #force_inline proc "contextless" (dst: GPR) -> Instruction { return Instruction{mnemonic = .PMFHL_LW, operand_count = 1, length = 4, ops = {op_gpr(dst), {}, {}, {}}} } emit_pmfhl_lw_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR) { append(instructions, inst_pmfhl_lw_r(dst)) } inst_pmfhl_uw_r :: #force_inline proc "contextless" (dst: GPR) -> Instruction { return Instruction{mnemonic = .PMFHL_UW, operand_count = 1, length = 4, ops = {op_gpr(dst), {}, {}, {}}} } @@ -2373,6 +2389,10 @@ inst_seh :: inst_seh_r_r emit_seh :: emit_seh_r_r inst_rdhwr :: inst_rdhwr_r_r emit_rdhwr :: emit_rdhwr_r_r +inst_rdpgpr :: inst_rdpgpr_r_r +emit_rdpgpr :: emit_rdpgpr_r_r +inst_wrpgpr :: inst_wrpgpr_r_r +emit_wrpgpr :: emit_wrpgpr_r_r inst_di :: inst_di_r emit_di :: emit_di_r inst_ei :: inst_ei_r @@ -2901,10 +2921,22 @@ inst_div1 :: inst_div1_r_r emit_div1 :: emit_div1_r_r inst_divu1 :: inst_divu1_r_r emit_divu1 :: emit_divu1_r_r +inst_madd_ee :: inst_madd_ee_r_r_r +emit_madd_ee :: emit_madd_ee_r_r_r +inst_maddu_ee :: inst_maddu_ee_r_r_r +emit_maddu_ee :: emit_maddu_ee_r_r_r +inst_msub_ee :: inst_msub_ee_r_r_r +emit_msub_ee :: emit_msub_ee_r_r_r +inst_msubu_ee :: inst_msubu_ee_r_r_r +emit_msubu_ee :: emit_msubu_ee_r_r_r inst_madd1 :: inst_madd1_r_r emit_madd1 :: emit_madd1_r_r inst_maddu1 :: inst_maddu1_r_r emit_maddu1 :: emit_maddu1_r_r +inst_msub1 :: inst_msub1_r_r +emit_msub1 :: emit_msub1_r_r +inst_msubu1 :: inst_msubu1_r_r +emit_msubu1 :: emit_msubu1_r_r inst_pmfhl_lw :: inst_pmfhl_lw_r emit_pmfhl_lw :: emit_pmfhl_lw_r inst_pmfhl_uw :: inst_pmfhl_uw_r diff --git a/core/rexcode/mips/mnemonics.odin b/core/rexcode/mips/mnemonics.odin index ea2bd32c8..63cf58f5c 100644 --- a/core/rexcode/mips/mnemonics.odin +++ b/core/rexcode/mips/mnemonics.odin @@ -401,7 +401,6 @@ Mnemonic :: enum u16 { // DSP control / branch BPOSGE32, // branch if DSPControl.pos >= 32 - BPOSGE64, // 64-bit variant (only MIPS64 DSP) INSV, // insert variable position BITREV, // R2 bit reversal ABSQ_S_PH, ABSQ_S_W, diff --git a/core/rexcode/mips/tablegen/encoding_table.odin b/core/rexcode/mips/tablegen/encoding_table.odin index 78cf087ff..842cb0b2a 100644 --- a/core/rexcode/mips/tablegen/encoding_table.odin +++ b/core/rexcode/mips/tablegen/encoding_table.odin @@ -590,6 +590,16 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ .DIVU1 = { {.DIVU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x7000001B, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true}} }, .MADD1 = { {.MADD1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000020, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true}} }, .MADDU1 = { {.MADDU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000021, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true}} }, + // Second-MAC subtract forms: same SPECIAL2 func + 0x20 as MADD1/MADDU1. + .MSUB1 = { {.MSUB1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000024, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true}} }, + .MSUBU1 = { {.MSUBU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000025, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true}} }, + // R5900 three-operand multiply-accumulate (writes Rd as well as HI/LO). + // Same SPECIAL2 funcs as the MIPS32 two-operand MADD/MADDU/MSUB/MSUBU; the + // Rd != 0 form is selected by the less-specific mask after those match. + .MADD_EE = { {.MADD_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}} }, + .MADDU_EE = { {.MADDU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}} }, + .MSUB_EE = { {.MSUB_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}} }, + .MSUBU_EE = { {.MSUBU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}} }, // Pack/unpack HI:LO (PMFHL with 5-bit sub-op in sa slot). .PMFHL_LW = { {.PMFHL_LW, {.GPR,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x70000030, 0xFFFF07FF, .MMI_PS2, {}} }, @@ -1484,6 +1494,13 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ .MOVF_PS = { {.MOVF_PS, {.FPR_PS,.FPR_PS,.FCC,.NONE}, {.FD,.FS,.FCC_BC,.NONE}, 0x46C00011, 0xFFE3003F, .FPU, {}} }, .MOVT_PS = { {.MOVT_PS, {.FPR_PS,.FPR_PS,.FCC,.NONE}, {.FD,.FS,.FCC_BC,.NONE}, 0x46C10011, 0xFFE3003F, .FPU, {}} }, + // COP0 shadow-GPR move (MIPS32r2). llvm-mc gates these behind a feature it + // does not expose, so they are hand-encoded from the manual: COP0 (0x10), + // sub-opcode 0x0A (RDPGPR) / 0x0E (WRPGPR) at 25:21, rt at 20:16, rd at + // 15:11. Decode-clean. + .RDPGPR = { {.RDPGPR, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x41400000, 0xFFE007FF, .MIPS32_R2, {}} }, + .WRPGPR = { {.WRPGPR, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x41C00000, 0xFFE007FF, .MIPS32_R2, {}} }, + // SPECGEN:BEGIN .FADD_W = { {.FADD_W, {.MSA_VEC,.MSA_VEC,.MSA_VEC,.NONE}, {.WD,.WS,.WT,.NONE}, 0x7800001B, 0xFFE0003F, .MSA, {}} }, .FADD_D = { {.FADD_D, {.MSA_VEC,.MSA_VEC,.MSA_VEC,.NONE}, {.WD,.WS,.WT,.NONE}, 0x7820001B, 0xFFE0003F, .MSA, {}} }, diff --git a/core/rexcode/mips/tablegen/generated/decode_tables.odin b/core/rexcode/mips/tablegen/generated/decode_tables.odin index 31dd07ca4..dafe43a63 100644 --- a/core/rexcode/mips/tablegen/generated/decode_tables.odin +++ b/core/rexcode/mips/tablegen/generated/decode_tables.odin @@ -8,7 +8,7 @@ package rexcode_mips_generated import lib "../.." @(rodata) -DECODE_ENTRIES := [1018]lib.Decode_Entry{ +DECODE_ENTRIES := [1026]lib.Decode_Entry{ { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00000000, 0xFFFFFFFF, .MIPS_I, {} }, { .SSNOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00000040, 0xFFFFFFFF, .MIPS32_R1, {} }, { .EHB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x000000C0, 0xFFFFFFFF, .MIPS32_R2, {} }, @@ -139,6 +139,8 @@ DECODE_ENTRIES := [1018]lib.Decode_Entry{ { .TLBWR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x42000006, 0xFFFFFFFF, .COP0, {} }, { .DI, {.GPR,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x41606000, 0xFFE0FFFF, .MIPS32_R2, {} }, { .EI, {.GPR,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x41606020, 0xFFE0FFFF, .MIPS32_R2, {} }, + { .RDPGPR, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x41400000, 0xFFE007FF, .MIPS32_R2, {} }, + { .WRPGPR, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x41C00000, 0xFFE007FF, .MIPS32_R2, {} }, { .MFC0, {.GPR,.CP0_REG,.SEL,.NONE}, {.RT,.RD,.SEL,.NONE}, 0x40000000, 0xFFE007F8, .COP0, {} }, { .MTC0, {.GPR,.CP0_REG,.SEL,.NONE}, {.RT,.RD,.SEL,.NONE}, 0x40800000, 0xFFE007F8, .COP0, {} }, { .DMFC0, {.GPR,.CP0_REG,.SEL,.NONE}, {.RT,.RD,.SEL,.NONE}, 0x40200000, 0xFFE007F8, .COP0, {only_64=true} }, @@ -399,11 +401,15 @@ DECODE_ENTRIES := [1018]lib.Decode_Entry{ { .VMAX_Q, {.VFPU_Q,.VFPU_Q,.VFPU_Q,.NONE}, {.VFPU_VD,.VFPU_VS,.VFPU_VT,.NONE}, 0x6D808080, 0xFF808080, .VFPU_PSP, {} }, { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0x6C000000, 0xFC000000, .MIPS_III, {only_64=true} }, { .MADD, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000000, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, + { .MADD_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, { .MADDU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000001, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, + { .MADDU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000002, 0xFC0007FF, .MIPS32_R1, {} }, { .MSUB, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000004, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, { .PLZCW, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000004, 0xFC1F07FF, .MMI_PS2, {} }, + { .MSUB_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, { .MSUBU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000005, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, + { .MSUBU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, { .PADDB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000208, 0xFC0007FF, .MMI_PS2, {} }, { .PADDH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000108, 0xFC0007FF, .MMI_PS2, {} }, { .PADDW, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000008, 0xFC0007FF, .MMI_PS2, {} }, @@ -468,7 +474,9 @@ DECODE_ENTRIES := [1018]lib.Decode_Entry{ { .CLO, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000021, 0xFC1F07FF, .MIPS32_R1, {} }, { .MADDU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000021, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, { .DCLZ, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000024, 0xFC1F07FF, .MIPS64_R1, {only_64=true} }, + { .MSUB1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000024, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, { .DCLO, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000025, 0xFC1F07FF, .MIPS64_R1, {only_64=true} }, + { .MSUBU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000025, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, { .PABSH, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x70000168, 0xFC1F07FF, .MMI_PS2, {} }, { .PABSW, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x70000068, 0xFC1F07FF, .MMI_PS2, {} }, { .PADDUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000628, 0xFC0007FF, .MMI_PS2, {} }, @@ -1047,54 +1055,54 @@ DECODE_INDEX_PRIMARY := [64]lib.Decode_Index{ 0x0D = { 118, 1}, 0x0E = { 119, 1}, 0x0F = { 120, 2}, - 0x10 = { 122, 15}, - 0x11 = { 137, 146}, - 0x12 = { 283, 36}, - 0x13 = { 319, 17}, - 0x14 = { 336, 1}, - 0x15 = { 337, 1}, - 0x16 = { 338, 4}, - 0x17 = { 342, 4}, - 0x18 = { 346, 14}, - 0x19 = { 360, 15}, - 0x1A = { 375, 1}, - 0x1B = { 376, 13}, - 0x1C = { 389, 109}, - 0x1D = { 498, 1}, - 0x1E = { 499, 230}, - 0x1F = { 729, 141}, - 0x20 = { 870, 1}, - 0x21 = { 871, 1}, - 0x22 = { 872, 1}, - 0x23 = { 873, 1}, - 0x24 = { 874, 1}, - 0x25 = { 875, 1}, - 0x26 = { 876, 1}, - 0x27 = { 877, 1}, - 0x28 = { 878, 1}, - 0x29 = { 879, 1}, - 0x2A = { 880, 1}, - 0x2B = { 881, 1}, - 0x2C = { 882, 1}, - 0x2D = { 883, 1}, - 0x2E = { 884, 1}, - 0x2F = { 885, 1}, - 0x30 = { 886, 1}, - 0x31 = { 887, 1}, - 0x32 = { 888, 3}, - 0x33 = { 891, 1}, - 0x34 = { 892, 63}, - 0x35 = { 955, 3}, - 0x36 = { 958, 5}, - 0x37 = { 963, 6}, - 0x38 = { 969, 1}, - 0x39 = { 970, 1}, - 0x3A = { 971, 3}, - 0x3B = { 974, 5}, - 0x3C = { 979, 27}, - 0x3D = {1006, 3}, - 0x3E = {1009, 5}, - 0x3F = {1014, 4}, + 0x10 = { 122, 17}, + 0x11 = { 139, 146}, + 0x12 = { 285, 36}, + 0x13 = { 321, 17}, + 0x14 = { 338, 1}, + 0x15 = { 339, 1}, + 0x16 = { 340, 4}, + 0x17 = { 344, 4}, + 0x18 = { 348, 14}, + 0x19 = { 362, 15}, + 0x1A = { 377, 1}, + 0x1B = { 378, 13}, + 0x1C = { 391, 115}, + 0x1D = { 506, 1}, + 0x1E = { 507, 230}, + 0x1F = { 737, 141}, + 0x20 = { 878, 1}, + 0x21 = { 879, 1}, + 0x22 = { 880, 1}, + 0x23 = { 881, 1}, + 0x24 = { 882, 1}, + 0x25 = { 883, 1}, + 0x26 = { 884, 1}, + 0x27 = { 885, 1}, + 0x28 = { 886, 1}, + 0x29 = { 887, 1}, + 0x2A = { 888, 1}, + 0x2B = { 889, 1}, + 0x2C = { 890, 1}, + 0x2D = { 891, 1}, + 0x2E = { 892, 1}, + 0x2F = { 893, 1}, + 0x30 = { 894, 1}, + 0x31 = { 895, 1}, + 0x32 = { 896, 3}, + 0x33 = { 899, 1}, + 0x34 = { 900, 63}, + 0x35 = { 963, 3}, + 0x36 = { 966, 5}, + 0x37 = { 971, 6}, + 0x38 = { 977, 1}, + 0x39 = { 978, 1}, + 0x3A = { 979, 3}, + 0x3B = { 982, 5}, + 0x3C = { 987, 27}, + 0x3D = {1014, 3}, + 0x3E = {1017, 5}, + 0x3F = {1022, 4}, } @(rodata) @@ -1188,88 +1196,88 @@ DECODE_INDEX_REGIMM := [32]lib.Decode_Index{ @(rodata) DECODE_INDEX_COP1 := [32]lib.Decode_Index{ - 0x00 = { 137, 1}, - 0x01 = { 138, 1}, - 0x02 = { 139, 1}, - 0x03 = { 140, 1}, - 0x04 = { 141, 1}, - 0x05 = { 142, 1}, - 0x06 = { 143, 1}, - 0x07 = { 144, 1}, - 0x08 = { 145, 4}, - 0x09 = { 149, 1}, - 0x0B = { 150, 1}, - 0x0D = { 151, 1}, - 0x0F = { 152, 1}, - 0x10 = { 153, 42}, - 0x11 = { 195, 42}, - 0x14 = { 237, 4}, - 0x15 = { 241, 2}, - 0x16 = { 243, 32}, - 0x18 = { 275, 1}, - 0x19 = { 276, 1}, - 0x1A = { 277, 1}, - 0x1B = { 278, 1}, - 0x1C = { 279, 1}, - 0x1D = { 280, 1}, - 0x1E = { 281, 1}, - 0x1F = { 282, 1}, + 0x00 = { 139, 1}, + 0x01 = { 140, 1}, + 0x02 = { 141, 1}, + 0x03 = { 142, 1}, + 0x04 = { 143, 1}, + 0x05 = { 144, 1}, + 0x06 = { 145, 1}, + 0x07 = { 146, 1}, + 0x08 = { 147, 4}, + 0x09 = { 151, 1}, + 0x0B = { 152, 1}, + 0x0D = { 153, 1}, + 0x0F = { 154, 1}, + 0x10 = { 155, 42}, + 0x11 = { 197, 42}, + 0x14 = { 239, 4}, + 0x15 = { 243, 2}, + 0x16 = { 245, 32}, + 0x18 = { 277, 1}, + 0x19 = { 278, 1}, + 0x1A = { 279, 1}, + 0x1B = { 280, 1}, + 0x1C = { 281, 1}, + 0x1D = { 282, 1}, + 0x1E = { 283, 1}, + 0x1F = { 284, 1}, } @(rodata) DECODE_INDEX_SPECIAL2 := [64]lib.Decode_Index{ - 0x00 = { 389, 1}, - 0x01 = { 390, 1}, - 0x02 = { 391, 1}, - 0x04 = { 392, 2}, - 0x05 = { 394, 1}, - 0x08 = { 395, 25}, - 0x09 = { 420, 26}, - 0x10 = { 446, 1}, - 0x11 = { 447, 1}, - 0x12 = { 448, 1}, - 0x13 = { 449, 1}, - 0x18 = { 450, 1}, - 0x19 = { 451, 1}, - 0x1A = { 452, 1}, - 0x1B = { 453, 1}, - 0x20 = { 454, 2}, - 0x21 = { 456, 2}, - 0x24 = { 458, 1}, - 0x25 = { 459, 1}, - 0x28 = { 460, 17}, - 0x29 = { 477, 8}, - 0x30 = { 485, 5}, - 0x31 = { 490, 1}, - 0x34 = { 491, 1}, - 0x36 = { 492, 1}, - 0x37 = { 493, 1}, - 0x3C = { 494, 1}, - 0x3E = { 495, 1}, - 0x3F = { 496, 2}, + 0x00 = { 391, 2}, + 0x01 = { 393, 2}, + 0x02 = { 395, 1}, + 0x04 = { 396, 3}, + 0x05 = { 399, 2}, + 0x08 = { 401, 25}, + 0x09 = { 426, 26}, + 0x10 = { 452, 1}, + 0x11 = { 453, 1}, + 0x12 = { 454, 1}, + 0x13 = { 455, 1}, + 0x18 = { 456, 1}, + 0x19 = { 457, 1}, + 0x1A = { 458, 1}, + 0x1B = { 459, 1}, + 0x20 = { 460, 2}, + 0x21 = { 462, 2}, + 0x24 = { 464, 2}, + 0x25 = { 466, 2}, + 0x28 = { 468, 17}, + 0x29 = { 485, 8}, + 0x30 = { 493, 5}, + 0x31 = { 498, 1}, + 0x34 = { 499, 1}, + 0x36 = { 500, 1}, + 0x37 = { 501, 1}, + 0x3C = { 502, 1}, + 0x3E = { 503, 1}, + 0x3F = { 504, 2}, } @(rodata) DECODE_INDEX_SPECIAL3 := [64]lib.Decode_Index{ - 0x00 = { 729, 2}, - 0x01 = { 731, 1}, - 0x02 = { 732, 1}, - 0x03 = { 733, 1}, - 0x04 = { 734, 1}, - 0x05 = { 735, 1}, - 0x06 = { 736, 1}, - 0x07 = { 737, 1}, - 0x0A = { 738, 3}, - 0x0C = { 741, 1}, - 0x0F = { 742, 8}, - 0x10 = { 750, 22}, - 0x11 = { 772, 15}, - 0x12 = { 787, 17}, - 0x13 = { 804, 22}, - 0x20 = { 826, 5}, - 0x24 = { 831, 4}, - 0x30 = { 835, 17}, - 0x38 = { 852, 17}, - 0x3B = { 869, 1}, + 0x00 = { 737, 2}, + 0x01 = { 739, 1}, + 0x02 = { 740, 1}, + 0x03 = { 741, 1}, + 0x04 = { 742, 1}, + 0x05 = { 743, 1}, + 0x06 = { 744, 1}, + 0x07 = { 745, 1}, + 0x0A = { 746, 3}, + 0x0C = { 749, 1}, + 0x0F = { 750, 8}, + 0x10 = { 758, 22}, + 0x11 = { 780, 15}, + 0x12 = { 795, 17}, + 0x13 = { 812, 22}, + 0x20 = { 834, 5}, + 0x24 = { 839, 4}, + 0x30 = { 843, 17}, + 0x38 = { 860, 17}, + 0x3B = { 877, 1}, } diff --git a/core/rexcode/mips/tablegen/generated/encode_tables.odin b/core/rexcode/mips/tablegen/generated/encode_tables.odin index bfd35317a..c92480dde 100644 --- a/core/rexcode/mips/tablegen/generated/encode_tables.odin +++ b/core/rexcode/mips/tablegen/generated/encode_tables.odin @@ -8,7 +8,7 @@ package rexcode_mips_generated import lib "../.." @(rodata) -ENCODE_FORMS := [1018]lib.Encoding{ +ENCODE_FORMS := [1026]lib.Encoding{ // .ADD { .ADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000020, 0xFC0007FF, .MIPS_I, {} }, // .ADDU @@ -313,6 +313,10 @@ ENCODE_FORMS := [1018]lib.Encoding{ { .SEH, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x7C000620, 0xFFE007FF, .MIPS32_R2, {} }, // .RDHWR { .RDHWR, {.GPR,.GPR,.NONE,.NONE}, {.RT,.RD,.NONE,.NONE}, 0x7C00003B, 0xFFE007FF, .MIPS32_R2, {} }, + // .RDPGPR + { .RDPGPR, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x41400000, 0xFFE007FF, .MIPS32_R2, {} }, + // .WRPGPR + { .WRPGPR, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RT,.NONE,.NONE}, 0x41C00000, 0xFFE007FF, .MIPS32_R2, {} }, // .DI { .DI, {.GPR,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x41606000, 0xFFE0FFFF, .MIPS32_R2, {} }, // .EI @@ -841,10 +845,22 @@ ENCODE_FORMS := [1018]lib.Encoding{ { .DIV1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x7000001A, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, // .DIVU1 { .DIVU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x7000001B, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, + // .MADD_EE + { .MADD_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, + // .MADDU_EE + { .MADDU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, + // .MSUB_EE + { .MSUB_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, + // .MSUBU_EE + { .MSUBU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, // .MADD1 { .MADD1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000020, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, // .MADDU1 { .MADDU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000021, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, + // .MSUB1 + { .MSUB1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000024, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, + // .MSUBU1 + { .MSUBU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000025, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, // .PMFHL_LW { .PMFHL_LW, {.GPR,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x70000030, 0xFFFF07FF, .MMI_PS2, {} }, // .PMFHL_UW @@ -2202,879 +2218,878 @@ ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ .SEB = { 149, 1}, .SEH = { 150, 1}, .RDHWR = { 151, 1}, - .RDPGPR = { 152, 0}, - .WRPGPR = { 152, 0}, - .DI = { 152, 1}, - .EI = { 153, 1}, - .ERET = { 154, 1}, - .DERET = { 155, 1}, - .WAIT = { 156, 1}, - .BC = { 157, 1}, - .BALC = { 158, 1}, - .BEQC = { 159, 1}, - .BNEC = { 160, 1}, - .BLTC = { 161, 1}, - .BGEC = { 162, 1}, - .BLTUC = { 163, 1}, - .BGEUC = { 164, 1}, - .BLEZC = { 165, 1}, - .BGEZC = { 166, 1}, - .BGTZC = { 167, 1}, - .BLTZC = { 168, 1}, - .BEQZC = { 169, 1}, - .BNEZC = { 170, 1}, - .BC1EQZ = { 171, 1}, - .BC1NEZ = { 172, 1}, - .BC2EQZ = { 173, 1}, - .BC2NEZ = { 174, 1}, - .JIC = { 175, 1}, - .JIALC = { 176, 1}, - .MUH = { 177, 1}, - .MULU = { 178, 1}, - .MUHU = { 179, 1}, - .MOD = { 180, 1}, - .MODU = { 181, 1}, - .DMUL_R6 = { 182, 1}, - .DMUH = { 183, 1}, - .DMULU = { 184, 1}, - .DMUHU = { 185, 1}, - .DDIV_R6 = { 186, 1}, - .DMOD = { 187, 1}, - .DDIVU_R6 = { 188, 1}, - .DMODU = { 189, 1}, - .AUI = { 190, 1}, - .AUIPC = { 191, 1}, - .ALUIPC = { 192, 1}, - .DAUI = { 193, 1}, - .DAHI = { 194, 1}, - .DATI = { 195, 1}, - .ALIGN = { 196, 1}, - .DALIGN = { 197, 1}, - .BITSWAP = { 198, 1}, - .DBITSWAP = { 199, 1}, - .LSA = { 200, 1}, - .DLSA = { 201, 1}, - .LWPC = { 202, 1}, - .LWUPC = { 203, 1}, - .LDPC = { 204, 1}, - .SELEQZ = { 205, 1}, - .SELNEZ = { 206, 1}, - .CRC32B = { 207, 1}, - .CRC32H = { 208, 1}, - .CRC32W = { 209, 1}, - .CRC32D = { 210, 1}, - .CRC32CB = { 211, 1}, - .CRC32CH = { 212, 1}, - .CRC32CW = { 213, 1}, - .CRC32CD = { 214, 1}, - .SIGRIE = { 215, 1}, - .MFC1 = { 216, 1}, - .MTC1 = { 217, 1}, - .DMFC1 = { 218, 1}, - .DMTC1 = { 219, 1}, - .CFC1 = { 220, 1}, - .CTC1 = { 221, 1}, - .MFHC1 = { 222, 1}, - .MTHC1 = { 223, 1}, - .LWC1 = { 224, 1}, - .SWC1 = { 225, 1}, - .LDC1 = { 226, 1}, - .SDC1 = { 227, 1}, - .ADD_S = { 228, 1}, - .ADD_D = { 229, 1}, - .ADD_PS = { 230, 1}, - .SUB_S = { 231, 1}, - .SUB_D = { 232, 1}, - .SUB_PS = { 233, 1}, - .MUL_S = { 234, 1}, - .MUL_D = { 235, 1}, - .MUL_PS = { 236, 1}, - .DIV_S = { 237, 1}, - .DIV_D = { 238, 1}, - .SQRT_S = { 239, 1}, - .SQRT_D = { 240, 1}, - .ABS_S = { 241, 1}, - .ABS_D = { 242, 1}, - .ABS_PS = { 243, 1}, - .NEG_S = { 244, 1}, - .NEG_D = { 245, 1}, - .NEG_PS = { 246, 1}, - .MOV_S = { 247, 1}, - .MOV_D = { 248, 1}, - .MOV_PS = { 249, 1}, - .RECIP_S = { 250, 1}, - .RECIP_D = { 251, 1}, - .RSQRT_S = { 252, 1}, - .RSQRT_D = { 253, 1}, - .MADD_S = { 254, 1}, - .MADD_D = { 255, 1}, - .MADD_PS = { 256, 1}, - .MSUB_S = { 257, 1}, - .MSUB_D = { 258, 1}, - .MSUB_PS = { 259, 1}, - .NMADD_S = { 260, 1}, - .NMADD_D = { 261, 1}, - .NMADD_PS = { 262, 1}, - .NMSUB_S = { 263, 1}, - .NMSUB_D = { 264, 1}, - .NMSUB_PS = { 265, 1}, - .MOVN_S = { 266, 1}, - .MOVN_D = { 267, 1}, - .MOVN_PS = { 268, 1}, - .MOVZ_S = { 269, 1}, - .MOVZ_D = { 270, 1}, - .MOVZ_PS = { 271, 1}, - .MOVF_S = { 272, 1}, - .MOVF_D = { 273, 1}, - .MOVF_PS = { 274, 1}, - .MOVT_S = { 275, 1}, - .MOVT_D = { 276, 1}, - .MOVT_PS = { 277, 1}, - .CVT_S_D = { 278, 1}, - .CVT_S_W = { 279, 1}, - .CVT_S_L = { 280, 1}, - .CVT_D_S = { 281, 1}, - .CVT_D_W = { 282, 1}, - .CVT_D_L = { 283, 1}, - .CVT_W_S = { 284, 1}, - .CVT_W_D = { 285, 1}, - .CVT_L_S = { 286, 1}, - .CVT_L_D = { 287, 1}, - .CVT_PS_S = { 288, 1}, - .CVT_S_PU = { 289, 1}, - .CVT_S_PL = { 290, 1}, - .PLL_PS = { 291, 1}, - .PLU_PS = { 292, 1}, - .PUL_PS = { 293, 1}, - .PUU_PS = { 294, 1}, - .ROUND_W_S = { 295, 1}, - .ROUND_W_D = { 296, 1}, - .ROUND_L_S = { 297, 1}, - .ROUND_L_D = { 298, 1}, - .TRUNC_W_S = { 299, 1}, - .TRUNC_W_D = { 300, 1}, - .TRUNC_L_S = { 301, 1}, - .TRUNC_L_D = { 302, 1}, - .CEIL_W_S = { 303, 1}, - .CEIL_W_D = { 304, 1}, - .CEIL_L_S = { 305, 1}, - .CEIL_L_D = { 306, 1}, - .FLOOR_W_S = { 307, 1}, - .FLOOR_W_D = { 308, 1}, - .FLOOR_L_S = { 309, 1}, - .FLOOR_L_D = { 310, 1}, - .C_F_S = { 311, 1}, - .C_F_D = { 312, 1}, - .C_F_PS = { 313, 1}, - .C_UN_S = { 314, 1}, - .C_UN_D = { 315, 1}, - .C_UN_PS = { 316, 1}, - .C_EQ_S = { 317, 1}, - .C_EQ_D = { 318, 1}, - .C_EQ_PS = { 319, 1}, - .C_UEQ_S = { 320, 1}, - .C_UEQ_D = { 321, 1}, - .C_UEQ_PS = { 322, 1}, - .C_OLT_S = { 323, 1}, - .C_OLT_D = { 324, 1}, - .C_OLT_PS = { 325, 1}, - .C_ULT_S = { 326, 1}, - .C_ULT_D = { 327, 1}, - .C_ULT_PS = { 328, 1}, - .C_OLE_S = { 329, 1}, - .C_OLE_D = { 330, 1}, - .C_OLE_PS = { 331, 1}, - .C_ULE_S = { 332, 1}, - .C_ULE_D = { 333, 1}, - .C_ULE_PS = { 334, 1}, - .C_SF_S = { 335, 1}, - .C_SF_D = { 336, 1}, - .C_SF_PS = { 337, 1}, - .C_NGLE_S = { 338, 1}, - .C_NGLE_D = { 339, 1}, - .C_NGLE_PS = { 340, 1}, - .C_SEQ_S = { 341, 1}, - .C_SEQ_D = { 342, 1}, - .C_SEQ_PS = { 343, 1}, - .C_NGL_S = { 344, 1}, - .C_NGL_D = { 345, 1}, - .C_NGL_PS = { 346, 1}, - .C_LT_S = { 347, 1}, - .C_LT_D = { 348, 1}, - .C_LT_PS = { 349, 1}, - .C_NGE_S = { 350, 1}, - .C_NGE_D = { 351, 1}, - .C_NGE_PS = { 352, 1}, - .C_LE_S = { 353, 1}, - .C_LE_D = { 354, 1}, - .C_LE_PS = { 355, 1}, - .C_NGT_S = { 356, 1}, - .C_NGT_D = { 357, 1}, - .C_NGT_PS = { 358, 1}, - .BC1F = { 359, 1}, - .BC1T = { 360, 1}, - .BC1FL = { 361, 1}, - .BC1TL = { 362, 1}, - .MFC0 = { 363, 1}, - .MTC0 = { 364, 1}, - .DMFC0 = { 365, 1}, - .DMTC0 = { 366, 1}, - .MFHC0 = { 367, 1}, - .MTHC0 = { 368, 1}, - .TLBP = { 369, 1}, - .TLBR = { 370, 1}, - .TLBWI = { 371, 1}, - .TLBWR = { 372, 1}, - .CACHE = { 373, 1}, - .MFC2 = { 374, 1}, - .MTC2 = { 375, 1}, - .CFC2 = { 376, 1}, - .CTC2 = { 377, 1}, - .LWC2 = { 378, 1}, - .SWC2 = { 379, 1}, - .LDC2 = { 380, 1}, - .SDC2 = { 381, 1}, - .RTPS = { 382, 1}, - .RTPT = { 383, 1}, - .DPCS = { 384, 1}, - .DPCT = { 385, 1}, - .INTPL = { 386, 1}, - .MVMVA = { 387, 1}, - .NCDS = { 388, 1}, - .NCDT = { 389, 1}, - .NCCS = { 390, 1}, - .NCCT = { 391, 1}, - .NCS = { 392, 1}, - .NCT = { 393, 1}, - .CDP = { 394, 1}, - .CC = { 395, 1}, - .NCLIP = { 396, 1}, - .AVSZ3 = { 397, 1}, - .AVSZ4 = { 398, 1}, - .OP_GTE = { 399, 1}, - .GPF = { 400, 1}, - .GPL = { 401, 1}, - .SQR_GTE = { 402, 1}, - .DCPL = { 403, 1}, - .LQ = { 404, 1}, - .SQ = { 405, 1}, - .LQC2 = { 406, 1}, - .SQC2 = { 407, 1}, - .MFHI1 = { 408, 1}, - .MFLO1 = { 409, 1}, - .MTHI1 = { 410, 1}, - .MTLO1 = { 411, 1}, - .MULT1 = { 412, 1}, - .MULTU1 = { 413, 1}, - .DIV1 = { 414, 1}, - .DIVU1 = { 415, 1}, - .MADD_EE = { 416, 0}, - .MADDU_EE = { 416, 0}, - .MSUB_EE = { 416, 0}, - .MSUBU_EE = { 416, 0}, - .MADD1 = { 416, 1}, - .MADDU1 = { 417, 1}, - .MSUB1 = { 418, 0}, - .MSUBU1 = { 418, 0}, - .PMFHL_LW = { 418, 1}, - .PMFHL_UW = { 419, 1}, - .PMFHL_LH = { 420, 1}, - .PMFHL_SH = { 421, 1}, - .PMFHL_SLW = { 422, 1}, - .PMTHL_LW = { 423, 1}, - .PADDB = { 424, 1}, - .PADDH = { 425, 1}, - .PADDW = { 426, 1}, - .PADDSB = { 427, 1}, - .PADDSH = { 428, 1}, - .PADDSW = { 429, 1}, - .PADDUB = { 430, 1}, - .PADDUH = { 431, 1}, - .PADDUW = { 432, 1}, - .PSUBB = { 433, 1}, - .PSUBH = { 434, 1}, - .PSUBW = { 435, 1}, - .PSUBSB = { 436, 1}, - .PSUBSH = { 437, 1}, - .PSUBSW = { 438, 1}, - .PSUBUB = { 439, 1}, - .PSUBUH = { 440, 1}, - .PSUBUW = { 441, 1}, - .PSLLH = { 442, 1}, - .PSRLH = { 443, 1}, - .PSRAH = { 444, 1}, - .PSLLW = { 445, 1}, - .PSRLW = { 446, 1}, - .PSRAW = { 447, 1}, - .PSLLVW = { 448, 1}, - .PSRLVW = { 449, 1}, - .PSRAVW = { 450, 1}, - .QFSRV = { 451, 1}, - .PAND = { 452, 1}, - .POR = { 453, 1}, - .PXOR = { 454, 1}, - .PNOR = { 455, 1}, - .PCEQB = { 456, 1}, - .PCEQH = { 457, 1}, - .PCEQW = { 458, 1}, - .PCGTB = { 459, 1}, - .PCGTH = { 460, 1}, - .PCGTW = { 461, 1}, - .PMULTW = { 462, 1}, - .PMULTUW = { 463, 1}, - .PMULTH = { 464, 1}, - .PMADDW = { 465, 1}, - .PMADDUW = { 466, 1}, - .PMADDH = { 467, 1}, - .PMSUBW = { 468, 1}, - .PMSUBH = { 469, 1}, - .PHMADH = { 470, 1}, - .PHMSBH = { 471, 1}, - .PDIVW = { 472, 1}, - .PDIVUW = { 473, 1}, - .PDIVBW = { 474, 1}, - .PCPYLD = { 475, 1}, - .PCPYUD = { 476, 1}, - .PCPYH = { 477, 1}, - .PINTH = { 478, 1}, - .PINTOH = { 479, 1}, - .PEXEH = { 480, 1}, - .PEXEW = { 481, 1}, - .PEXCH = { 482, 1}, - .PEXCW = { 483, 1}, - .PROT3W = { 484, 1}, - .PPACB = { 485, 1}, - .PPACH = { 486, 1}, - .PPACW = { 487, 1}, - .PPAC5 = { 488, 1}, - .PEXT5 = { 489, 1}, - .PEXTLB = { 490, 1}, - .PEXTLH = { 491, 1}, - .PEXTLW = { 492, 1}, - .PEXTUB = { 493, 1}, - .PEXTUH = { 494, 1}, - .PEXTUW = { 495, 1}, - .PMFHI = { 496, 1}, - .PMFLO = { 497, 1}, - .PMTHI = { 498, 1}, - .PMTLO = { 499, 1}, - .PLZCW = { 500, 1}, - .PABSH = { 501, 1}, - .PABSW = { 502, 1}, - .PMAXH = { 503, 1}, - .PMAXW = { 504, 1}, - .PMINH = { 505, 1}, - .PMINW = { 506, 1}, - .MFSA = { 507, 1}, - .MTSA = { 508, 1}, - .MTSAB = { 509, 1}, - .MTSAH = { 510, 1}, - .ADDQ_PH = { 511, 1}, - .ADDQ_S_PH = { 512, 1}, - .ADDQ_S_W = { 513, 1}, - .SUBQ_PH = { 514, 1}, - .SUBQ_S_PH = { 515, 1}, - .SUBQ_S_W = { 516, 1}, - .ADDU_QB = { 517, 1}, - .ADDU_S_QB = { 518, 1}, - .ADDU_PH = { 519, 1}, - .ADDU_S_PH = { 520, 1}, - .SUBU_QB = { 521, 1}, - .SUBU_S_QB = { 522, 1}, - .SUBU_PH = { 523, 1}, - .SUBU_S_PH = { 524, 1}, - .ADDSC = { 525, 1}, - .ADDWC = { 526, 1}, - .MULEU_S_PH_QBL = { 527, 1}, - .MULEU_S_PH_QBR = { 528, 1}, - .MULEQ_S_W_PHL = { 529, 1}, - .MULEQ_S_W_PHR = { 530, 1}, - .MULQ_RS_PH = { 531, 1}, - .MULQ_S_PH = { 532, 1}, - .MULSAQ_S_W_PH = { 533, 1}, - .DPAQ_S_W_PH = { 534, 1}, - .DPSQ_S_W_PH = { 535, 1}, - .DPAQ_SA_L_W = { 536, 1}, - .DPSQ_SA_L_W = { 537, 1}, - .DPAU_H_QBL = { 538, 1}, - .DPAU_H_QBR = { 539, 1}, - .DPSU_H_QBL = { 540, 1}, - .DPSU_H_QBR = { 541, 1}, - .DPA_W_PH = { 542, 1}, - .DPS_W_PH = { 543, 1}, - .DPAX_W_PH = { 544, 1}, - .DPSX_W_PH = { 545, 1}, - .MAQ_S_W_PHL = { 546, 1}, - .MAQ_S_W_PHR = { 547, 1}, - .MAQ_SA_W_PHL = { 548, 1}, - .MAQ_SA_W_PHR = { 549, 1}, - .EXTR_W = { 550, 1}, - .EXTR_R_W = { 551, 1}, - .EXTR_RS_W = { 552, 1}, - .EXTR_S_H = { 553, 1}, - .EXTRV_W = { 554, 1}, - .EXTRV_R_W = { 555, 1}, - .EXTRV_RS_W = { 556, 1}, - .EXTRV_S_H = { 557, 1}, - .EXTP = { 558, 1}, - .EXTPV = { 559, 1}, - .EXTPDP = { 560, 1}, - .EXTPDPV = { 561, 1}, - .SHILO = { 562, 1}, - .SHILOV = { 563, 1}, - .MTHLIP = { 564, 1}, - .WRDSP = { 565, 1}, - .RDDSP = { 566, 1}, - .PRECRQ_QB_PH = { 567, 1}, - .PRECRQ_PH_W = { 568, 1}, - .PRECRQU_S_QB_PH = { 569, 1}, - .PRECEQ_W_PHL = { 570, 1}, - .PRECEQ_W_PHR = { 571, 1}, - .PRECEQU_PH_QBL = { 572, 1}, - .PRECEQU_PH_QBR = { 573, 1}, - .PRECEQU_PH_QBLA = { 574, 1}, - .PRECEQU_PH_QBRA = { 575, 1}, - .PRECEU_PH_QBL = { 576, 1}, - .PRECEU_PH_QBR = { 577, 1}, - .PRECEU_PH_QBLA = { 578, 1}, - .PRECEU_PH_QBRA = { 579, 1}, - .PRECRQ_RS_PH_W = { 580, 1}, - .CMPU_EQ_QB = { 581, 1}, - .CMPU_LT_QB = { 582, 1}, - .CMPU_LE_QB = { 583, 1}, - .CMP_EQ_PH = { 584, 1}, - .CMP_LT_PH = { 585, 1}, - .CMP_LE_PH = { 586, 1}, - .CMPGU_EQ_QB = { 587, 1}, - .CMPGU_LT_QB = { 588, 1}, - .CMPGU_LE_QB = { 589, 1}, - .PICK_QB = { 590, 1}, - .PICK_PH = { 591, 1}, - .SHLL_QB = { 592, 1}, - .SHLL_PH = { 593, 1}, - .SHLL_S_PH = { 594, 1}, - .SHLL_S_W = { 595, 1}, - .SHLLV_QB = { 596, 1}, - .SHLLV_PH = { 597, 1}, - .SHLLV_S_PH = { 598, 1}, - .SHLLV_S_W = { 599, 1}, - .SHRL_QB = { 600, 1}, - .SHRL_PH = { 601, 1}, - .SHRLV_QB = { 602, 1}, - .SHRLV_PH = { 603, 1}, - .SHRA_QB = { 604, 1}, - .SHRA_R_QB = { 605, 1}, - .SHRA_PH = { 606, 1}, - .SHRA_R_PH = { 607, 1}, - .SHRA_R_W = { 608, 1}, - .SHRAV_QB = { 609, 1}, - .SHRAV_R_QB = { 610, 1}, - .SHRAV_PH = { 611, 1}, - .SHRAV_R_PH = { 612, 1}, - .SHRAV_R_W = { 613, 1}, - .LBUX = { 614, 1}, - .LHX = { 615, 1}, - .LWX = { 616, 1}, - .BPOSGE32 = { 617, 1}, - .BPOSGE64 = { 618, 0}, - .INSV = { 618, 1}, - .BITREV = { 619, 1}, - .ABSQ_S_PH = { 620, 1}, - .ABSQ_S_W = { 621, 1}, - .REPL_PH = { 622, 1}, - .REPLV_PH = { 623, 1}, - .REPL_QB = { 624, 1}, - .REPLV_QB = { 625, 1}, - .ADDV_B = { 626, 1}, - .ADDV_H = { 627, 1}, - .ADDV_W = { 628, 1}, - .ADDV_D = { 629, 1}, - .SUBV_B = { 630, 1}, - .SUBV_H = { 631, 1}, - .SUBV_W = { 632, 1}, - .SUBV_D = { 633, 1}, - .ADDS_S_B = { 634, 1}, - .ADDS_S_H = { 635, 1}, - .ADDS_S_W = { 636, 1}, - .ADDS_S_D = { 637, 1}, - .ADDS_U_B = { 638, 1}, - .ADDS_U_H = { 639, 1}, - .ADDS_U_W = { 640, 1}, - .ADDS_U_D = { 641, 1}, - .SUBS_S_B = { 642, 1}, - .SUBS_S_H = { 643, 1}, - .SUBS_S_W = { 644, 1}, - .SUBS_S_D = { 645, 1}, - .SUBS_U_B = { 646, 1}, - .SUBS_U_H = { 647, 1}, - .SUBS_U_W = { 648, 1}, - .SUBS_U_D = { 649, 1}, - .MULV_B = { 650, 1}, - .MULV_H = { 651, 1}, - .MULV_W = { 652, 1}, - .MULV_D = { 653, 1}, - .DIV_S_B = { 654, 1}, - .DIV_S_H = { 655, 1}, - .DIV_S_W = { 656, 1}, - .DIV_S_D = { 657, 1}, - .DIV_U_B = { 658, 1}, - .DIV_U_H = { 659, 1}, - .DIV_U_W = { 660, 1}, - .DIV_U_D = { 661, 1}, - .MOD_S_B = { 662, 1}, - .MOD_S_H = { 663, 1}, - .MOD_S_W = { 664, 1}, - .MOD_S_D = { 665, 1}, - .MOD_U_B = { 666, 1}, - .MOD_U_H = { 667, 1}, - .MOD_U_W = { 668, 1}, - .MOD_U_D = { 669, 1}, - .MADDV_B = { 670, 1}, - .MADDV_H = { 671, 1}, - .MADDV_W = { 672, 1}, - .MADDV_D = { 673, 1}, - .MSUBV_B = { 674, 1}, - .MSUBV_H = { 675, 1}, - .MSUBV_W = { 676, 1}, - .MSUBV_D = { 677, 1}, - .DOTP_S_H = { 678, 1}, - .DOTP_S_W = { 679, 1}, - .DOTP_S_D = { 680, 1}, - .DOTP_U_H = { 681, 1}, - .DOTP_U_W = { 682, 1}, - .DOTP_U_D = { 683, 1}, - .AND_V = { 684, 1}, - .OR_V = { 685, 1}, - .NOR_V = { 686, 1}, - .XOR_V = { 687, 1}, - .ANDI_B = { 688, 1}, - .ORI_B = { 689, 1}, - .NORI_B = { 690, 1}, - .XORI_B = { 691, 1}, - .BSEL_V = { 692, 1}, - .BSELI_B = { 693, 1}, - .BMNZ_V = { 694, 1}, - .BMNZI_B = { 695, 1}, - .BMZ_V = { 696, 1}, - .BMZI_B = { 697, 1}, - .CEQ_B = { 698, 1}, - .CEQ_H = { 699, 1}, - .CEQ_W = { 700, 1}, - .CEQ_D = { 701, 1}, - .CLT_S_B = { 702, 1}, - .CLT_S_H = { 703, 1}, - .CLT_S_W = { 704, 1}, - .CLT_S_D = { 705, 1}, - .CLT_U_B = { 706, 1}, - .CLT_U_H = { 707, 1}, - .CLT_U_W = { 708, 1}, - .CLT_U_D = { 709, 1}, - .CLE_S_B = { 710, 1}, - .CLE_S_H = { 711, 1}, - .CLE_S_W = { 712, 1}, - .CLE_S_D = { 713, 1}, - .CLE_U_B = { 714, 1}, - .CLE_U_H = { 715, 1}, - .CLE_U_W = { 716, 1}, - .CLE_U_D = { 717, 1}, - .MIN_S_B = { 718, 1}, - .MIN_S_H = { 719, 1}, - .MIN_S_W = { 720, 1}, - .MIN_S_D = { 721, 1}, - .MIN_U_B = { 722, 1}, - .MIN_U_H = { 723, 1}, - .MIN_U_W = { 724, 1}, - .MIN_U_D = { 725, 1}, - .MAX_S_B = { 726, 1}, - .MAX_S_H = { 727, 1}, - .MAX_S_W = { 728, 1}, - .MAX_S_D = { 729, 1}, - .MAX_U_B = { 730, 1}, - .MAX_U_H = { 731, 1}, - .MAX_U_W = { 732, 1}, - .MAX_U_D = { 733, 1}, - .SLL_B = { 734, 1}, - .SLL_H = { 735, 1}, - .SLL_W = { 736, 1}, - .SLL_D = { 737, 1}, - .SRL_B = { 738, 1}, - .SRL_H = { 739, 1}, - .SRL_W = { 740, 1}, - .SRL_D = { 741, 1}, - .SRA_B = { 742, 1}, - .SRA_H = { 743, 1}, - .SRA_W = { 744, 1}, - .SRA_D = { 745, 1}, - .SLLI_B = { 746, 1}, - .SLLI_H = { 747, 1}, - .SLLI_W = { 748, 1}, - .SLLI_D = { 749, 1}, - .SRLI_B = { 750, 1}, - .SRLI_H = { 751, 1}, - .SRLI_W = { 752, 1}, - .SRLI_D = { 753, 1}, - .SRAI_B = { 754, 1}, - .SRAI_H = { 755, 1}, - .SRAI_W = { 756, 1}, - .SRAI_D = { 757, 1}, - .FADD_W = { 758, 1}, - .FADD_D = { 759, 1}, - .FSUB_W = { 760, 1}, - .FSUB_D = { 761, 1}, - .FMUL_W = { 762, 1}, - .FMUL_D = { 763, 1}, - .FDIV_W = { 764, 1}, - .FDIV_D = { 765, 1}, - .FSQRT_W = { 766, 1}, - .FSQRT_D = { 767, 1}, - .FRSQRT_W = { 768, 1}, - .FRSQRT_D = { 769, 1}, - .FRCP_W = { 770, 1}, - .FRCP_D = { 771, 1}, - .FRINT_W = { 772, 1}, - .FRINT_D = { 773, 1}, - .FMAX_W = { 774, 1}, - .FMAX_D = { 775, 1}, - .FMIN_W = { 776, 1}, - .FMIN_D = { 777, 1}, - .FCEQ_W = { 778, 1}, - .FCEQ_D = { 779, 1}, - .FCNE_W = { 780, 1}, - .FCNE_D = { 781, 1}, - .FCLT_W = { 782, 1}, - .FCLT_D = { 783, 1}, - .FCLE_W = { 784, 1}, - .FCLE_D = { 785, 1}, - .FFINT_S_W = { 786, 1}, - .FFINT_S_D = { 787, 1}, - .FFINT_U_W = { 788, 1}, - .FFINT_U_D = { 789, 1}, - .FTRUNC_S_W = { 790, 1}, - .FTRUNC_S_D = { 791, 1}, - .FTRUNC_U_W = { 792, 1}, - .FTRUNC_U_D = { 793, 1}, - .FCVT_S_W = { 794, 1}, - .FCVT_S_D = { 795, 1}, - .FCVT_D_W = { 796, 1}, - .LD_B = { 797, 1}, - .LD_H = { 798, 1}, - .LD_W = { 799, 1}, - .LD_D = { 800, 1}, - .ST_B = { 801, 1}, - .ST_H = { 802, 1}, - .ST_W = { 803, 1}, - .ST_D = { 804, 1}, - .LDI_B = { 805, 1}, - .LDI_H = { 806, 1}, - .LDI_W = { 807, 1}, - .LDI_D = { 808, 1}, - .COPY_S_B = { 809, 1}, - .COPY_S_H = { 810, 1}, - .COPY_S_W = { 811, 1}, - .COPY_U_B = { 812, 1}, - .COPY_U_H = { 813, 1}, - .COPY_U_W = { 814, 1}, - .INSERT_B = { 815, 1}, - .INSERT_H = { 816, 1}, - .INSERT_W = { 817, 1}, - .INSERT_D = { 818, 1}, - .INSVE_B = { 819, 1}, - .INSVE_H = { 820, 1}, - .INSVE_W = { 821, 1}, - .INSVE_D = { 822, 1}, - .SHF_B = { 823, 1}, - .SHF_H = { 824, 1}, - .SHF_W = { 825, 1}, - .VSHF_B = { 826, 1}, - .VSHF_H = { 827, 1}, - .VSHF_W = { 828, 1}, - .VSHF_D = { 829, 1}, - .SLD_B = { 830, 1}, - .SLD_H = { 831, 1}, - .SLD_W = { 832, 1}, - .SLD_D = { 833, 1}, - .SLDI_B = { 834, 1}, - .SLDI_H = { 835, 1}, - .SLDI_W = { 836, 1}, - .SLDI_D = { 837, 1}, - .SPLAT_B = { 838, 1}, - .SPLAT_H = { 839, 1}, - .SPLAT_W = { 840, 1}, - .SPLAT_D = { 841, 1}, - .SPLATI_B = { 842, 1}, - .SPLATI_H = { 843, 1}, - .SPLATI_W = { 844, 1}, - .SPLATI_D = { 845, 1}, - .BZ_V = { 846, 1}, - .BNZ_V = { 847, 1}, - .BZ_B = { 848, 1}, - .BZ_H = { 849, 1}, - .BZ_W = { 850, 1}, - .BZ_D = { 851, 1}, - .BNZ_B = { 852, 1}, - .BNZ_H = { 853, 1}, - .BNZ_W = { 854, 1}, - .BNZ_D = { 855, 1}, - .NLOC_B = { 856, 1}, - .NLOC_H = { 857, 1}, - .NLOC_W = { 858, 1}, - .NLOC_D = { 859, 1}, - .NLZC_B = { 860, 1}, - .NLZC_H = { 861, 1}, - .NLZC_W = { 862, 1}, - .NLZC_D = { 863, 1}, - .PCNT_B = { 864, 1}, - .PCNT_H = { 865, 1}, - .PCNT_W = { 866, 1}, - .PCNT_D = { 867, 1}, - .VMOV_S = { 868, 1}, - .VMOV_P = { 869, 1}, - .VMOV_T = { 870, 1}, - .VMOV_Q = { 871, 1}, - .LV_S = { 872, 1}, - .LV_Q = { 873, 1}, - .SV_S = { 874, 1}, - .SV_Q = { 875, 1}, - .LVL_Q = { 876, 1}, - .LVR_Q = { 877, 1}, - .SVL_Q = { 878, 1}, - .SVR_Q = { 879, 1}, - .VIIM_S = { 880, 1}, - .VFIM_S = { 881, 1}, - .VADD_S = { 882, 1}, - .VADD_P = { 883, 1}, - .VADD_T = { 884, 1}, - .VADD_Q = { 885, 1}, - .VSUB_S = { 886, 1}, - .VSUB_P = { 887, 1}, - .VSUB_T = { 888, 1}, - .VSUB_Q = { 889, 1}, - .VMUL_S = { 890, 1}, - .VMUL_P = { 891, 1}, - .VMUL_T = { 892, 1}, - .VMUL_Q = { 893, 1}, - .VDIV_S = { 894, 1}, - .VDIV_P = { 895, 1}, - .VDIV_T = { 896, 1}, - .VDIV_Q = { 897, 1}, - .VABS_S = { 898, 1}, - .VABS_P = { 899, 1}, - .VABS_T = { 900, 1}, - .VABS_Q = { 901, 1}, - .VNEG_S = { 902, 1}, - .VNEG_P = { 903, 1}, - .VNEG_T = { 904, 1}, - .VNEG_Q = { 905, 1}, - .VSQRT_S = { 906, 1}, - .VRCP_S = { 907, 1}, - .VRCP_P = { 908, 1}, - .VRCP_T = { 909, 1}, - .VRCP_Q = { 910, 1}, - .VRSQ_S = { 911, 1}, - .VRSQ_P = { 912, 1}, - .VRSQ_T = { 913, 1}, - .VRSQ_Q = { 914, 1}, - .VDOT_P = { 915, 1}, - .VDOT_T = { 916, 1}, - .VDOT_Q = { 917, 1}, - .VSCL_P = { 918, 1}, - .VSCL_T = { 919, 1}, - .VSCL_Q = { 920, 1}, - .VHDP_P = { 921, 1}, - .VHDP_T = { 922, 1}, - .VHDP_Q = { 923, 1}, - .VAVG_P = { 924, 1}, - .VAVG_T = { 925, 1}, - .VAVG_Q = { 926, 1}, - .VFAD_P = { 927, 1}, - .VFAD_T = { 928, 1}, - .VFAD_Q = { 929, 1}, - .VMMUL_P = { 930, 1}, - .VMMUL_T = { 931, 1}, - .VMMUL_Q = { 932, 1}, - .VTFM2_P = { 933, 1}, - .VTFM3_T = { 934, 1}, - .VTFM4_Q = { 935, 1}, - .VHTFM2_P = { 936, 1}, - .VHTFM3_T = { 937, 1}, - .VHTFM4_Q = { 938, 1}, - .VMSCL_P = { 939, 1}, - .VMSCL_T = { 940, 1}, - .VMSCL_Q = { 941, 1}, - .VMMOV_P = { 942, 1}, - .VMMOV_T = { 943, 1}, - .VMMOV_Q = { 944, 1}, - .VMIDT_P = { 945, 1}, - .VMIDT_T = { 946, 1}, - .VMIDT_Q = { 947, 1}, - .VMZERO_P = { 948, 1}, - .VMZERO_T = { 949, 1}, - .VMZERO_Q = { 950, 1}, - .VMONE_P = { 951, 1}, - .VMONE_T = { 952, 1}, - .VMONE_Q = { 953, 1}, - .VCRS_T = { 954, 1}, - .VCRSP_T = { 955, 1}, - .VQMUL_Q = { 956, 1}, - .VCMP_S = { 957, 1}, - .VCMP_P = { 958, 1}, - .VCMP_T = { 959, 1}, - .VCMP_Q = { 960, 1}, - .VMIN_S = { 961, 1}, - .VMIN_P = { 962, 1}, - .VMIN_T = { 963, 1}, - .VMIN_Q = { 964, 1}, - .VMAX_S = { 965, 1}, - .VMAX_P = { 966, 1}, - .VMAX_T = { 967, 1}, - .VMAX_Q = { 968, 1}, - .VSIN_S = { 969, 1}, - .VCOS_S = { 970, 1}, - .VEXP2_S = { 971, 1}, - .VLOG2_S = { 972, 1}, - .VASIN_S = { 973, 1}, - .VNRCP_S = { 974, 1}, - .VNSIN_S = { 975, 1}, - .VREXP2_S = { 976, 1}, - .VSGN_S = { 977, 1}, - .VI2F_S = { 978, 1}, - .VI2F_P = { 979, 1}, - .VI2F_T = { 980, 1}, - .VI2F_Q = { 981, 1}, - .VF2IN_S = { 982, 1}, - .VF2IN_P = { 983, 1}, - .VF2IN_T = { 984, 1}, - .VF2IN_Q = { 985, 1}, - .VF2IZ_S = { 986, 1}, - .VF2IZ_P = { 987, 1}, - .VF2IZ_T = { 988, 1}, - .VF2IZ_Q = { 989, 1}, - .VF2IU_S = { 990, 1}, - .VF2IU_P = { 991, 1}, - .VF2IU_T = { 992, 1}, - .VF2IU_Q = { 993, 1}, - .VF2ID_S = { 994, 1}, - .VF2ID_P = { 995, 1}, - .VF2ID_T = { 996, 1}, - .VF2ID_Q = { 997, 1}, - .VF2H_P = { 998, 1}, - .VH2F_S = { 999, 1}, - .VFLUSH = { 1000, 1}, - .VSYNC = { 1001, 1}, - .VNOP = { 1002, 1}, - .VPFXS = { 1003, 1}, - .VPFXT = { 1004, 1}, - .VPFXD = { 1005, 1}, - .VCST_S = { 1006, 1}, - .VCST_P = { 1007, 1}, - .VCST_T = { 1008, 1}, - .VCST_Q = { 1009, 1}, - .MFV = { 1010, 1}, - .MTV = { 1011, 1}, - .MFVC = { 1012, 1}, - .MTVC = { 1013, 1}, - .BVF = { 1014, 1}, - .BVT = { 1015, 1}, - .BVFL = { 1016, 1}, - .BVTL = { 1017, 1}, + .RDPGPR = { 152, 1}, + .WRPGPR = { 153, 1}, + .DI = { 154, 1}, + .EI = { 155, 1}, + .ERET = { 156, 1}, + .DERET = { 157, 1}, + .WAIT = { 158, 1}, + .BC = { 159, 1}, + .BALC = { 160, 1}, + .BEQC = { 161, 1}, + .BNEC = { 162, 1}, + .BLTC = { 163, 1}, + .BGEC = { 164, 1}, + .BLTUC = { 165, 1}, + .BGEUC = { 166, 1}, + .BLEZC = { 167, 1}, + .BGEZC = { 168, 1}, + .BGTZC = { 169, 1}, + .BLTZC = { 170, 1}, + .BEQZC = { 171, 1}, + .BNEZC = { 172, 1}, + .BC1EQZ = { 173, 1}, + .BC1NEZ = { 174, 1}, + .BC2EQZ = { 175, 1}, + .BC2NEZ = { 176, 1}, + .JIC = { 177, 1}, + .JIALC = { 178, 1}, + .MUH = { 179, 1}, + .MULU = { 180, 1}, + .MUHU = { 181, 1}, + .MOD = { 182, 1}, + .MODU = { 183, 1}, + .DMUL_R6 = { 184, 1}, + .DMUH = { 185, 1}, + .DMULU = { 186, 1}, + .DMUHU = { 187, 1}, + .DDIV_R6 = { 188, 1}, + .DMOD = { 189, 1}, + .DDIVU_R6 = { 190, 1}, + .DMODU = { 191, 1}, + .AUI = { 192, 1}, + .AUIPC = { 193, 1}, + .ALUIPC = { 194, 1}, + .DAUI = { 195, 1}, + .DAHI = { 196, 1}, + .DATI = { 197, 1}, + .ALIGN = { 198, 1}, + .DALIGN = { 199, 1}, + .BITSWAP = { 200, 1}, + .DBITSWAP = { 201, 1}, + .LSA = { 202, 1}, + .DLSA = { 203, 1}, + .LWPC = { 204, 1}, + .LWUPC = { 205, 1}, + .LDPC = { 206, 1}, + .SELEQZ = { 207, 1}, + .SELNEZ = { 208, 1}, + .CRC32B = { 209, 1}, + .CRC32H = { 210, 1}, + .CRC32W = { 211, 1}, + .CRC32D = { 212, 1}, + .CRC32CB = { 213, 1}, + .CRC32CH = { 214, 1}, + .CRC32CW = { 215, 1}, + .CRC32CD = { 216, 1}, + .SIGRIE = { 217, 1}, + .MFC1 = { 218, 1}, + .MTC1 = { 219, 1}, + .DMFC1 = { 220, 1}, + .DMTC1 = { 221, 1}, + .CFC1 = { 222, 1}, + .CTC1 = { 223, 1}, + .MFHC1 = { 224, 1}, + .MTHC1 = { 225, 1}, + .LWC1 = { 226, 1}, + .SWC1 = { 227, 1}, + .LDC1 = { 228, 1}, + .SDC1 = { 229, 1}, + .ADD_S = { 230, 1}, + .ADD_D = { 231, 1}, + .ADD_PS = { 232, 1}, + .SUB_S = { 233, 1}, + .SUB_D = { 234, 1}, + .SUB_PS = { 235, 1}, + .MUL_S = { 236, 1}, + .MUL_D = { 237, 1}, + .MUL_PS = { 238, 1}, + .DIV_S = { 239, 1}, + .DIV_D = { 240, 1}, + .SQRT_S = { 241, 1}, + .SQRT_D = { 242, 1}, + .ABS_S = { 243, 1}, + .ABS_D = { 244, 1}, + .ABS_PS = { 245, 1}, + .NEG_S = { 246, 1}, + .NEG_D = { 247, 1}, + .NEG_PS = { 248, 1}, + .MOV_S = { 249, 1}, + .MOV_D = { 250, 1}, + .MOV_PS = { 251, 1}, + .RECIP_S = { 252, 1}, + .RECIP_D = { 253, 1}, + .RSQRT_S = { 254, 1}, + .RSQRT_D = { 255, 1}, + .MADD_S = { 256, 1}, + .MADD_D = { 257, 1}, + .MADD_PS = { 258, 1}, + .MSUB_S = { 259, 1}, + .MSUB_D = { 260, 1}, + .MSUB_PS = { 261, 1}, + .NMADD_S = { 262, 1}, + .NMADD_D = { 263, 1}, + .NMADD_PS = { 264, 1}, + .NMSUB_S = { 265, 1}, + .NMSUB_D = { 266, 1}, + .NMSUB_PS = { 267, 1}, + .MOVN_S = { 268, 1}, + .MOVN_D = { 269, 1}, + .MOVN_PS = { 270, 1}, + .MOVZ_S = { 271, 1}, + .MOVZ_D = { 272, 1}, + .MOVZ_PS = { 273, 1}, + .MOVF_S = { 274, 1}, + .MOVF_D = { 275, 1}, + .MOVF_PS = { 276, 1}, + .MOVT_S = { 277, 1}, + .MOVT_D = { 278, 1}, + .MOVT_PS = { 279, 1}, + .CVT_S_D = { 280, 1}, + .CVT_S_W = { 281, 1}, + .CVT_S_L = { 282, 1}, + .CVT_D_S = { 283, 1}, + .CVT_D_W = { 284, 1}, + .CVT_D_L = { 285, 1}, + .CVT_W_S = { 286, 1}, + .CVT_W_D = { 287, 1}, + .CVT_L_S = { 288, 1}, + .CVT_L_D = { 289, 1}, + .CVT_PS_S = { 290, 1}, + .CVT_S_PU = { 291, 1}, + .CVT_S_PL = { 292, 1}, + .PLL_PS = { 293, 1}, + .PLU_PS = { 294, 1}, + .PUL_PS = { 295, 1}, + .PUU_PS = { 296, 1}, + .ROUND_W_S = { 297, 1}, + .ROUND_W_D = { 298, 1}, + .ROUND_L_S = { 299, 1}, + .ROUND_L_D = { 300, 1}, + .TRUNC_W_S = { 301, 1}, + .TRUNC_W_D = { 302, 1}, + .TRUNC_L_S = { 303, 1}, + .TRUNC_L_D = { 304, 1}, + .CEIL_W_S = { 305, 1}, + .CEIL_W_D = { 306, 1}, + .CEIL_L_S = { 307, 1}, + .CEIL_L_D = { 308, 1}, + .FLOOR_W_S = { 309, 1}, + .FLOOR_W_D = { 310, 1}, + .FLOOR_L_S = { 311, 1}, + .FLOOR_L_D = { 312, 1}, + .C_F_S = { 313, 1}, + .C_F_D = { 314, 1}, + .C_F_PS = { 315, 1}, + .C_UN_S = { 316, 1}, + .C_UN_D = { 317, 1}, + .C_UN_PS = { 318, 1}, + .C_EQ_S = { 319, 1}, + .C_EQ_D = { 320, 1}, + .C_EQ_PS = { 321, 1}, + .C_UEQ_S = { 322, 1}, + .C_UEQ_D = { 323, 1}, + .C_UEQ_PS = { 324, 1}, + .C_OLT_S = { 325, 1}, + .C_OLT_D = { 326, 1}, + .C_OLT_PS = { 327, 1}, + .C_ULT_S = { 328, 1}, + .C_ULT_D = { 329, 1}, + .C_ULT_PS = { 330, 1}, + .C_OLE_S = { 331, 1}, + .C_OLE_D = { 332, 1}, + .C_OLE_PS = { 333, 1}, + .C_ULE_S = { 334, 1}, + .C_ULE_D = { 335, 1}, + .C_ULE_PS = { 336, 1}, + .C_SF_S = { 337, 1}, + .C_SF_D = { 338, 1}, + .C_SF_PS = { 339, 1}, + .C_NGLE_S = { 340, 1}, + .C_NGLE_D = { 341, 1}, + .C_NGLE_PS = { 342, 1}, + .C_SEQ_S = { 343, 1}, + .C_SEQ_D = { 344, 1}, + .C_SEQ_PS = { 345, 1}, + .C_NGL_S = { 346, 1}, + .C_NGL_D = { 347, 1}, + .C_NGL_PS = { 348, 1}, + .C_LT_S = { 349, 1}, + .C_LT_D = { 350, 1}, + .C_LT_PS = { 351, 1}, + .C_NGE_S = { 352, 1}, + .C_NGE_D = { 353, 1}, + .C_NGE_PS = { 354, 1}, + .C_LE_S = { 355, 1}, + .C_LE_D = { 356, 1}, + .C_LE_PS = { 357, 1}, + .C_NGT_S = { 358, 1}, + .C_NGT_D = { 359, 1}, + .C_NGT_PS = { 360, 1}, + .BC1F = { 361, 1}, + .BC1T = { 362, 1}, + .BC1FL = { 363, 1}, + .BC1TL = { 364, 1}, + .MFC0 = { 365, 1}, + .MTC0 = { 366, 1}, + .DMFC0 = { 367, 1}, + .DMTC0 = { 368, 1}, + .MFHC0 = { 369, 1}, + .MTHC0 = { 370, 1}, + .TLBP = { 371, 1}, + .TLBR = { 372, 1}, + .TLBWI = { 373, 1}, + .TLBWR = { 374, 1}, + .CACHE = { 375, 1}, + .MFC2 = { 376, 1}, + .MTC2 = { 377, 1}, + .CFC2 = { 378, 1}, + .CTC2 = { 379, 1}, + .LWC2 = { 380, 1}, + .SWC2 = { 381, 1}, + .LDC2 = { 382, 1}, + .SDC2 = { 383, 1}, + .RTPS = { 384, 1}, + .RTPT = { 385, 1}, + .DPCS = { 386, 1}, + .DPCT = { 387, 1}, + .INTPL = { 388, 1}, + .MVMVA = { 389, 1}, + .NCDS = { 390, 1}, + .NCDT = { 391, 1}, + .NCCS = { 392, 1}, + .NCCT = { 393, 1}, + .NCS = { 394, 1}, + .NCT = { 395, 1}, + .CDP = { 396, 1}, + .CC = { 397, 1}, + .NCLIP = { 398, 1}, + .AVSZ3 = { 399, 1}, + .AVSZ4 = { 400, 1}, + .OP_GTE = { 401, 1}, + .GPF = { 402, 1}, + .GPL = { 403, 1}, + .SQR_GTE = { 404, 1}, + .DCPL = { 405, 1}, + .LQ = { 406, 1}, + .SQ = { 407, 1}, + .LQC2 = { 408, 1}, + .SQC2 = { 409, 1}, + .MFHI1 = { 410, 1}, + .MFLO1 = { 411, 1}, + .MTHI1 = { 412, 1}, + .MTLO1 = { 413, 1}, + .MULT1 = { 414, 1}, + .MULTU1 = { 415, 1}, + .DIV1 = { 416, 1}, + .DIVU1 = { 417, 1}, + .MADD_EE = { 418, 1}, + .MADDU_EE = { 419, 1}, + .MSUB_EE = { 420, 1}, + .MSUBU_EE = { 421, 1}, + .MADD1 = { 422, 1}, + .MADDU1 = { 423, 1}, + .MSUB1 = { 424, 1}, + .MSUBU1 = { 425, 1}, + .PMFHL_LW = { 426, 1}, + .PMFHL_UW = { 427, 1}, + .PMFHL_LH = { 428, 1}, + .PMFHL_SH = { 429, 1}, + .PMFHL_SLW = { 430, 1}, + .PMTHL_LW = { 431, 1}, + .PADDB = { 432, 1}, + .PADDH = { 433, 1}, + .PADDW = { 434, 1}, + .PADDSB = { 435, 1}, + .PADDSH = { 436, 1}, + .PADDSW = { 437, 1}, + .PADDUB = { 438, 1}, + .PADDUH = { 439, 1}, + .PADDUW = { 440, 1}, + .PSUBB = { 441, 1}, + .PSUBH = { 442, 1}, + .PSUBW = { 443, 1}, + .PSUBSB = { 444, 1}, + .PSUBSH = { 445, 1}, + .PSUBSW = { 446, 1}, + .PSUBUB = { 447, 1}, + .PSUBUH = { 448, 1}, + .PSUBUW = { 449, 1}, + .PSLLH = { 450, 1}, + .PSRLH = { 451, 1}, + .PSRAH = { 452, 1}, + .PSLLW = { 453, 1}, + .PSRLW = { 454, 1}, + .PSRAW = { 455, 1}, + .PSLLVW = { 456, 1}, + .PSRLVW = { 457, 1}, + .PSRAVW = { 458, 1}, + .QFSRV = { 459, 1}, + .PAND = { 460, 1}, + .POR = { 461, 1}, + .PXOR = { 462, 1}, + .PNOR = { 463, 1}, + .PCEQB = { 464, 1}, + .PCEQH = { 465, 1}, + .PCEQW = { 466, 1}, + .PCGTB = { 467, 1}, + .PCGTH = { 468, 1}, + .PCGTW = { 469, 1}, + .PMULTW = { 470, 1}, + .PMULTUW = { 471, 1}, + .PMULTH = { 472, 1}, + .PMADDW = { 473, 1}, + .PMADDUW = { 474, 1}, + .PMADDH = { 475, 1}, + .PMSUBW = { 476, 1}, + .PMSUBH = { 477, 1}, + .PHMADH = { 478, 1}, + .PHMSBH = { 479, 1}, + .PDIVW = { 480, 1}, + .PDIVUW = { 481, 1}, + .PDIVBW = { 482, 1}, + .PCPYLD = { 483, 1}, + .PCPYUD = { 484, 1}, + .PCPYH = { 485, 1}, + .PINTH = { 486, 1}, + .PINTOH = { 487, 1}, + .PEXEH = { 488, 1}, + .PEXEW = { 489, 1}, + .PEXCH = { 490, 1}, + .PEXCW = { 491, 1}, + .PROT3W = { 492, 1}, + .PPACB = { 493, 1}, + .PPACH = { 494, 1}, + .PPACW = { 495, 1}, + .PPAC5 = { 496, 1}, + .PEXT5 = { 497, 1}, + .PEXTLB = { 498, 1}, + .PEXTLH = { 499, 1}, + .PEXTLW = { 500, 1}, + .PEXTUB = { 501, 1}, + .PEXTUH = { 502, 1}, + .PEXTUW = { 503, 1}, + .PMFHI = { 504, 1}, + .PMFLO = { 505, 1}, + .PMTHI = { 506, 1}, + .PMTLO = { 507, 1}, + .PLZCW = { 508, 1}, + .PABSH = { 509, 1}, + .PABSW = { 510, 1}, + .PMAXH = { 511, 1}, + .PMAXW = { 512, 1}, + .PMINH = { 513, 1}, + .PMINW = { 514, 1}, + .MFSA = { 515, 1}, + .MTSA = { 516, 1}, + .MTSAB = { 517, 1}, + .MTSAH = { 518, 1}, + .ADDQ_PH = { 519, 1}, + .ADDQ_S_PH = { 520, 1}, + .ADDQ_S_W = { 521, 1}, + .SUBQ_PH = { 522, 1}, + .SUBQ_S_PH = { 523, 1}, + .SUBQ_S_W = { 524, 1}, + .ADDU_QB = { 525, 1}, + .ADDU_S_QB = { 526, 1}, + .ADDU_PH = { 527, 1}, + .ADDU_S_PH = { 528, 1}, + .SUBU_QB = { 529, 1}, + .SUBU_S_QB = { 530, 1}, + .SUBU_PH = { 531, 1}, + .SUBU_S_PH = { 532, 1}, + .ADDSC = { 533, 1}, + .ADDWC = { 534, 1}, + .MULEU_S_PH_QBL = { 535, 1}, + .MULEU_S_PH_QBR = { 536, 1}, + .MULEQ_S_W_PHL = { 537, 1}, + .MULEQ_S_W_PHR = { 538, 1}, + .MULQ_RS_PH = { 539, 1}, + .MULQ_S_PH = { 540, 1}, + .MULSAQ_S_W_PH = { 541, 1}, + .DPAQ_S_W_PH = { 542, 1}, + .DPSQ_S_W_PH = { 543, 1}, + .DPAQ_SA_L_W = { 544, 1}, + .DPSQ_SA_L_W = { 545, 1}, + .DPAU_H_QBL = { 546, 1}, + .DPAU_H_QBR = { 547, 1}, + .DPSU_H_QBL = { 548, 1}, + .DPSU_H_QBR = { 549, 1}, + .DPA_W_PH = { 550, 1}, + .DPS_W_PH = { 551, 1}, + .DPAX_W_PH = { 552, 1}, + .DPSX_W_PH = { 553, 1}, + .MAQ_S_W_PHL = { 554, 1}, + .MAQ_S_W_PHR = { 555, 1}, + .MAQ_SA_W_PHL = { 556, 1}, + .MAQ_SA_W_PHR = { 557, 1}, + .EXTR_W = { 558, 1}, + .EXTR_R_W = { 559, 1}, + .EXTR_RS_W = { 560, 1}, + .EXTR_S_H = { 561, 1}, + .EXTRV_W = { 562, 1}, + .EXTRV_R_W = { 563, 1}, + .EXTRV_RS_W = { 564, 1}, + .EXTRV_S_H = { 565, 1}, + .EXTP = { 566, 1}, + .EXTPV = { 567, 1}, + .EXTPDP = { 568, 1}, + .EXTPDPV = { 569, 1}, + .SHILO = { 570, 1}, + .SHILOV = { 571, 1}, + .MTHLIP = { 572, 1}, + .WRDSP = { 573, 1}, + .RDDSP = { 574, 1}, + .PRECRQ_QB_PH = { 575, 1}, + .PRECRQ_PH_W = { 576, 1}, + .PRECRQU_S_QB_PH = { 577, 1}, + .PRECEQ_W_PHL = { 578, 1}, + .PRECEQ_W_PHR = { 579, 1}, + .PRECEQU_PH_QBL = { 580, 1}, + .PRECEQU_PH_QBR = { 581, 1}, + .PRECEQU_PH_QBLA = { 582, 1}, + .PRECEQU_PH_QBRA = { 583, 1}, + .PRECEU_PH_QBL = { 584, 1}, + .PRECEU_PH_QBR = { 585, 1}, + .PRECEU_PH_QBLA = { 586, 1}, + .PRECEU_PH_QBRA = { 587, 1}, + .PRECRQ_RS_PH_W = { 588, 1}, + .CMPU_EQ_QB = { 589, 1}, + .CMPU_LT_QB = { 590, 1}, + .CMPU_LE_QB = { 591, 1}, + .CMP_EQ_PH = { 592, 1}, + .CMP_LT_PH = { 593, 1}, + .CMP_LE_PH = { 594, 1}, + .CMPGU_EQ_QB = { 595, 1}, + .CMPGU_LT_QB = { 596, 1}, + .CMPGU_LE_QB = { 597, 1}, + .PICK_QB = { 598, 1}, + .PICK_PH = { 599, 1}, + .SHLL_QB = { 600, 1}, + .SHLL_PH = { 601, 1}, + .SHLL_S_PH = { 602, 1}, + .SHLL_S_W = { 603, 1}, + .SHLLV_QB = { 604, 1}, + .SHLLV_PH = { 605, 1}, + .SHLLV_S_PH = { 606, 1}, + .SHLLV_S_W = { 607, 1}, + .SHRL_QB = { 608, 1}, + .SHRL_PH = { 609, 1}, + .SHRLV_QB = { 610, 1}, + .SHRLV_PH = { 611, 1}, + .SHRA_QB = { 612, 1}, + .SHRA_R_QB = { 613, 1}, + .SHRA_PH = { 614, 1}, + .SHRA_R_PH = { 615, 1}, + .SHRA_R_W = { 616, 1}, + .SHRAV_QB = { 617, 1}, + .SHRAV_R_QB = { 618, 1}, + .SHRAV_PH = { 619, 1}, + .SHRAV_R_PH = { 620, 1}, + .SHRAV_R_W = { 621, 1}, + .LBUX = { 622, 1}, + .LHX = { 623, 1}, + .LWX = { 624, 1}, + .BPOSGE32 = { 625, 1}, + .INSV = { 626, 1}, + .BITREV = { 627, 1}, + .ABSQ_S_PH = { 628, 1}, + .ABSQ_S_W = { 629, 1}, + .REPL_PH = { 630, 1}, + .REPLV_PH = { 631, 1}, + .REPL_QB = { 632, 1}, + .REPLV_QB = { 633, 1}, + .ADDV_B = { 634, 1}, + .ADDV_H = { 635, 1}, + .ADDV_W = { 636, 1}, + .ADDV_D = { 637, 1}, + .SUBV_B = { 638, 1}, + .SUBV_H = { 639, 1}, + .SUBV_W = { 640, 1}, + .SUBV_D = { 641, 1}, + .ADDS_S_B = { 642, 1}, + .ADDS_S_H = { 643, 1}, + .ADDS_S_W = { 644, 1}, + .ADDS_S_D = { 645, 1}, + .ADDS_U_B = { 646, 1}, + .ADDS_U_H = { 647, 1}, + .ADDS_U_W = { 648, 1}, + .ADDS_U_D = { 649, 1}, + .SUBS_S_B = { 650, 1}, + .SUBS_S_H = { 651, 1}, + .SUBS_S_W = { 652, 1}, + .SUBS_S_D = { 653, 1}, + .SUBS_U_B = { 654, 1}, + .SUBS_U_H = { 655, 1}, + .SUBS_U_W = { 656, 1}, + .SUBS_U_D = { 657, 1}, + .MULV_B = { 658, 1}, + .MULV_H = { 659, 1}, + .MULV_W = { 660, 1}, + .MULV_D = { 661, 1}, + .DIV_S_B = { 662, 1}, + .DIV_S_H = { 663, 1}, + .DIV_S_W = { 664, 1}, + .DIV_S_D = { 665, 1}, + .DIV_U_B = { 666, 1}, + .DIV_U_H = { 667, 1}, + .DIV_U_W = { 668, 1}, + .DIV_U_D = { 669, 1}, + .MOD_S_B = { 670, 1}, + .MOD_S_H = { 671, 1}, + .MOD_S_W = { 672, 1}, + .MOD_S_D = { 673, 1}, + .MOD_U_B = { 674, 1}, + .MOD_U_H = { 675, 1}, + .MOD_U_W = { 676, 1}, + .MOD_U_D = { 677, 1}, + .MADDV_B = { 678, 1}, + .MADDV_H = { 679, 1}, + .MADDV_W = { 680, 1}, + .MADDV_D = { 681, 1}, + .MSUBV_B = { 682, 1}, + .MSUBV_H = { 683, 1}, + .MSUBV_W = { 684, 1}, + .MSUBV_D = { 685, 1}, + .DOTP_S_H = { 686, 1}, + .DOTP_S_W = { 687, 1}, + .DOTP_S_D = { 688, 1}, + .DOTP_U_H = { 689, 1}, + .DOTP_U_W = { 690, 1}, + .DOTP_U_D = { 691, 1}, + .AND_V = { 692, 1}, + .OR_V = { 693, 1}, + .NOR_V = { 694, 1}, + .XOR_V = { 695, 1}, + .ANDI_B = { 696, 1}, + .ORI_B = { 697, 1}, + .NORI_B = { 698, 1}, + .XORI_B = { 699, 1}, + .BSEL_V = { 700, 1}, + .BSELI_B = { 701, 1}, + .BMNZ_V = { 702, 1}, + .BMNZI_B = { 703, 1}, + .BMZ_V = { 704, 1}, + .BMZI_B = { 705, 1}, + .CEQ_B = { 706, 1}, + .CEQ_H = { 707, 1}, + .CEQ_W = { 708, 1}, + .CEQ_D = { 709, 1}, + .CLT_S_B = { 710, 1}, + .CLT_S_H = { 711, 1}, + .CLT_S_W = { 712, 1}, + .CLT_S_D = { 713, 1}, + .CLT_U_B = { 714, 1}, + .CLT_U_H = { 715, 1}, + .CLT_U_W = { 716, 1}, + .CLT_U_D = { 717, 1}, + .CLE_S_B = { 718, 1}, + .CLE_S_H = { 719, 1}, + .CLE_S_W = { 720, 1}, + .CLE_S_D = { 721, 1}, + .CLE_U_B = { 722, 1}, + .CLE_U_H = { 723, 1}, + .CLE_U_W = { 724, 1}, + .CLE_U_D = { 725, 1}, + .MIN_S_B = { 726, 1}, + .MIN_S_H = { 727, 1}, + .MIN_S_W = { 728, 1}, + .MIN_S_D = { 729, 1}, + .MIN_U_B = { 730, 1}, + .MIN_U_H = { 731, 1}, + .MIN_U_W = { 732, 1}, + .MIN_U_D = { 733, 1}, + .MAX_S_B = { 734, 1}, + .MAX_S_H = { 735, 1}, + .MAX_S_W = { 736, 1}, + .MAX_S_D = { 737, 1}, + .MAX_U_B = { 738, 1}, + .MAX_U_H = { 739, 1}, + .MAX_U_W = { 740, 1}, + .MAX_U_D = { 741, 1}, + .SLL_B = { 742, 1}, + .SLL_H = { 743, 1}, + .SLL_W = { 744, 1}, + .SLL_D = { 745, 1}, + .SRL_B = { 746, 1}, + .SRL_H = { 747, 1}, + .SRL_W = { 748, 1}, + .SRL_D = { 749, 1}, + .SRA_B = { 750, 1}, + .SRA_H = { 751, 1}, + .SRA_W = { 752, 1}, + .SRA_D = { 753, 1}, + .SLLI_B = { 754, 1}, + .SLLI_H = { 755, 1}, + .SLLI_W = { 756, 1}, + .SLLI_D = { 757, 1}, + .SRLI_B = { 758, 1}, + .SRLI_H = { 759, 1}, + .SRLI_W = { 760, 1}, + .SRLI_D = { 761, 1}, + .SRAI_B = { 762, 1}, + .SRAI_H = { 763, 1}, + .SRAI_W = { 764, 1}, + .SRAI_D = { 765, 1}, + .FADD_W = { 766, 1}, + .FADD_D = { 767, 1}, + .FSUB_W = { 768, 1}, + .FSUB_D = { 769, 1}, + .FMUL_W = { 770, 1}, + .FMUL_D = { 771, 1}, + .FDIV_W = { 772, 1}, + .FDIV_D = { 773, 1}, + .FSQRT_W = { 774, 1}, + .FSQRT_D = { 775, 1}, + .FRSQRT_W = { 776, 1}, + .FRSQRT_D = { 777, 1}, + .FRCP_W = { 778, 1}, + .FRCP_D = { 779, 1}, + .FRINT_W = { 780, 1}, + .FRINT_D = { 781, 1}, + .FMAX_W = { 782, 1}, + .FMAX_D = { 783, 1}, + .FMIN_W = { 784, 1}, + .FMIN_D = { 785, 1}, + .FCEQ_W = { 786, 1}, + .FCEQ_D = { 787, 1}, + .FCNE_W = { 788, 1}, + .FCNE_D = { 789, 1}, + .FCLT_W = { 790, 1}, + .FCLT_D = { 791, 1}, + .FCLE_W = { 792, 1}, + .FCLE_D = { 793, 1}, + .FFINT_S_W = { 794, 1}, + .FFINT_S_D = { 795, 1}, + .FFINT_U_W = { 796, 1}, + .FFINT_U_D = { 797, 1}, + .FTRUNC_S_W = { 798, 1}, + .FTRUNC_S_D = { 799, 1}, + .FTRUNC_U_W = { 800, 1}, + .FTRUNC_U_D = { 801, 1}, + .FCVT_S_W = { 802, 1}, + .FCVT_S_D = { 803, 1}, + .FCVT_D_W = { 804, 1}, + .LD_B = { 805, 1}, + .LD_H = { 806, 1}, + .LD_W = { 807, 1}, + .LD_D = { 808, 1}, + .ST_B = { 809, 1}, + .ST_H = { 810, 1}, + .ST_W = { 811, 1}, + .ST_D = { 812, 1}, + .LDI_B = { 813, 1}, + .LDI_H = { 814, 1}, + .LDI_W = { 815, 1}, + .LDI_D = { 816, 1}, + .COPY_S_B = { 817, 1}, + .COPY_S_H = { 818, 1}, + .COPY_S_W = { 819, 1}, + .COPY_U_B = { 820, 1}, + .COPY_U_H = { 821, 1}, + .COPY_U_W = { 822, 1}, + .INSERT_B = { 823, 1}, + .INSERT_H = { 824, 1}, + .INSERT_W = { 825, 1}, + .INSERT_D = { 826, 1}, + .INSVE_B = { 827, 1}, + .INSVE_H = { 828, 1}, + .INSVE_W = { 829, 1}, + .INSVE_D = { 830, 1}, + .SHF_B = { 831, 1}, + .SHF_H = { 832, 1}, + .SHF_W = { 833, 1}, + .VSHF_B = { 834, 1}, + .VSHF_H = { 835, 1}, + .VSHF_W = { 836, 1}, + .VSHF_D = { 837, 1}, + .SLD_B = { 838, 1}, + .SLD_H = { 839, 1}, + .SLD_W = { 840, 1}, + .SLD_D = { 841, 1}, + .SLDI_B = { 842, 1}, + .SLDI_H = { 843, 1}, + .SLDI_W = { 844, 1}, + .SLDI_D = { 845, 1}, + .SPLAT_B = { 846, 1}, + .SPLAT_H = { 847, 1}, + .SPLAT_W = { 848, 1}, + .SPLAT_D = { 849, 1}, + .SPLATI_B = { 850, 1}, + .SPLATI_H = { 851, 1}, + .SPLATI_W = { 852, 1}, + .SPLATI_D = { 853, 1}, + .BZ_V = { 854, 1}, + .BNZ_V = { 855, 1}, + .BZ_B = { 856, 1}, + .BZ_H = { 857, 1}, + .BZ_W = { 858, 1}, + .BZ_D = { 859, 1}, + .BNZ_B = { 860, 1}, + .BNZ_H = { 861, 1}, + .BNZ_W = { 862, 1}, + .BNZ_D = { 863, 1}, + .NLOC_B = { 864, 1}, + .NLOC_H = { 865, 1}, + .NLOC_W = { 866, 1}, + .NLOC_D = { 867, 1}, + .NLZC_B = { 868, 1}, + .NLZC_H = { 869, 1}, + .NLZC_W = { 870, 1}, + .NLZC_D = { 871, 1}, + .PCNT_B = { 872, 1}, + .PCNT_H = { 873, 1}, + .PCNT_W = { 874, 1}, + .PCNT_D = { 875, 1}, + .VMOV_S = { 876, 1}, + .VMOV_P = { 877, 1}, + .VMOV_T = { 878, 1}, + .VMOV_Q = { 879, 1}, + .LV_S = { 880, 1}, + .LV_Q = { 881, 1}, + .SV_S = { 882, 1}, + .SV_Q = { 883, 1}, + .LVL_Q = { 884, 1}, + .LVR_Q = { 885, 1}, + .SVL_Q = { 886, 1}, + .SVR_Q = { 887, 1}, + .VIIM_S = { 888, 1}, + .VFIM_S = { 889, 1}, + .VADD_S = { 890, 1}, + .VADD_P = { 891, 1}, + .VADD_T = { 892, 1}, + .VADD_Q = { 893, 1}, + .VSUB_S = { 894, 1}, + .VSUB_P = { 895, 1}, + .VSUB_T = { 896, 1}, + .VSUB_Q = { 897, 1}, + .VMUL_S = { 898, 1}, + .VMUL_P = { 899, 1}, + .VMUL_T = { 900, 1}, + .VMUL_Q = { 901, 1}, + .VDIV_S = { 902, 1}, + .VDIV_P = { 903, 1}, + .VDIV_T = { 904, 1}, + .VDIV_Q = { 905, 1}, + .VABS_S = { 906, 1}, + .VABS_P = { 907, 1}, + .VABS_T = { 908, 1}, + .VABS_Q = { 909, 1}, + .VNEG_S = { 910, 1}, + .VNEG_P = { 911, 1}, + .VNEG_T = { 912, 1}, + .VNEG_Q = { 913, 1}, + .VSQRT_S = { 914, 1}, + .VRCP_S = { 915, 1}, + .VRCP_P = { 916, 1}, + .VRCP_T = { 917, 1}, + .VRCP_Q = { 918, 1}, + .VRSQ_S = { 919, 1}, + .VRSQ_P = { 920, 1}, + .VRSQ_T = { 921, 1}, + .VRSQ_Q = { 922, 1}, + .VDOT_P = { 923, 1}, + .VDOT_T = { 924, 1}, + .VDOT_Q = { 925, 1}, + .VSCL_P = { 926, 1}, + .VSCL_T = { 927, 1}, + .VSCL_Q = { 928, 1}, + .VHDP_P = { 929, 1}, + .VHDP_T = { 930, 1}, + .VHDP_Q = { 931, 1}, + .VAVG_P = { 932, 1}, + .VAVG_T = { 933, 1}, + .VAVG_Q = { 934, 1}, + .VFAD_P = { 935, 1}, + .VFAD_T = { 936, 1}, + .VFAD_Q = { 937, 1}, + .VMMUL_P = { 938, 1}, + .VMMUL_T = { 939, 1}, + .VMMUL_Q = { 940, 1}, + .VTFM2_P = { 941, 1}, + .VTFM3_T = { 942, 1}, + .VTFM4_Q = { 943, 1}, + .VHTFM2_P = { 944, 1}, + .VHTFM3_T = { 945, 1}, + .VHTFM4_Q = { 946, 1}, + .VMSCL_P = { 947, 1}, + .VMSCL_T = { 948, 1}, + .VMSCL_Q = { 949, 1}, + .VMMOV_P = { 950, 1}, + .VMMOV_T = { 951, 1}, + .VMMOV_Q = { 952, 1}, + .VMIDT_P = { 953, 1}, + .VMIDT_T = { 954, 1}, + .VMIDT_Q = { 955, 1}, + .VMZERO_P = { 956, 1}, + .VMZERO_T = { 957, 1}, + .VMZERO_Q = { 958, 1}, + .VMONE_P = { 959, 1}, + .VMONE_T = { 960, 1}, + .VMONE_Q = { 961, 1}, + .VCRS_T = { 962, 1}, + .VCRSP_T = { 963, 1}, + .VQMUL_Q = { 964, 1}, + .VCMP_S = { 965, 1}, + .VCMP_P = { 966, 1}, + .VCMP_T = { 967, 1}, + .VCMP_Q = { 968, 1}, + .VMIN_S = { 969, 1}, + .VMIN_P = { 970, 1}, + .VMIN_T = { 971, 1}, + .VMIN_Q = { 972, 1}, + .VMAX_S = { 973, 1}, + .VMAX_P = { 974, 1}, + .VMAX_T = { 975, 1}, + .VMAX_Q = { 976, 1}, + .VSIN_S = { 977, 1}, + .VCOS_S = { 978, 1}, + .VEXP2_S = { 979, 1}, + .VLOG2_S = { 980, 1}, + .VASIN_S = { 981, 1}, + .VNRCP_S = { 982, 1}, + .VNSIN_S = { 983, 1}, + .VREXP2_S = { 984, 1}, + .VSGN_S = { 985, 1}, + .VI2F_S = { 986, 1}, + .VI2F_P = { 987, 1}, + .VI2F_T = { 988, 1}, + .VI2F_Q = { 989, 1}, + .VF2IN_S = { 990, 1}, + .VF2IN_P = { 991, 1}, + .VF2IN_T = { 992, 1}, + .VF2IN_Q = { 993, 1}, + .VF2IZ_S = { 994, 1}, + .VF2IZ_P = { 995, 1}, + .VF2IZ_T = { 996, 1}, + .VF2IZ_Q = { 997, 1}, + .VF2IU_S = { 998, 1}, + .VF2IU_P = { 999, 1}, + .VF2IU_T = { 1000, 1}, + .VF2IU_Q = { 1001, 1}, + .VF2ID_S = { 1002, 1}, + .VF2ID_P = { 1003, 1}, + .VF2ID_T = { 1004, 1}, + .VF2ID_Q = { 1005, 1}, + .VF2H_P = { 1006, 1}, + .VH2F_S = { 1007, 1}, + .VFLUSH = { 1008, 1}, + .VSYNC = { 1009, 1}, + .VNOP = { 1010, 1}, + .VPFXS = { 1011, 1}, + .VPFXT = { 1012, 1}, + .VPFXD = { 1013, 1}, + .VCST_S = { 1014, 1}, + .VCST_P = { 1015, 1}, + .VCST_T = { 1016, 1}, + .VCST_Q = { 1017, 1}, + .MFV = { 1018, 1}, + .MTV = { 1019, 1}, + .MFVC = { 1020, 1}, + .MTVC = { 1021, 1}, + .BVF = { 1022, 1}, + .BVT = { 1023, 1}, + .BVFL = { 1024, 1}, + .BVTL = { 1025, 1}, } diff --git a/core/rexcode/mips/tables/mips.encode_forms.bin b/core/rexcode/mips/tables/mips.encode_forms.bin index 26e3179b32ebf073fdc34b23ffcba7f0c7e63555..d3e55910b450a1aa517700fea52077c5147abb3c 100644 GIT binary patch delta 6404 zcmeB}&$wa%?11CuTinY;d=@h@GBPqS zGlCTs{AXwQBh0Y`F2=~f02Nyb7h{2oErW}(g2g7+DCo$q1ewPGGEW60_#b58D!7>H z=J^UM`8A7~K(1qAWMJT7V5s^3pWzQbLkU<6EH5eEsF@eNDCRD)HT>^_e_%FavIr*T0ux%AW24o*QNT!-eSXh`rMOBS~ zkAb1Wp5eiNL53P6F$Jht?PNhiVZ}NmnFOdzJ(5_%WJ5z?&IM4J#>t6>!nRFF@(-Xg z&2TXR28K$Atu07m3Q)1u$r}xY72A+x5}-2eNMa3>FM@1^%5+XJ& z3A1PFgwG5lF$JjD%*l?%!iuwyWD=kZSlD(RlKcax%zPv0 zF9)|_JCc~gBCv$;0yhc_cAVXn@MP3rJ$HTy=5sLUUooOGq-XTy+^qtYPv&kgd?Xb9M4Zb7946 zNb;~;bsa9o$G|XI&_b9KX3x#Zjuyg-w~*vv_S{AiYnYs9fyljgCr`8xw!McW53}b! zk{B#ZA0Uar!t~+fhZe$$kC0?wVfq+JtYI>vB_d3pPByd@wta>q4-3=ha4}wZT6lpZ z21^SsCpTIO+rC1Qfu)7lNMbN|zd;g%x%=(piA;~mU z*fW4k_z(A)G(0XCm|^w1G`!qloSbMatjL5U1M(jzH!vfKHB4@_M$~VtlQ&um+p;0a zgWLns!_F)$%)p?c%D^DUpjK_q@c+Lc0|%0rI#i5vGNX;KA{Ua3CRBzSNla_9qKz=8 zHdKapa-fZ{EgzD+E>wme$t4ZYnnVCe3|8+5PF`puY%7E$1FOY^;bKw@pb!N4MFdF< zmTE*Nf3y*{6@$yjFu;5+4i}Sxw_+ra#9%2`a*wzb49;U||>JpGIK`9C3OCKaLkgcFF_MIH)C~WJ8Bx6wl z2`7IfQ(<{F07(oKry#!sPG0CJY#W3m1ByS8OfZtEpjI8o4IxNkAh&|t5IXszqp)ol zl1v5E4dKkfQVa}gyr4!|f-3{K#}t7i_5dmtIoZ)kSTPDoM!_ATIvPpLVRE9AFlPc( zCU){fCt<}nB>4qUnRq0z1Cuv833EPx$|O#H=p?L|gp|)Yq4_)+NsMbUqq8t4H&iBd zvZ1rEVj7Y>FH|NSNsMoDptCS1KU5}ja-*}bViuA-D^w;MNsMjsLT6!4cBoA5{QMA^2AE7ek_in^)eT4{z{DCSC%OvTHX)e+lW9gWfguIrh883f zU}CM4H@XVjwjr4SlW9jXp&=P!LI;uwFtN_bjBdiVT}URtWV)Gocpx#yz`zKN;U1(| zhl%x04s;W??L&%Zm`p#C2~1EECLoyr6Pq}Bp_{PcBqS4HGLw-^5Sx6^O_);vYR=Tj zAKip)ry->{n9Ot}b6{dKkjxQ;nlN*+qr0%}EF=?PGP99PfQijv=7Fbx255}TojlQ9 z*mfQ>4?G3HWacyT@=7!171~RP}mhK0%l-U}77X z`GsIP1}3&~vZAN3?ItAE3?Cu(ZAMZJ6WhWpAOH!;1_p*t5OrH87kUcYZetb_g32_& zWVSO42td+t14F}SNJ+JWSx^un#?Sy0+d285r?BlVW&s8U25AORxz_x-;XkNc+s!Np z6=P_CiS1z)f{Hc3#r94X^b)q+horg2uU?e<}foK zJUui()5sAdvBpmg4UPXr8IDfg=p}4>j9G+-hd~KahUI(!mtn`5MR<9^Vhs!oP_Yxt zB7A&cF@^@1*vZL^-om!0kjf8+Tu2z7Mk+sGVrP)t024bqInZ0!_8gK44Nw!#Bbfjb zyMSZ@Ozh(1h2Fx7mymL;5Hz)3MiLXAe9&8%Qv@n=b@E4VVa01m^5RgL>que}lLdW* zIi;X7Hzzy#2;1I5lJ|nj+-BzC5n+&)Q3R!gOAQSV{);l)Vdmw9h&3=YK*jD(p6DZN zdyko)A1c!Tlev#%0s~a_10)k*Vh<-j^bxjwgk%Ct<}s293Q!ZCAejIYdpgW?RVcSEu0SlzEh)n*Wpt0FQaRI+(2@@kD0|OHy0|O5OL(TvH41f3;O2J~x zObiT{*cfX5vp@JRz)&_>&`{X694-^Y0+Hcos9<6gVPIg^U|^WU1QG+8PzhIe2`mOO zp=xrXp|EW=LIz|X*z6i6VPRng6;(9`J_d#gdxi)91sQ6Q#1x=nb(1$53QxXa$YYoQ z6=^_H)c_T1L=sy76>FNzXe4agj3n~_D$@cN6JTJdgxKARB&GlrYnvQsBs{soh{rGi zD$;?ZssSq2i6piFD%Lf5p^>m{HXWJhCR+sQ~WFn>>hiwVK)o{A&}vwPa)iN?Z{cOcn414$J_6(q!FB8e$L z#b!-@Xe>OL!-U5$0V*;FNmT<>Y%Y@60;t%$$%ZDvlOs%c3?D#679go&sD{|N5J^k{ zDz<2Hqlxh36(BpIB1@1|H9*CdB8e@4iY=Rb(L{Li50ITukrha)U}3xxNemXot0pU& z3QzVhw z5*8L=P*K%kU;yVEhW~;LdyvJd>={5}dy&PeA!7R`Z!{CO-4B;xWB{cjkm>_S_QAsZ zAhNm&hzW-#GnxzA9!8d_gvcC$o4^lG*GG}WV7@&zInZ2qa)mh}Pn|$g1&g(lNMf*9 zJ2iQsx$xu@Af3>Bdpo}6KU$V*p{RKfDnRU|Q3Ub;4UqJ^;SbtD;Bp1J`S;{%63$nKj+VlcaJO@3%0 zJek81VfP&*RWQ5nB8kE5zBk#>Qh0KNB_ba`KvD$@~n_OrmJb4C4C)Cv+kW|6a^G75xSg!pv`Jk1s?PnwzSU&v%P2*Y&oD2mO_6$G% z3o?8~5(DMR5B~)jzD*Xi7PkG4Bm=5R5BwKo_<NCz2Sb%mJD3YjUEsu=}{7U}4WRnbAgg zvW5*J>{*ahflLFXQdT4}SO~IB4zv-rWk-?$xeBD3gIQRZfk8!;fkBQzt=gX9|9?RS zP9!mPs2JDeg*L*IPuTDnYC=VLkW^_w#dwj#w4q{rlRw%B+wvpH=t5-#klX{SeFTxj zV6~6XWJgPOTfjXz$G;(OeB%S zV5wJX@C0uA~@}V#55sd<_rugNx}+F0>c6)n^tKVPH^EXJBAwfVEW&ki=jyYltM~0Bv&^O+IKZY-`NS zC@jLDr>e~$36676-ZDWF1I0P0956)^+fZT8@aMlEgV|(32Vq-tBpFaT0I9Y>5(DL8 zkZMb2VMY-K6@8FRpxh3!$!c<ddRpQ2#Z zpw#S&BnB%<+$IM)3fsCP$$&~qkZKQRVPQrF6;&n%5x5DSNMbM(ye2Pn6t?w7l7X4v z19cb3&!AKW^0P0J7{~-ri2F_c=qPOKk0fJJ0SUDLBvWCzIuJ<=6vH6522FN!61ELS zk^#jgNG1fyR8VUTV^nrVJQX%HC|8yF2R)n-0O-& z5_01SC}lpkj$g zVh^BVNs}9$g(t6Y<}u`imIEnBWdj#fEEP$N8!DDI`J%J%4ZP5Sa#; zOaqb$4N%pMNG8C%NQBokm_ZIc7tgl*fAOn}LBAeqpR z3^Ab-$pn~K*W`t6!nWN=CctERn0a_0F~`8b2#w)hq*#ZE^-cchCT!b}6wff32}mX| zK~0#5WCBcV(qu<>VcW?_CctE-AekTrHDM}}m;h94+T@Au!nV_q(jQD_29l{Tv6)CF z2trMmHTj{tuo;xLjz1~-Q+?~VcYf0yaKQs(*RYyftgPb<_nnEMrM8?SpI>DZJK=0Q`mMhl4^#J z5c{?usfLMdWfl;Cgk%E)!zYNkZIcDPgl)Go3kgAG8elRzm<0qNsk(uo;WMP%+Q}>^ z2oYmwfQjvzoaiNNyPH{nfq_Aq0aVI0e{T2>D&_Vt3qr*h8en33nT4QY4REo2lQ((^ z+wMnF-3B$`0Fr8$*g+(l+M((WO=k2Kwmpob8YXjunGc>G8lY+9D3Vy?r-p{c|Dp`X zCI@;8+a6~Y;o)IWf|O`EAHXHr31$&qUa(jL0|Qj-B(n$~A6Sf`0VZ~8@Ot&hK2|KMH%ig^YTK(8W0LXXfXJ$~3@a9w3>(09E}E z$po0#qsfiF!nTi*On}KeK{7!BYQj?_6JTP`CSUXwwtbFd0!-!wk_iq_6J8>j026yP zSri!yv=7H0tWj6h27Ffe@hFA5qr@E5lIjx2Kz zBJ+cpM}&bv8Wfof2^S!-`IDI!D%JoO`!zYyU)c6HGe1nG0jBy7Gb0ZJ0~4sQU`X(2 zU;w3uzer*apkn_fZ}bZmcfbSG(iCN2U=fjGU{D6PQ5ifL7#{x@Wn@GW VV}yz^O=b)b7GXw`VTQ;s0{{R$Fi`*i diff --git a/core/rexcode/mips/tables/mips.encode_runs.bin b/core/rexcode/mips/tables/mips.encode_runs.bin index 349789f99751494d54991d736db2b3f354bbdf5a..edf66744d434b487f0dc839ae44e19b0d36390d7 100644 GIT binary patch delta 97 zcmZ4BFvDTP8J5j=SR6Pw85tND7BVt0Fm4Xzb!XeWM7V~>;TJOl14#Tgl>P&y|3c}1 PQ2IZVW?+G+XN1xK58V%A delta 92 zcmbQ?u)tx%85T|k1_p*1AY$`T7IzLy5NiP=h-6^EMuVglGBPlL=tUrcfq?-`Zx-cs NXJcg894g$*0|2fd4H*Cc diff --git a/core/rexcode/mips/tables/mips.entries.bin b/core/rexcode/mips/tables/mips.entries.bin index c8d5ea2ed98fd09ff757bfb13b4bd9b23ffe1894..204bb061ecac9c79176bdfc82121ea9fefd7cf2a 100644 GIT binary patch delta 6198 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

T;r#PhQ|M*467$M`U=~wVHOk=gpGxMfQ$vM zWfl?=0*f^?FhIrDG4l$*MtmEfV(TYg^cA+i5!7$tSR#UP0}K*eGwKNJ<7 z%pt~O*Z>uYM^d!_DwcpGb^t1txY@FD%t&I)P_aMEj64hsOwu6NCwMe4Joqol@OSb?32V`R%#0!o3`~k383zxL$3z+a zZ)TL#XJV|GY$z>kTg%ML%gZ1wBg@dhz>v_;(C}ZBp^ll4j}I)y&;S#wXXfYU2a7ep z#Tq6zN(#9Lg*7{oO-P2gp$pjrs95)8UKwl67G@qE z9dCNr0r2kz$vs0s6!dEkDAiOrvUP)68x0W&Wz z#J&awhE#}s3z_-&AYu#+FtJ6<{QMBH2DsSb$%3-NnoE$(W=MmWu#}kx5uQ-7Ba?k) ztu>D`i}3I;D9Olz;wioBdbUaSb~|6fk71{!7l%YlV$S+6&_|$4rXCt z1_l*X1_n6>wQ5jK6=dL?yir|v@(pz!Lk*}1H60Bbg(qid@)+_#MKY08 z@k7P3ki=M^V%d`?Y6?%@p~+*&1{KLgQpFAxvtbry6k$-&*JhApu&A_W`1fCs!C~@4 zO<`MqW?^9w1{GDXOa(+H97(JKDrU;eC@jLD2UfSC!k*#Je?bO|$%b0Ow$?~y8&pDM z?2$|;fQtDci5Wmm2%FrfC2aeJ3E~DV22O^83VVhh{{38ft_O)VAc=w82oh_YoTwu_xkHD?5adFTNHdZu zP-ue0THs;=3?Ns7#9AkB)DfP117v5VJ-Fg+M^Xg}Uy!N}B(Vmly3Wary26t+ba@O9 zKt;NdR6T%-^}xjh;r{HM9H=Wixk4A=&weCTFn>-!5`+13;^c+8!jn&c?5u#eb~2JG zm_Mh$#f0E?PM!QwS9r379>UJ)NUC6V&Oj1lsDjuqbF!nJ@Z=1TPN>LiBvlDeu{lU$ z4N$SUlPBs4Pu`)&V|V~6G9O9R1E|;nBr%3+h@A^3KhzVR%%RU?=l~U2jHD_7Dz*ek ztN|*vbh4qo@Z<=69>W7rk>yCL9zexbAc?`kcID(oec{O~KsupeyBbLqENs^xiNVs) z+Q}F7g(v?2xfUAh>ycE!($EIDm@tC^)P{|d6%B+Zdl>K-!eU@ElBxwzRa=n6VCj47 z%sodY3mOVf zwlL%|g!$tbTope9%%0;&VldyGn4D-RJh=m;6B<&dkW@K9#ZDuM!9wrMD{i zqlxh36(&4}u=Mx|Nfj(De?}66<=t;0<=UEfs08o!0Z&AENCV?*}@EAr#M`d3?k6HMnZM&AFE1jEp6lTdm?*Y)hFyT{dPW28K&)3^o7RAN&_!D1(ay zF+s%m8Ojl2EHJUk$%^*En$>WbOAHVh0fs6j(3k_W4gg!r zx~VhfO%8Muw#{ee4oO2{5qfeC8DBqS4HVv~_ffQe0+?C36RJC&J- z2jV&g1_7uE(~wMsiA_f`6(%-g@>!nMag?fr$gG`aS~#Xr!`w zvaU}#W69*DKINjjnFSaa7(ip74Ghhn8~%gJlRc9SeT8lJG7G_E8elT}kW{xpRqtmO zgsNj`fQcQL+~_N8dk{%=J5=={B-Jpn!$>y4#CA-+=qqfylUYy@T23@He1?>EyO@Q9 zAYu)0v7<=io{gUx8XEtLGOU@b=qGHumRV3x5HjxB!0-Vws<)0=NJt1Q)&Lh<&&(?T z8_{ims@pKR&`;QQBQw7cYz!ABvk9)6fdMAAnVC-zKK}a=V$+t%2mOR?w=xR|K*u;4 z7(PK{wlNC|Lc|yvU}D>ug@hnt4REnzlLh_NMJwRxfQfg*3d~@k|Dp_ECNl=80|286BS`=N diff --git a/core/rexcode/mips/tables/mips.idx_cop1.bin b/core/rexcode/mips/tables/mips.idx_cop1.bin index 3c90ce8bb77a2758dc5310b8fe486ee4e59cc9f1..3be582251764c4e5298b5e8bbf1739ed0dc5743b 100644 GIT binary patch literal 128 zcmeBXU}WfFU}WfJU}WfHU}WfLU}TuUz{oI>fstVn10%y^1{Q|t42%pQFat`@gwnGZ z7#U_WXfYgR&;m(=@p}dqhR+O43||=(zFH2<1_L9*Oa?86!wgy=X)u1vz{2p6 Wfr;TWg94Z@%*e?*Yn30hogpq|If{}$GhLMjUi;7n?fRT|Qkdcugh>?XMjFE*Qijj{YgOQ)1oRN{C zf{~Y@l`)s$6C)$TXU1m?H<@}F(wG?;(wP| b&rtRkMn;COP&TrLZ&0!CjEoFF7?~IVP0kln literal 256 zcmZo=WMpV#WMpV(WMlw=4n`)1E+`ws?`D)_Si&d;Vq(Sn7#SJ%Gcqz9U}R)Ch@=mu z_z)u_!(m27h9iuO3`eoZA7f-jHisO46l&X czlO5kFfuZ{g|d