/*
* Source file for nanoMIPS disassembler component of QEMU
*
- * Copyright (C) 2018 Wave Computing
+ * Copyright (C) 2018 Wave Computing, Inc.
* Copyright (C) 2018 Matthew Fortune <matthew.fortune@mips.com>
- * Copyright (C) 2018 Aleksandar Markovic <aleksandar.markovic@wavecomp.com>
+ * Copyright (C) 2018 Aleksandar Markovic <amarkovic@wavecomp.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
+ * the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
*/
extern "C" {
std::string to_string(img::address a)
{
char buffer[256];
- sprintf(buffer, "0x%08llx", a);
+ sprintf(buffer, "0x%" PRIx64, a);
return buffer;
}
}
throw std::runtime_error(img::format(
- "Invalid register mapping index %d, size of list = %d",
+ "Invalid register mapping index %" PRIu64
+ ", size of list = %zu",
index, register_list_size));
}
/*
- * these functions should be decode functions but the json does not have
- * decode sections so they are based on the encode, the equivalent decode
- * functions need writing eventually.
- */
-uint64 NMD::encode_gpr3(uint64 d)
+ * NMD::decode_gpr_gpr3() - decoder for 'gpr3' gpr encoding type
+ *
+ * Map a 3-bit code to the 5-bit register space according to this pattern:
+ *
+ * 7 6 5 4 3 2 1 0
+ * | | | | | | | |
+ * | | | | | | | |
+ * | | | └-----------------------┐
+ * | | └-----------------------┐ |
+ * | └-----------------------┐ | |
+ * └-----------------------┐ | | |
+ * | | | | | | | |
+ * ┌-------┘ | | | | | | |
+ * | ┌-------┘ | | | | | |
+ * | | ┌-------┘ | | | | |
+ * | | | ┌-------┘ | | | |
+ * | | | | | | | |
+ * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+ * 3 2 1 0
+ *
+ * Used in handling following instructions:
+ *
+ * - ADDIU[R1.SP]
+ * - ADDIU[R2]
+ * - ADDU[16]
+ * - AND[16]
+ * - ANDI[16]
+ * - BEQC[16]
+ * - BEQZC[16]
+ * - BNEC[16]
+ * - BNEZC[16]
+ * - LB[16]
+ * - LBU[16]
+ * - LH[16]
+ * - LHU[16]
+ * - LI[16]
+ * - LW[16]
+ * - LW[GP16]
+ * - LWXS[16]
+ * - NOT[16]
+ * - OR[16]
+ * - SB[16]
+ * - SH[16]
+ * - SLL[16]
+ * - SRL[16]
+ * - SUBU[16]
+ * - SW[16]
+ * - XOR[16]
+ */
+uint64 NMD::decode_gpr_gpr3(uint64 d)
{
static uint64 register_list[] = { 16, 17, 18, 19, 4, 5, 6, 7 };
return renumber_registers(d, register_list,
}
-uint64 NMD::encode_gpr3_store(uint64 d)
+/*
+ * NMD::decode_gpr_gpr3_src_store() - decoder for 'gpr3.src.store' gpr encoding
+ * type
+ *
+ * Map a 3-bit code to the 5-bit register space according to this pattern:
+ *
+ * 7 6 5 4 3 2 1 0
+ * | | | | | | | |
+ * | | | | | | | └-----------------------┐
+ * | | | └-----------------------┐ |
+ * | | └-----------------------┐ | |
+ * | └-----------------------┐ | | |
+ * └-----------------------┐ | | | |
+ * | | | | | | | |
+ * ┌-------┘ | | | | | | |
+ * | ┌-------┘ | | | | | |
+ * | | ┌-------┘ | | | | |
+ * | | | | | | | |
+ * | | | | | | | |
+ * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+ * 3 2 1 0
+ *
+ * This pattern is the same one used for 'gpr3' gpr encoding type, except for
+ * the input value 0, that is mapped to the output value 0 instead of 16.
+ *
+ * Used in handling following instructions:
+ *
+ * - SB[16]
+ * - SH[16]
+ * - SW[16]
+ * - SW[GP16]
+ */
+uint64 NMD::decode_gpr_gpr3_src_store(uint64 d)
{
static uint64 register_list[] = { 0, 17, 18, 19, 4, 5, 6, 7 };
return renumber_registers(d, register_list,
}
-uint64 NMD::encode_gpr4(uint64 d)
+/*
+ * NMD::decode_gpr_gpr4() - decoder for 'gpr4' gpr encoding type
+ *
+ * Map a 4-bit code to the 5-bit register space according to this pattern:
+ *
+ * 1 0
+ * 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+ * | | | | | | | | | | | | | | | |
+ * | | | | | | | | | | | | | | | |
+ * | | | | | | | | | | | └---------------┐
+ * | | | | | | | | | | └---------------┐ |
+ * | | | | | | | | | └---------------┐ | |
+ * | | | | | | | | └---------------┐ | | |
+ * | | | | | | | | | | | | | | | |
+ * | | | | | | | | | | | | | | | |
+ * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+ * 3 2 1 0
+ *
+ * Used in handling following instructions:
+ *
+ * - ADDU[4X4]
+ * - LW[4X4]
+ * - MOVEP[REV]
+ * - MUL[4X4]
+ * - SW[4X4]
+ */
+uint64 NMD::decode_gpr_gpr4(uint64 d)
{
static uint64 register_list[] = { 8, 9, 10, 11, 4, 5, 6, 7,
16, 17, 18, 19, 20, 21, 22, 23 };
/* strange wrapper around gpr3 */
uint64 NMD::encode_rs3_and_check_rs3_ge_rt3(uint64 d)
{
-return encode_gpr3(d);
+return decode_gpr_gpr3(d);
}
/* strange wrapper around gpr3 */
uint64 NMD::encode_rs3_and_check_rs3_lt_rt3(uint64 d)
{
- return encode_gpr3(d);
+ return decode_gpr_gpr3(d);
}
return gpr_reg[reg];
}
- throw std::runtime_error(img::format("Invalid GPR register index %d", reg));
+ throw std::runtime_error(img::format("Invalid GPR register index %" PRIu64,
+ reg));
}
return fpr_reg[reg];
}
- throw std::runtime_error(img::format("Invalid FPR register index %d", reg));
+ throw std::runtime_error(img::format("Invalid FPR register index %" PRIu64,
+ reg));
}
return ac_reg[reg];
}
- throw std::runtime_error(img::format("Invalid AC register index %d", reg));
+ throw std::runtime_error(img::format("Invalid AC register index %" PRIu64,
+ reg));
}
std::string NMD::IMMEDIATE(uint64 value)
{
- return img::format("0x%x", value);
+ return img::format("0x%" PRIx64, value);
}
std::string NMD::IMMEDIATE(int64 value)
{
- return img::format("%d", value);
+ return img::format("%" PRId64, value);
}
std::string NMD::CPR(uint64 reg)
{
/* needs more work */
- return img::format("CP%d", reg);
+ return img::format("CP%" PRIu64, reg);
}
}
-uint64 NMD::extr_uil3il3bs9Fmsb11(uint64 instruction)
+uint64 NMD::extract_u_11_10_9_8_7_6_5_4_3__s3(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 9) << 3;
}
-uint64 NMD::extr_uil1il1bs17Fmsb17(uint64 instruction)
+uint64 NMD::extract_u_17_to_1__s1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 1, 17) << 1;
}
-int64 NMD::extr_sil11il0bs10Tmsb9(uint64 instruction)
+int64 NMD::extract_s__se9_20_19_18_17_16_15_14_13_12_11(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 11, 10);
}
-int64 NMD::extr_sil0il11bs1_il1il1bs10Tmsb11(uint64 instruction)
+int64 NMD::extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 11;
}
-uint64 NMD::extr_shiftxil7il1bs4Fmsb4(uint64 instruction)
+uint64 NMD::extract_shiftx_10_9_8_7__s1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 7, 4) << 1;
}
-int64 NMD::extr_sil0il31bs1_il2il21bs10_il12il12bs9Tmsb31(uint64 instruction)
+int64 NMD::extract_s__se31_0_11_to_2_20_to_12_s12(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 31;
}
-int64 NMD::extr_sil0il7bs1_il1il1bs6Tmsb7(uint64 instruction)
+int64 NMD::extract_s__se7_0_6_5_4_3_2_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 7;
}
-uint64 NMD::extr_uil1il1bs2Fmsb2(uint64 instruction)
+uint64 NMD::extract_u_2_1__s1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 1, 2) << 1;
}
-uint64 NMD::extr_xil17il0bs1Fmsb0(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 17, 1);
- return value;
-}
-
-
-uint64 NMD::extr_xil2il0bs1_il15il0bs1Fmsb0(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 2, 1);
- value |= extract_bits(instruction, 15, 1);
- return value;
-}
-
-
uint64 NMD::extract_ac_13_12(uint64 instruction)
{
uint64 value = 0;
}
-int64 NMD::extr_sil0il10bs1_il1il1bs9Tmsb10(uint64 instruction)
+int64 NMD::extract_s__se10_0_9_8_7_6_5_4_3_2_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 10;
}
-uint64 NMD::extr_xil10il0bs6Fmsb5(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 10, 6);
- return value;
-}
-
-
uint64 NMD::extract_count_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_xil10il0bs4_il22il0bs4Fmsb3(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 10, 4);
- value |= extract_bits(instruction, 22, 4);
- return value;
-}
-
-
uint64 NMD::extract_u_11_10_9_8_7_6_5_4_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_uil3il3bs18Fmsb20(uint64 instruction)
+uint64 NMD::extract_u_20_to_3__s3(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 18) << 3;
}
-uint64 NMD::extr_xil12il0bs1Fmsb0(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 12, 1);
- return value;
-}
-
-
-uint64 NMD::extr_uil0il2bs4Fmsb5(uint64 instruction)
+uint64 NMD::extract_u_3_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 4) << 2;
}
-uint64 NMD::extr_uil0il2bs3Fmsb4(uint64 instruction)
+uint64 NMD::extract_u_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 3) << 2;
}
-uint64 NMD::extr_xil10il0bs1Fmsb0(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 10, 1);
- return value;
-}
-
-
uint64 NMD::extract_rd3_3_2_1(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_xil21il0bs5Fmsb4(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 21, 5);
- return value;
-}
-
-
-uint64 NMD::extr_xil9il0bs3Fmsb2(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 9, 3);
- return value;
-}
-
-
uint64 NMD::extract_u_17_to_0(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_xil14il0bs1_il15il0bs1Fmsb0(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 14, 1);
- value |= extract_bits(instruction, 15, 1);
- return value;
-}
-
-
uint64 NMD::extract_rsz4_4_2_1_0(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_xil24il0bs1Fmsb0(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 24, 1);
- return value;
-}
-
-
-int64 NMD::extr_sil0il21bs1_il1il1bs20Tmsb21(uint64 instruction)
+int64 NMD::extract_s__se21_0_20_to_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 21;
}
-int64 NMD::extract_shift_21_20_19_18_17_16(uint64 instruction)
+int64 NMD::extract_shift__se5_21_20_19_18_17_16(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 16, 6);
}
-uint64 NMD::extr_xil6il0bs3_il10il0bs1Fmsb2(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 6, 3);
- value |= extract_bits(instruction, 10, 1);
- return value;
-}
-
-
uint64 NMD::extract_rd2_3_8(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_xil16il0bs5Fmsb4(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 16, 5);
- return value;
-}
-
-
uint64 NMD::extract_code_17_to_0(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_xil0il0bs12Fmsb11(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 0, 12);
- return value;
-}
-
-
uint64 NMD::extract_size_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
}
-int64 NMD::extr_sil2il2bs6_il15il8bs1Tmsb8(uint64 instruction)
+int64 NMD::extract_s__se8_15_7_6_5_4_3_2_s2(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 2, 6) << 2;
}
-uint64 NMD::extract_fs_15_14_13_12_11(uint64 instruction)
+uint64 NMD::extract_fs_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
}
-int64 NMD::extr_sil0il0bs8_il15il8bs1Tmsb8(uint64 instruction)
+int64 NMD::extract_s__se8_15_7_6_5_4_3_2_1_0(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 8);
}
-uint64 NMD::extr_xil10il0bs1_il14il0bs2Fmsb1(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 10, 1);
- value |= extract_bits(instruction, 14, 2);
- return value;
-}
-
-
uint64 NMD::extract_sel_13_12_11(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_xil14il0bs2Fmsb1(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 14, 2);
- return value;
-}
-
-
uint64 NMD::extract_gp_2(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extract_ft_20_19_18_17_16(uint64 instruction)
+uint64 NMD::extract_ft_25_24_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 5);
}
-uint64 NMD::extr_xil16il0bs10Fmsb9(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 16, 10);
- return value;
-}
-
-
uint64 NMD::extract_rt4_9_7_6_5(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_uil0il2bs6Fmsb7(uint64 instruction)
+uint64 NMD::extract_u_5_4_3_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 6) << 2;
}
-uint64 NMD::extr_xil17il0bs9Fmsb8(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 17, 9);
- return value;
-}
-
-
uint64 NMD::extract_sa_15_14_13(uint64 instruction)
{
uint64 value = 0;
}
-int64 NMD::extr_sil0il14bs1_il1il1bs13Tmsb14(uint64 instruction)
+int64 NMD::extract_s__se14_0_13_to_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 14;
}
-uint64 NMD::extr_uil0il32bs32Fmsb63(uint64 instruction)
+uint64 NMD::extract_u_31_to_0__s32(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 32) << 32;
}
-uint64 NMD::extr_uil0il2bs7Fmsb8(uint64 instruction)
+uint64 NMD::extract_u_6_5_4_3_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 7) << 2;
}
-uint64 NMD::extr_xil10il0bs1_il11il0bs5Fmsb4(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 10, 1);
- value |= extract_bits(instruction, 11, 5);
- return value;
-}
-
-
uint64 NMD::extract_mask_20_19_18_17_16_15_14(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_uil4il4bs4Fmsb7(uint64 instruction)
+uint64 NMD::extract_u_7_6_5_4__s4(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 4, 4) << 4;
}
-int64 NMD::extr_sil3il3bs5_il15il8bs1Tmsb8(uint64 instruction)
+int64 NMD::extract_s__se8_15_7_6_5_4_3_s3(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 3, 5) << 3;
}
-int64 NMD::extr_sil0il16bs16_il16il0bs16Tmsb31(uint64 instruction)
+int64 NMD::extract_s__se31_15_to_0_31_to_16(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 16) << 16;
}
-uint64 NMD::extr_xil15il0bs1Fmsb0(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 15, 1);
- return value;
-}
-
-
-uint64 NMD::extr_xil11il0bs5Fmsb4(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 11, 5);
- return value;
-}
-
-
-uint64 NMD::extr_uil2il2bs16Fmsb17(uint64 instruction)
+uint64 NMD::extract_u_17_to_2__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 2, 16) << 2;
}
-uint64 NMD::extract_rd_20_19_18_17_16(uint64 instruction)
+uint64 NMD::extract_rd_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 5);
}
-int64 NMD::extr_sil0il25bs1_il1il1bs24Tmsb25(uint64 instruction)
+int64 NMD::extract_s__se25_0_24_to_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 25;
}
-uint64 NMD::extr_xil0il0bs3_il4il0bs1Fmsb2(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 0, 3);
- value |= extract_bits(instruction, 4, 1);
- return value;
-}
-
-
uint64 NMD::extract_u_1_0(uint64 instruction)
{
uint64 value = 0;
}
-uint64 NMD::extr_uil3il3bs1_il8il2bs1Fmsb3(uint64 instruction)
+uint64 NMD::extract_u_3_8__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 1) << 3;
}
-uint64 NMD::extr_xil9il0bs3_il16il0bs5Fmsb4(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 9, 3);
- value |= extract_bits(instruction, 16, 5);
- return value;
-}
-
-
-uint64 NMD::extract_fd_10_9_8_7_6(uint64 instruction)
+uint64 NMD::extract_fd_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 5);
}
-uint64 NMD::extr_xil6il0bs3Fmsb2(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 6, 3);
- return value;
-}
-
-
-uint64 NMD::extr_uil0il2bs5Fmsb6(uint64 instruction)
+uint64 NMD::extract_u_4_3_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 5) << 2;
}
-uint64 NMD::extr_xil11il0bs1Fmsb0(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 11, 1);
- return value;
-}
-
-
-uint64 NMD::extr_uil2il2bs19Fmsb20(uint64 instruction)
+uint64 NMD::extract_u_20_to_2__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 2, 19) << 2;
}
-int64 NMD::extract_s_4_2_1_0(uint64 instruction)
+int64 NMD::extract_s__se3_4_2_1_0(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 3);
}
-uint64 NMD::extr_uil0il1bs4Fmsb4(uint64 instruction)
+uint64 NMD::extract_u_3_2_1_0__s1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 4) << 1;
}
-uint64 NMD::extr_xil9il0bs2Fmsb1(uint64 instruction)
-{
- uint64 value = 0;
- value |= extract_bits(instruction, 9, 2);
- return value;
-}
-
-
bool NMD::ADDIU_32__cond(uint64 instruction)
{
{
uint64 rs3 = extract_rs3_6_5_4(instruction);
uint64 rt3 = extract_rt3_9_8_7(instruction);
- uint64 u = extr_uil0il1bs4Fmsb4(instruction);
+ uint64 u = extract_u_3_2_1_0__s1(instruction);
return rs3 < rt3 && u != 0;
}
{
uint64 rs3 = extract_rs3_6_5_4(instruction);
uint64 rt3 = extract_rt3_9_8_7(instruction);
- uint64 u = extr_uil0il1bs4Fmsb4(instruction);
+ uint64 u = extract_u_3_2_1_0__s1(instruction);
return rs3 >= rt3 && u != 0;
}
bool NMD::P16_BR1_cond(uint64 instruction)
{
- uint64 u = extr_uil0il1bs4Fmsb4(instruction);
+ uint64 u = extract_u_3_2_1_0__s1(instruction);
return u != 0;
}
bool NMD::SLTU_cond(uint64 instruction)
{
- uint64 rd = extract_rd_20_19_18_17_16(instruction);
+ uint64 rd = extract_rd_15_14_13_12_11(instruction);
return rd != 0;
}
*/
std::string NMD::ABS_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 fd_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string fs = FPR(copy(fs_value));
std::string fd = FPR(copy(fd_value));
*/
std::string NMD::ABS_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 fd_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string fs = FPR(copy(fs_value));
std::string fd = FPR(copy(fd_value));
std::string NMD::ACLR(uint64 instruction)
{
uint64 bit_value = extract_bit_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string bit = IMMEDIATE(copy(bit_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::ADD(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::ADD_D(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::ADD_S(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::ADDIU_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_15_to_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_15_to_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDIU_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::ADDIU_GP48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::ADDIU_GP_W_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil2il2bs19Fmsb20(instruction);
+ uint64 u_value = extract_u_20_to_2__s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::ADDIU_NEG_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::ADDIU_R1_SP_(uint64 instruction)
{
- uint64 u_value = extr_uil0il2bs6Fmsb7(instruction);
+ uint64 u_value = extract_u_5_4_3_2_1_0__s2(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = IMMEDIATE(copy(u_value));
return img::format("ADDIU %s, $%d, %s", rt3, 29, u);
*/
std::string NMD::ADDIU_R2_(uint64 instruction)
{
- uint64 u_value = extr_uil0il2bs3Fmsb4(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_2_1_0__s2(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
std::string u = IMMEDIATE(copy(u_value));
return img::format("ADDIU %s, %s, %s", rt3, rs3, u);
std::string NMD::ADDIU_RS5_(uint64 instruction)
{
uint64 rt_value = extract_rt_9_8_7_6_5(instruction);
- int64 s_value = extract_s_4_2_1_0(instruction);
+ int64 s_value = extract_s__se3_4_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::ADDIUPC_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il21bs1_il1il1bs20Tmsb21(instruction);
+ int64 s_value = extract_s__se21_0_20_to_1_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
std::string NMD::ADDIUPC_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 6);
std::string NMD::ADDQ_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDQ_S_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDQ_S_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDQH_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDQH_R_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDQH_R_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDQH_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDSC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
uint64 rs3_value = extract_rs3_6_5_4(instruction);
uint64 rd3_value = extract_rd3_3_2_1(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
- std::string rd3 = GPR(encode_gpr3(rd3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
+ std::string rd3 = GPR(decode_gpr_gpr3(rd3_value));
return img::format("ADDU %s, %s, %s", rd3, rs3, rt3);
}
std::string NMD::ADDU_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::ADDU_4X4_(uint64 instruction)
{
- uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
uint64 rt4_value = extract_rt4_9_7_6_5(instruction);
+ uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
- std::string rs4 = GPR(encode_gpr4(rs4_value));
- std::string rt4 = GPR(encode_gpr4(rt4_value));
+ std::string rs4 = GPR(decode_gpr_gpr4(rs4_value));
+ std::string rt4 = GPR(decode_gpr_gpr4(rt4_value));
return img::format("ADDU %s, %s", rs4, rt4);
}
std::string NMD::ADDU_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDU_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDU_S_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDU_S_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDUH_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDUH_R_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ADDWC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ALUIPC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il31bs1_il2il21bs10_il12il12bs9Tmsb31(instruction);
+ int64 s_value = extract_s__se31_0_11_to_2_20_to_12_s12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("AND %s, %s", rs3, rt3);
}
std::string NMD::AND_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
uint64 rs3_value = extract_rs3_6_5_4(instruction);
uint64 eu_value = extract_eu_3_2_1_0(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
std::string eu = IMMEDIATE(encode_eu_from_u_andi16(eu_value));
return img::format("ANDI %s, %s, %s", rt3, rs3, eu);
std::string NMD::ANDI_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::APPEND(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ASET(uint64 instruction)
{
uint64 bit_value = extract_bit_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string bit = IMMEDIATE(copy(bit_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::BALC_16_(uint64 instruction)
{
- int64 s_value = extr_sil0il10bs1_il1il1bs9Tmsb10(instruction);
+ int64 s_value = extract_s__se10_0_9_8_7_6_5_4_3_2_1_s1(instruction);
std::string s = ADDRESS(encode_s_from_address(s_value), 2);
*/
std::string NMD::BALC_32_(uint64 instruction)
{
- int64 s_value = extr_sil0il25bs1_il1il1bs24Tmsb25(instruction);
+ int64 s_value = extract_s__se25_0_24_to_1_s1(instruction);
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
uint64 bit_value = extract_bit_16_15_14_13_12_11(instruction);
- int64 s_value = extr_sil0il11bs1_il1il1bs10Tmsb11(instruction);
+ int64 s_value = extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string bit = IMMEDIATE(copy(bit_value));
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
uint64 bit_value = extract_bit_16_15_14_13_12_11(instruction);
- int64 s_value = extr_sil0il11bs1_il1il1bs10Tmsb11(instruction);
+ int64 s_value = extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string bit = IMMEDIATE(copy(bit_value));
*/
std::string NMD::BC_16_(uint64 instruction)
{
- int64 s_value = extr_sil0il10bs1_il1il1bs9Tmsb10(instruction);
+ int64 s_value = extract_s__se10_0_9_8_7_6_5_4_3_2_1_s1(instruction);
std::string s = ADDRESS(encode_s_from_address(s_value), 2);
*/
std::string NMD::BC_32_(uint64 instruction)
{
- int64 s_value = extr_sil0il25bs1_il1il1bs24Tmsb25(instruction);
+ int64 s_value = extract_s__se25_0_24_to_1_s1(instruction);
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
*/
std::string NMD::BC1EQZC(uint64 instruction)
{
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string ft = FPR(copy(ft_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
*/
std::string NMD::BC1NEZC(uint64 instruction)
{
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string ft = FPR(copy(ft_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
*/
std::string NMD::BC2EQZC(uint64 instruction)
{
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
uint64 ct_value = extract_ct_25_24_23_22_21(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string ct = CPR(copy(ct_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
*/
std::string NMD::BC2NEZC(uint64 instruction)
{
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
uint64 ct_value = extract_ct_25_24_23_22_21(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string ct = CPR(copy(ct_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
*/
std::string NMD::BEQC_16_(uint64 instruction)
{
- uint64 u_value = extr_uil0il1bs4Fmsb4(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_3_2_1_0__s1(instruction);
std::string rs3 = GPR(encode_rs3_and_check_rs3_lt_rt3(rs3_value));
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = ADDRESS(encode_u_from_address(u_value), 2);
return img::format("BEQC %s, %s, %s", rs3, rt3, u);
std::string NMD::BEQC_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string rs = GPR(copy(rs_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::BEQIC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il11bs1_il1il1bs10Tmsb11(instruction);
uint64 u_value = extract_u_17_16_15_14_13_12_11(instruction);
+ int64 s_value = extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::BEQZC_16_(uint64 instruction)
{
- int64 s_value = extr_sil0il7bs1_il1il1bs6Tmsb7(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
+ int64 s_value = extract_s__se7_0_6_5_4_3_2_1_s1(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 2);
return img::format("BEQZC %s, %s", rt3, s);
std::string NMD::BGEC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string rs = GPR(copy(rs_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::BGEIC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il11bs1_il1il1bs10Tmsb11(instruction);
uint64 u_value = extract_u_17_16_15_14_13_12_11(instruction);
+ int64 s_value = extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::BGEIUC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il11bs1_il1il1bs10Tmsb11(instruction);
uint64 u_value = extract_u_17_16_15_14_13_12_11(instruction);
+ int64 s_value = extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::BGEUC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string rs = GPR(copy(rs_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::BLTC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string rs = GPR(copy(rs_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::BLTIC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il11bs1_il1il1bs10Tmsb11(instruction);
uint64 u_value = extract_u_17_16_15_14_13_12_11(instruction);
+ int64 s_value = extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::BLTIUC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il11bs1_il1il1bs10Tmsb11(instruction);
uint64 u_value = extract_u_17_16_15_14_13_12_11(instruction);
+ int64 s_value = extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::BLTUC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string rs = GPR(copy(rs_value));
std::string rt = GPR(copy(rt_value));
*/
std::string NMD::BNEC_16_(uint64 instruction)
{
- uint64 u_value = extr_uil0il1bs4Fmsb4(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_3_2_1_0__s1(instruction);
std::string rs3 = GPR(encode_rs3_and_check_rs3_ge_rt3(rs3_value));
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = ADDRESS(encode_u_from_address(u_value), 2);
return img::format("BNEC %s, %s, %s", rs3, rt3, u);
std::string NMD::BNEC_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string rs = GPR(copy(rs_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::BNEIC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il11bs1_il1il1bs10Tmsb11(instruction);
uint64 u_value = extract_u_17_16_15_14_13_12_11(instruction);
+ int64 s_value = extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::BNEZC_16_(uint64 instruction)
{
- int64 s_value = extr_sil0il7bs1_il1il1bs6Tmsb7(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
+ int64 s_value = extract_s__se7_0_6_5_4_3_2_1_s1(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 2);
return img::format("BNEZC %s, %s", rt3, s);
*/
std::string NMD::BPOSGE32C(uint64 instruction)
{
- int64 s_value = extr_sil0il14bs1_il1il1bs13Tmsb14(instruction);
+ int64 s_value = extract_s__se14_0_13_to_1_s1(instruction);
std::string s = ADDRESS(encode_s_from_address(s_value), 4);
*/
std::string NMD::CACHE(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 op_value = extract_op_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string op = IMMEDIATE(copy(op_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::CACHEE(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 op_value = extract_op_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string op = IMMEDIATE(copy(op_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::CEIL_L_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CEIL_L_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CEIL_W_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CEIL_W_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CFC1(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
*/
std::string NMD::CFC2(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
*/
std::string NMD::CLASS_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CLASS_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_AF_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_AF_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_EQ_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_EQ_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_LE_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_LE_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_LT_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_LT_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_NE_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_NE_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_OR_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_OR_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SAF_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SAF_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SEQ_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SEQ_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SLE_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SLE_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SLT_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SLT_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SNE_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SNE_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SOR_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SOR_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SUEQ_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SUEQ_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SULE_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SULE_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SULT_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SULT_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SUN_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SUNE_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SUNE_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_SUN_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_UEQ_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_UEQ_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_ULE_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_ULE_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_ULT_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_ULT_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_UN_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_UNE_D(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_UNE_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CMP_UN_S(uint64 instruction)
{
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::CMPGDU_EQ_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::CMPGDU_LE_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::CMPGDU_LT_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::CMPGU_EQ_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::CMPGU_LE_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::CMPGU_LT_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::CTC1(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
*/
std::string NMD::CTC2(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
*/
std::string NMD::CVT_D_L(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_D_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_D_W(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_L_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_L_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_S_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_S_L(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_S_PL(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_S_PU(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_S_W(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_W_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::CVT_W_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::DADDIU_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::DADDIU_NEG_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DADDIU_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DADD(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DADDU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DDIV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DDIVU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DEXTM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
uint64 msbd_value = extract_msbt_10_9_8_7_6(instruction);
uint64 lsb_value = extract_lsb_4_3_2_1_0(instruction);
- uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DEXT(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
uint64 msbd_value = extract_msbt_10_9_8_7_6(instruction);
uint64 lsb_value = extract_lsb_4_3_2_1_0(instruction);
- uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DEXTU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
uint64 msbd_value = extract_msbt_10_9_8_7_6(instruction);
uint64 lsb_value = extract_lsb_4_3_2_1_0(instruction);
- uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DINSM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
uint64 msbd_value = extract_msbt_10_9_8_7_6(instruction);
uint64 lsb_value = extract_lsb_4_3_2_1_0(instruction);
- uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DINS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
uint64 msbd_value = extract_msbt_10_9_8_7_6(instruction);
uint64 lsb_value = extract_lsb_4_3_2_1_0(instruction);
- uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DINSU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
uint64 msbd_value = extract_msbt_10_9_8_7_6(instruction);
uint64 lsb_value = extract_lsb_4_3_2_1_0(instruction);
- uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DIV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::DIV_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::DIV_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::DIVU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DLSA(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
- uint64 u2_value = extract_u2_10_9(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
+ uint64 u2_value = extract_u2_10_9(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DLUI_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- uint64 u_value = extr_uil0il32bs32Fmsb63(instruction);
+ uint64 u_value = extract_u_31_to_0__s32(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::DMFC1(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::DMFC2(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
std::string NMD::DMOD(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DMODU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DMTC1(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::DMTC2(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
std::string NMD::DMUH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DMUHU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DMUL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DMULU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPA_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPAQ_SA_L_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPAQ_S_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPAQX_SA_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPAQX_S_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPAU_H_QBL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPAU_H_QBR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPAX_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPS_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPSQ_SA_L_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPSQ_S_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPSQX_SA_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPSQX_S_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPSU_H_QBL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPSU_H_QBR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DPSX_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DROTR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DROTR32(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DROTRV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DROTX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_5_4_3_2_1_0(instruction);
- uint64 shiftx_value = extract_shiftx_11_10_9_8_7_6(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shiftx_value = extract_shiftx_11_10_9_8_7_6(instruction);
+ uint64 shift_value = extract_shift_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSLL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSLL32(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSLLV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSRA(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSRA32(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSRAV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSRL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSRL32(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSRLV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSUB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::DSUBU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::EXT(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
uint64 msbd_value = extract_msbt_10_9_8_7_6(instruction);
uint64 lsb_value = extract_lsb_4_3_2_1_0(instruction);
- uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::EXTD(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_10_9_8_7_6(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
+ uint64 shift_value = extract_shift_10_9_8_7_6(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::EXTD32(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_10_9_8_7_6(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
+ uint64 shift_value = extract_shift_10_9_8_7_6(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::EXTPDP(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 size_value = extract_size_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string ac = AC(copy(ac_value));
std::string NMD::EXTPDPV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string ac = AC(copy(ac_value));
std::string NMD::EXTP(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 size_value = extract_size_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string ac = AC(copy(ac_value));
std::string NMD::EXTPV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string ac = AC(copy(ac_value));
std::string NMD::EXTRV_RS_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string ac = AC(copy(ac_value));
std::string NMD::EXTRV_R_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string ac = AC(copy(ac_value));
std::string NMD::EXTRV_S_H(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string ac = AC(copy(ac_value));
std::string NMD::EXTRV_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string ac = AC(copy(ac_value));
std::string NMD::EXTW(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_10_9_8_7_6(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
+ uint64 shift_value = extract_shift_10_9_8_7_6(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::FLOOR_L_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::FLOOR_L_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::FLOOR_W_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::FLOOR_W_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::FORK(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::INS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
uint64 msbd_value = extract_msbt_10_9_8_7_6(instruction);
uint64 lsb_value = extract_lsb_4_3_2_1_0(instruction);
- uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::LB_16_(uint64 instruction)
{
- uint64 u_value = extract_u_1_0(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_1_0(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("LB %s, %s(%s)", rt3, u, rs3);
}
std::string NMD::LB_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LB_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LBE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::LBU_16_(uint64 instruction)
{
- uint64 u_value = extract_u_1_0(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_1_0(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("LBU %s, %s(%s)", rt3, u, rs3);
}
std::string NMD::LBU_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LBU_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LBUE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LBUX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LBX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LD_GP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil3il3bs18Fmsb20(instruction);
+ uint64 u_value = extract_u_20_to_3__s3(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LD_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LD_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::LDC1_GP_(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 u_value = extr_uil2il2bs16Fmsb17(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 u_value = extract_u_17_to_2__s2(instruction);
std::string ft = FPR(copy(ft_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::LDC1_S9_(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string ft = FPR(copy(ft_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::LDC1_U12_(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string ft = FPR(copy(ft_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LDC1XS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LDC1X(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::LDC2(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 ct_value = extract_ct_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string ct = CPR(copy(ct_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LDM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 count3_value = extract_count3_14_13_12(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
+ uint64 count3_value = extract_count3_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LDPC_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 6);
std::string NMD::LDX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LDXS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::LH_16_(uint64 instruction)
{
- uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_2_1__s1(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("LH %s, %s(%s)", rt3, u, rs3);
}
std::string NMD::LH_GP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil1il1bs17Fmsb17(instruction);
+ uint64 u_value = extract_u_17_to_1__s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LH_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LH_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LHE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::LHU_16_(uint64 instruction)
{
- uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_2_1__s1(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("LHU %s, %s(%s)", rt3, u, rs3);
}
std::string NMD::LHU_GP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil1il1bs17Fmsb17(instruction);
+ uint64 u_value = extract_u_17_to_1__s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LHU_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LHU_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LHUE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LHUX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LHUXS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LHXS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LHX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::LI_16_(uint64 instruction)
{
- uint64 eu_value = extract_eu_6_5_4_3_2_1_0(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
+ uint64 eu_value = extract_eu_6_5_4_3_2_1_0(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string eu = IMMEDIATE(encode_eu_from_s_li16(eu_value));
return img::format("LI %s, %s", rt3, eu);
std::string NMD::LI_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil2il2bs6_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LLD(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil3il3bs5_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_s3(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LLDP(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
std::string rt = GPR(copy(rt_value));
std::string ru = GPR(copy(ru_value));
std::string NMD::LLE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil2il2bs6_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LLWP(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
std::string rt = GPR(copy(rt_value));
std::string ru = GPR(copy(ru_value));
std::string NMD::LLWPE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
std::string rt = GPR(copy(rt_value));
std::string ru = GPR(copy(ru_value));
std::string NMD::LSA(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
- uint64 u2_value = extract_u2_10_9(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
+ uint64 u2_value = extract_u2_10_9(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LUI(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il31bs1_il2il21bs10_il12il12bs9Tmsb31(instruction);
+ int64 s_value = extract_s__se31_0_11_to_2_20_to_12_s12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::LW_16_(uint64 instruction)
{
- uint64 u_value = extr_uil0il2bs4Fmsb5(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_3_2_1_0__s2(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("LW %s, %s(%s)", rt3, u, rs3);
}
*/
std::string NMD::LW_4X4_(uint64 instruction)
{
- uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
uint64 rt4_value = extract_rt4_9_7_6_5(instruction);
- uint64 u_value = extr_uil3il3bs1_il8il2bs1Fmsb3(instruction);
+ uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
+ uint64 u_value = extract_u_3_8__s2(instruction);
- std::string rt4 = GPR(encode_gpr4(rt4_value));
+ std::string rt4 = GPR(decode_gpr_gpr4(rt4_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs4 = GPR(encode_gpr4(rs4_value));
+ std::string rs4 = GPR(decode_gpr_gpr4(rs4_value));
return img::format("LW %s, %s(%s)", rt4, u, rs4);
}
std::string NMD::LW_GP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil2il2bs19Fmsb20(instruction);
+ uint64 u_value = extract_u_20_to_2__s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::LW_GP16_(uint64 instruction)
{
- uint64 u_value = extr_uil0il2bs7Fmsb8(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
+ uint64 u_value = extract_u_6_5_4_3_2_1_0__s2(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
std::string u = IMMEDIATE(copy(u_value));
return img::format("LW %s, %s($%d)", rt3, u, 28);
std::string NMD::LW_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LW_SP_(uint64 instruction)
{
uint64 rt_value = extract_rt_9_8_7_6_5(instruction);
- uint64 u_value = extr_uil0il2bs5Fmsb6(instruction);
+ uint64 u_value = extract_u_4_3_2_1_0__s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LW_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::LWC1_GP_(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 u_value = extr_uil2il2bs16Fmsb17(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 u_value = extract_u_17_to_2__s2(instruction);
std::string ft = FPR(copy(ft_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::LWC1_S9_(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string ft = FPR(copy(ft_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::LWC1_U12_(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string ft = FPR(copy(ft_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LWC1X(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LWC1XS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::LWC2(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 ct_value = extract_ct_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string ct = CPR(copy(ct_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LWE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LWM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 count3_value = extract_count3_14_13_12(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
+ uint64 count3_value = extract_count3_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LWPC_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 6);
std::string NMD::LWU_GP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil2il2bs16Fmsb17(instruction);
+ uint64 u_value = extract_u_17_to_2__s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LWU_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::LWU_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::LWUX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LWUXS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::LWX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::LWXS_16_(uint64 instruction)
{
- uint64 rd3_value = extract_rd3_3_2_1(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 rd3_value = extract_rd3_3_2_1(instruction);
- std::string rd3 = GPR(encode_gpr3(rd3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
- std::string rt3 = IMMEDIATE(encode_gpr3(rt3_value));
+ std::string rd3 = GPR(decode_gpr_gpr3(rd3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
+ std::string rt3 = IMMEDIATE(decode_gpr_gpr3(rt3_value));
return img::format("LWXS %s, %s(%s)", rd3, rs3, rt3);
}
std::string NMD::LWXS_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MADD_DSP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::MADDF_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MADDF_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::MADDU_DSP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MAQ_S_W_PHL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MAQ_S_W_PHR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MAQ_SA_W_PHL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MAQ_SA_W_PHR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::MAX_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MAX_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MAXA_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MAXA_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::MFC1(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MFC2(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
std::string NMD::MFHC1(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MFHC2(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
*/
std::string NMD::MIN_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MIN_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MINA_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MINA_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::MOD(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MODSUB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MODU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::MOV_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MOV_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MOVE_BALC(uint64 instruction)
{
- uint64 rd1_value = extract_rdl_25_24(instruction);
- int64 s_value = extr_sil0il21bs1_il1il1bs20Tmsb21(instruction);
uint64 rtz4_value = extract_rtz4_27_26_25_23_22_21(instruction);
+ uint64 rd1_value = extract_rdl_25_24(instruction);
+ int64 s_value = extract_s__se21_0_20_to_1_s1(instruction);
std::string rd1 = GPR(encode_rd1_from_rd(rd1_value));
std::string rtz4 = GPR(encode_gpr4_zero(rtz4_value));
*/
std::string NMD::MOVEP(uint64 instruction)
{
- uint64 rsz4_value = extract_rsz4_4_2_1_0(instruction);
uint64 rtz4_value = extract_rtz4_9_7_6_5(instruction);
uint64 rd2_value = extract_rd2_3_8(instruction);
+ uint64 rsz4_value = extract_rsz4_4_2_1_0(instruction);
std::string rd2 = GPR(encode_rd2_reg1(rd2_value));
std::string re2 = GPR(encode_rd2_reg2(rd2_value));
*/
std::string NMD::MOVEP_REV_(uint64 instruction)
{
- uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
uint64 rt4_value = extract_rt4_9_7_6_5(instruction);
uint64 rd2_value = extract_rd2_3_8(instruction);
+ uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
- std::string rs4 = GPR(encode_gpr4(rs4_value));
- std::string rt4 = GPR(encode_gpr4(rt4_value));
+ std::string rs4 = GPR(decode_gpr_gpr4(rs4_value));
+ std::string rt4 = GPR(decode_gpr_gpr4(rt4_value));
std::string rd2 = GPR(encode_rd2_reg1(rd2_value));
std::string rs2 = GPR(encode_rd2_reg2(rd2_value));
/* !!!!!!!!!! - no conversion function */
std::string NMD::MOVN(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MOVZ(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MSUB_DSP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::MSUBF_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MSUBF_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::MSUBU_DSP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MTC1(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MTC2(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
std::string NMD::MTHC1(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::MTHC2(uint64 instruction)
{
- uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
+ uint64 cs_value = extract_cs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string cs = CPR(copy(cs_value));
*/
std::string NMD::MTHI_DSP_(uint64 instruction)
{
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rs = GPR(copy(rs_value));
std::string ac = AC(copy(ac_value));
*/
std::string NMD::MTHLIP(uint64 instruction)
{
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rs = GPR(copy(rs_value));
std::string ac = AC(copy(ac_value));
*/
std::string NMD::MTLO_DSP_(uint64 instruction)
{
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string rs = GPR(copy(rs_value));
std::string ac = AC(copy(ac_value));
std::string NMD::MUH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MUHU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MUL_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::MUL_4X4_(uint64 instruction)
{
- uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
uint64 rt4_value = extract_rt4_9_7_6_5(instruction);
+ uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
- std::string rs4 = GPR(encode_gpr4(rs4_value));
- std::string rt4 = GPR(encode_gpr4(rt4_value));
+ std::string rs4 = GPR(decode_gpr_gpr4(rs4_value));
+ std::string rt4 = GPR(decode_gpr_gpr4(rt4_value));
return img::format("MUL %s, %s", rs4, rt4);
}
*/
std::string NMD::MUL_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::MUL_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MUL_S_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::MUL_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::MULEQ_S_W_PHL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULEQ_S_W_PHR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULEU_S_PH_QBL(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULEU_S_PH_QBR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULQ_RS_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULQ_RS_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULQ_S_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULQ_S_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULSA_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULSAQ_S_W_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULT_DSP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULTU_DSP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ac_value = extract_ac_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ac_value = extract_ac_13_12(instruction);
std::string ac = AC(copy(ac_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::MULU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::NEG_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::NEG_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::NOR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("NOT %s, %s", rt3, rs3);
}
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
- std::string rs3 = GPR(encode_gpr3(rs3_value));
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
return img::format("OR %s, %s", rs3, rt3);
}
std::string NMD::OR_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ORI(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PACKRL_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PICK_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PICK_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PRECR_QB_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PRECR_SRA_PH_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PRECR_SRA_R_PH_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PRECRQ_PH_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PRECRQ_QB_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PRECRQ_RS_PH_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::PRECRQU_S_QB_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::PREF_S9_(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 hint_value = extract_hint_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string hint = IMMEDIATE(copy(hint_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::PREF_U12_(uint64 instruction)
{
uint64 hint_value = extract_hint_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string hint = IMMEDIATE(copy(hint_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::PREFE(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 hint_value = extract_hint_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string hint = IMMEDIATE(copy(hint_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::PREPEND(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::RECIP_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::RECIP_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::REPL_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil11il0bs10Tmsb9(instruction);
+ int64 s_value = extract_s__se9_20_19_18_17_16_15_14_13_12_11(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::RESTORE_32_(uint64 instruction)
{
- uint64 count_value = extract_count_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil3il3bs9Fmsb11(instruction);
+ uint64 count_value = extract_count_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3__s3(instruction);
uint64 gp_value = extract_gp_2(instruction);
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::RESTORE_JRC_16_(uint64 instruction)
{
- uint64 count_value = extract_count_3_2_1_0(instruction);
uint64 rt1_value = extract_rtl_11(instruction);
- uint64 u_value = extr_uil4il4bs4Fmsb7(instruction);
+ uint64 u_value = extract_u_7_6_5_4__s4(instruction);
+ uint64 count_value = extract_count_3_2_1_0(instruction);
std::string u = IMMEDIATE(copy(u_value));
return img::format("RESTORE.JRC %s%s", u,
*/
std::string NMD::RESTORE_JRC_32_(uint64 instruction)
{
- uint64 count_value = extract_count_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil3il3bs9Fmsb11(instruction);
+ uint64 count_value = extract_count_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3__s3(instruction);
uint64 gp_value = extract_gp_2(instruction);
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::RESTOREF(uint64 instruction)
{
uint64 count_value = extract_count_19_18_17_16(instruction);
- uint64 u_value = extr_uil3il3bs9Fmsb11(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3__s3(instruction);
std::string u = IMMEDIATE(copy(u_value));
std::string count = IMMEDIATE(copy(count_value));
*/
std::string NMD::RINT_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::RINT_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::ROTR(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ROTRV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::ROTX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
- uint64 shiftx_value = extr_shiftxil7il1bs4Fmsb4(instruction);
- uint64 stripe_value = extract_stripe_6(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shiftx_value = extract_shiftx_10_9_8_7__s1(instruction);
+ uint64 stripe_value = extract_stripe_6(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::ROUND_L_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::ROUND_L_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::ROUND_W_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::ROUND_W_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::RSQRT_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::RSQRT_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::SAVE_16_(uint64 instruction)
{
- uint64 count_value = extract_count_3_2_1_0(instruction);
uint64 rt1_value = extract_rtl_11(instruction);
- uint64 u_value = extr_uil4il4bs4Fmsb7(instruction);
+ uint64 u_value = extract_u_7_6_5_4__s4(instruction);
+ uint64 count_value = extract_count_3_2_1_0(instruction);
std::string u = IMMEDIATE(copy(u_value));
return img::format("SAVE %s%s", u,
{
uint64 count_value = extract_count_19_18_17_16(instruction);
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil3il3bs9Fmsb11(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3__s3(instruction);
uint64 gp_value = extract_gp_2(instruction);
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SAVEF(uint64 instruction)
{
uint64 count_value = extract_count_19_18_17_16(instruction);
- uint64 u_value = extr_uil3il3bs9Fmsb11(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3__s3(instruction);
std::string u = IMMEDIATE(copy(u_value));
std::string count = IMMEDIATE(copy(count_value));
std::string NMD::SB_16_(uint64 instruction)
{
uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
- uint64 u_value = extract_u_1_0(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_1_0(instruction);
- std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
+ std::string rtz3 = GPR(decode_gpr_gpr3_src_store(rtz3_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("SB %s, %s(%s)", rtz3, u, rs3);
}
std::string NMD::SB_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SB_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SBE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SBX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SC(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil2il2bs6_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SCD(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil3il3bs5_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_s3(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SCDP(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
std::string rt = GPR(copy(rt_value));
std::string ru = GPR(copy(ru_value));
std::string NMD::SCE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil2il2bs6_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SCWP(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
std::string rt = GPR(copy(rt_value));
std::string ru = GPR(copy(ru_value));
std::string NMD::SCWPE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ru_value = extract_ru_7_6_5_4_3(instruction);
std::string rt = GPR(copy(rt_value));
std::string ru = GPR(copy(ru_value));
std::string NMD::SD_GP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil3il3bs18Fmsb20(instruction);
+ uint64 u_value = extract_u_20_to_3__s3(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SD_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SD_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::SDC1_GP_(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 u_value = extr_uil2il2bs16Fmsb17(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 u_value = extract_u_17_to_2__s2(instruction);
std::string ft = FPR(copy(ft_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::SDC1_S9_(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string ft = FPR(copy(ft_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::SDC1_U12_(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string ft = FPR(copy(ft_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SDC1X(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SDC1XS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SDC2(uint64 instruction)
{
uint64 cs_value = extract_cs_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string cs = CPR(copy(cs_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SDM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 count3_value = extract_count3_14_13_12(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
+ uint64 count3_value = extract_count3_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SDPC_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 6);
std::string NMD::SDXS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SDX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::SEL_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::SEL_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::SELEQZ_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::SELEQZ_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::SELNEZ_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::SELNEZ_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::SEQI(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SH_16_(uint64 instruction)
{
uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
- uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_2_1__s1(instruction);
- std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
+ std::string rtz3 = GPR(decode_gpr_gpr3_src_store(rtz3_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("SH %s, %s(%s)", rtz3, u, rs3);
}
std::string NMD::SH_GP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil1il1bs17Fmsb17(instruction);
+ uint64 u_value = extract_u_17_to_1__s1(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SH_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SH_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SHE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::SHILO(uint64 instruction)
{
- int64 shift_value = extract_shift_21_20_19_18_17_16(instruction);
+ int64 shift_value = extract_shift__se5_21_20_19_18_17_16(instruction);
uint64 ac_value = extract_ac_13_12(instruction);
std::string shift = IMMEDIATE(copy(shift_value));
std::string NMD::SHLL_S_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHLLV_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHLLV_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHLLV_S_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHLLV_S_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHRA_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHRA_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHRA_R_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHRA_R_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHRA_R_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12_11(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHRAV_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHRAV_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHRAV_R_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHRAV_R_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHRAV_R_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHRL_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13_12(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHRL_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 sa_value = extract_sa_15_14_13(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 sa_value = extract_sa_15_14_13(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHRLV_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHRLV_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rt = GPR(copy(rt_value));
std::string NMD::SHX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SHXS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::SLL_16_(uint64 instruction)
{
- uint64 shift3_value = extract_shift3_2_1_0(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 shift3_value = extract_shift3_2_1_0(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
std::string shift3 = IMMEDIATE(encode_shift3_from_shift(shift3_value));
return img::format("SLL %s, %s, %s", rt3, rs3, shift3);
std::string NMD::SLL_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SLLV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SLT(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SLTI(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SLTIU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SLTU(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SOV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::SQRT_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::SQRT_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::SRAV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::SRL_16_(uint64 instruction)
{
- uint64 shift3_value = extract_shift3_2_1_0(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 shift3_value = extract_shift3_2_1_0(instruction);
- std::string rt3 = GPR(encode_gpr3(rt3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
std::string shift3 = IMMEDIATE(encode_shift3_from_shift(shift3_value));
return img::format("SRL %s, %s, %s", rt3, rs3, shift3);
std::string NMD::SRL_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 shift_value = extract_shift_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SRLV(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::SUB_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::SUB_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
+ uint64 fd_value = extract_fd_15_14_13_12_11(instruction);
std::string fd = FPR(copy(fd_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::SUBQ_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBQ_S_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBQ_S_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBQH_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBQH_R_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBQH_R_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBQH_W(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::SUBU_16_(uint64 instruction)
{
- uint64 rd3_value = extract_rd3_3_2_1(instruction);
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 rd3_value = extract_rd3_3_2_1(instruction);
- std::string rd3 = GPR(encode_gpr3(rd3_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rd3 = GPR(decode_gpr_gpr3(rd3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
return img::format("SUBU %s, %s, %s", rd3, rs3, rt3);
}
std::string NMD::SUBU_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBU_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBU_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBU_S_PH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBU_S_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBUH_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SUBUH_R_QB(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SW_16_(uint64 instruction)
{
uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
- uint64 u_value = extr_uil0il2bs4Fmsb5(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
+ uint64 u_value = extract_u_3_2_1_0__s2(instruction);
- std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
+ std::string rtz3 = GPR(decode_gpr_gpr3_src_store(rtz3_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs3 = GPR(encode_gpr3(rs3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
return img::format("SW %s, %s(%s)", rtz3, u, rs3);
}
*/
std::string NMD::SW_4X4_(uint64 instruction)
{
- uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
uint64 rtz4_value = extract_rtz4_9_7_6_5(instruction);
- uint64 u_value = extr_uil3il3bs1_il8il2bs1Fmsb3(instruction);
+ uint64 rs4_value = extract_rs4_4_2_1_0(instruction);
+ uint64 u_value = extract_u_3_8__s2(instruction);
std::string rtz4 = GPR(encode_gpr4_zero(rtz4_value));
std::string u = IMMEDIATE(copy(u_value));
- std::string rs4 = GPR(encode_gpr4(rs4_value));
+ std::string rs4 = GPR(decode_gpr_gpr4(rs4_value));
return img::format("SW %s, %s(%s)", rtz4, u, rs4);
}
*/
std::string NMD::SW_GP16_(uint64 instruction)
{
+ uint64 u_value = extract_u_6_5_4_3_2_1_0__s2(instruction);
uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
- uint64 u_value = extr_uil0il2bs7Fmsb8(instruction);
- std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
+ std::string rtz3 = GPR(decode_gpr_gpr3_src_store(rtz3_value));
std::string u = IMMEDIATE(copy(u_value));
return img::format("SW %s, %s($%d)", rtz3, u, 28);
std::string NMD::SW_GP_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extr_uil2il2bs19Fmsb20(instruction);
+ uint64 u_value = extract_u_20_to_2__s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SW_S9_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string NMD::SW_SP_(uint64 instruction)
{
uint64 rt_value = extract_rt_9_8_7_6_5(instruction);
- uint64 u_value = extr_uil0il2bs5Fmsb6(instruction);
+ uint64 u_value = extract_u_4_3_2_1_0__s2(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SW_U12_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::SWC1_GP_(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 u_value = extr_uil2il2bs16Fmsb17(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 u_value = extract_u_17_to_2__s2(instruction);
std::string ft = FPR(copy(ft_value));
std::string u = IMMEDIATE(copy(u_value));
*/
std::string NMD::SWC1_S9_(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string ft = FPR(copy(ft_value));
std::string s = IMMEDIATE(copy(s_value));
*/
std::string NMD::SWC1_U12_(uint64 instruction)
{
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string ft = FPR(copy(ft_value));
std::string u = IMMEDIATE(copy(u_value));
std::string NMD::SWC1X(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SWC1XS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_15_14_13_12_11(instruction);
std::string ft = FPR(copy(ft_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SWC2(uint64 instruction)
{
uint64 cs_value = extract_cs_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string cs = CPR(copy(cs_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SWE(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SWM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 count3_value = extract_count3_14_13_12(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
+ uint64 count3_value = extract_count3_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::SWPC_48_(uint64 instruction)
{
uint64 rt_value = extract_rt_41_40_39_38_37(instruction);
- int64 s_value = extr_sil0il16bs16_il16il0bs16Tmsb31(instruction);
+ int64 s_value = extract_s__se31_15_to_0_31_to_16(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = ADDRESS(encode_s_from_address(s_value), 6);
std::string NMD::SWX(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::SWXS(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::SYNCI(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string s = IMMEDIATE(copy(s_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::SYNCIE(uint64 instruction)
{
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string s = IMMEDIATE(copy(s_value));
std::string rs = GPR(copy(rs_value));
*/
std::string NMD::TRUNC_L_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::TRUNC_L_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::TRUNC_W_D(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
*/
std::string NMD::TRUNC_W_S(uint64 instruction)
{
- uint64 fs_value = extract_fs_15_14_13_12_11(instruction);
- uint64 ft_value = extract_ft_20_19_18_17_16(instruction);
+ uint64 ft_value = extract_ft_25_24_23_22_21(instruction);
+ uint64 fs_value = extract_fs_20_19_18_17_16(instruction);
std::string ft = FPR(copy(ft_value));
std::string fs = FPR(copy(fs_value));
std::string NMD::UALDM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 count3_value = extract_count3_14_13_12(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
+ uint64 count3_value = extract_count3_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::UALH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::UALWM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 count3_value = extract_count3_14_13_12(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
+ uint64 count3_value = extract_count3_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::UASDM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 count3_value = extract_count3_14_13_12(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
+ uint64 count3_value = extract_count3_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::UASH(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
std::string NMD::UASWM(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 count3_value = extract_count3_14_13_12(instruction);
- int64 s_value = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ int64 s_value = extract_s__se8_15_7_6_5_4_3_2_1_0(instruction);
+ uint64 count3_value = extract_count3_14_13_12(instruction);
std::string rt = GPR(copy(rt_value));
std::string s = IMMEDIATE(copy(s_value));
uint64 rt3_value = extract_rt3_9_8_7(instruction);
uint64 rs3_value = extract_rs3_6_5_4(instruction);
- std::string rs3 = GPR(encode_gpr3(rs3_value));
- std::string rt3 = GPR(encode_gpr3(rt3_value));
+ std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));
+ std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));
return img::format("XOR %s, %s", rs3, rt3);
}
std::string NMD::XOR_32_(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 rd_value = extract_rd_20_19_18_17_16(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 rd_value = extract_rd_15_14_13_12_11(instruction);
std::string rd = GPR(copy(rd_value));
std::string rs = GPR(copy(rs_value));
std::string NMD::XORI(uint64 instruction)
{
uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
- uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
+ uint64 u_value = extract_u_11_10_9_8_7_6_5_4_3_2_1_0(instruction);
std::string rt = GPR(copy(rt_value));
std::string rs = GPR(copy(rs_value));