@@ -273,7 +273,7 @@ int64 sign_extend(int64 data, int msb)
}
-uint64 NMD::renumber_registers(uint64 index, uint64 *register_list,
+static uint64 renumber_registers(uint64 index, uint64 *register_list,
size_t register_list_size)
{
if (index < register_list_size) {
@@ -288,7 +288,7 @@ uint64 NMD::renumber_registers(uint64 index, uint64 *register_list,
/*
- * NMD::decode_gpr_gpr4() - decoder for 'gpr4' gpr encoding type
+ * decode_gpr_gpr4() - decoder for 'gpr4' gpr encoding type
*
* Map a 4-bit code to the 5-bit register space according to this pattern:
*
@@ -313,7 +313,7 @@ uint64 NMD::renumber_registers(uint64 index, uint64 *register_list,
* - MUL[4X4]
* - SW[4X4]
*/
-uint64 NMD::decode_gpr_gpr4(uint64 d)
+static uint64 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 };
@@ -323,7 +323,7 @@ uint64 NMD::decode_gpr_gpr4(uint64 d)
/*
- * NMD::decode_gpr_gpr4_zero() - decoder for 'gpr4.zero' gpr encoding type
+ * decode_gpr_gpr4_zero() - decoder for 'gpr4.zero' gpr encoding type
*
* Map a 4-bit code to the 5-bit register space according to this pattern:
*
@@ -349,7 +349,7 @@ uint64 NMD::decode_gpr_gpr4(uint64 d)
* - MOVEP
* - SW[4X4]
*/
-uint64 NMD::decode_gpr_gpr4_zero(uint64 d)
+static uint64 decode_gpr_gpr4_zero(uint64 d)
{
static uint64 register_list[] = { 8, 9, 10, 0, 4, 5, 6, 7,
16, 17, 18, 19, 20, 21, 22, 23 };
@@ -359,7 +359,7 @@ uint64 NMD::decode_gpr_gpr4_zero(uint64 d)
/*
- * NMD::decode_gpr_gpr3() - decoder for 'gpr3' gpr encoding type
+ * decode_gpr_gpr3() - decoder for 'gpr3' gpr encoding type
*
* Map a 3-bit code to the 5-bit register space according to this pattern:
*
@@ -408,7 +408,7 @@ uint64 NMD::decode_gpr_gpr4_zero(uint64 d)
* - SW[16]
* - XOR[16]
*/
-uint64 NMD::decode_gpr_gpr3(uint64 d)
+static uint64 decode_gpr_gpr3(uint64 d)
{
static uint64 register_list[] = { 16, 17, 18, 19, 4, 5, 6, 7 };
return renumber_registers(d, register_list,
@@ -417,7 +417,7 @@ uint64 NMD::decode_gpr_gpr3(uint64 d)
/*
- * NMD::decode_gpr_gpr3_src_store() - decoder for 'gpr3.src.store' gpr encoding
+ * 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:
@@ -448,7 +448,7 @@ uint64 NMD::decode_gpr_gpr3(uint64 d)
* - SW[16]
* - SW[GP16]
*/
-uint64 NMD::decode_gpr_gpr3_src_store(uint64 d)
+static uint64 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,
@@ -457,7 +457,7 @@ uint64 NMD::decode_gpr_gpr3_src_store(uint64 d)
/*
- * NMD::decode_gpr_gpr2_reg1() - decoder for 'gpr2.reg1' gpr encoding type
+ * decode_gpr_gpr2_reg1() - decoder for 'gpr2.reg1' gpr encoding type
*
* Map a 2-bit code to the 5-bit register space according to this pattern:
*
@@ -478,7 +478,7 @@ uint64 NMD::decode_gpr_gpr3_src_store(uint64 d)
* - MOVEP
* - MOVEP[REV]
*/
-uint64 NMD::decode_gpr_gpr2_reg1(uint64 d)
+static uint64 decode_gpr_gpr2_reg1(uint64 d)
{
static uint64 register_list[] = { 4, 5, 6, 7 };
return renumber_registers(d, register_list,
@@ -487,7 +487,7 @@ uint64 NMD::decode_gpr_gpr2_reg1(uint64 d)
/*
- * NMD::decode_gpr_gpr2_reg2() - decoder for 'gpr2.reg2' gpr encoding type
+ * decode_gpr_gpr2_reg2() - decoder for 'gpr2.reg2' gpr encoding type
*
* Map a 2-bit code to the 5-bit register space according to this pattern:
*
@@ -508,7 +508,7 @@ uint64 NMD::decode_gpr_gpr2_reg1(uint64 d)
* - MOVEP
* - MOVEP[REV]
*/
-uint64 NMD::decode_gpr_gpr2_reg2(uint64 d)
+static uint64 decode_gpr_gpr2_reg2(uint64 d)
{
static uint64 register_list[] = { 5, 6, 7, 8 };
return renumber_registers(d, register_list,
@@ -517,7 +517,7 @@ uint64 NMD::decode_gpr_gpr2_reg2(uint64 d)
/*
- * NMD::decode_gpr_gpr1() - decoder for 'gpr1' gpr encoding type
+ * decode_gpr_gpr1() - decoder for 'gpr1' gpr encoding type
*
* Map a 1-bit code to the 5-bit register space according to this pattern:
*
@@ -537,7 +537,7 @@ uint64 NMD::decode_gpr_gpr2_reg2(uint64 d)
*
* - MOVE.BALC
*/
-uint64 NMD::decode_gpr_gpr1(uint64 d)
+static uint64 decode_gpr_gpr1(uint64 d)
{
static uint64 register_list[] = { 4, 5 };
return renumber_registers(d, register_list,
@@ -545,73 +545,60 @@ uint64 NMD::decode_gpr_gpr1(uint64 d)
}
-uint64 NMD::copy(uint64 d)
+static uint64 copy(uint64 d)
{
return d;
}
-int64 NMD::copy(int64 d)
+static int64 copy(int64 d)
{
return d;
}
-int64 NMD::neg_copy(uint64 d)
+static int64 neg_copy(uint64 d)
{
return 0ll - d;
}
-int64 NMD::neg_copy(int64 d)
-{
- return -d;
-}
-
-
/* strange wrapper around gpr3 */
-uint64 NMD::encode_rs3_and_check_rs3_ge_rt3(uint64 d)
+static uint64 encode_rs3_and_check_rs3_ge_rt3(uint64 d)
{
return decode_gpr_gpr3(d);
}
/* strange wrapper around gpr3 */
-uint64 NMD::encode_rs3_and_check_rs3_lt_rt3(uint64 d)
+static uint64 encode_rs3_and_check_rs3_lt_rt3(uint64 d)
{
return decode_gpr_gpr3(d);
}
/* nop - done by extraction function */
-uint64 NMD::encode_s_from_address(uint64 d)
+static uint64 encode_s_from_address(uint64 d)
{
return d;
}
/* nop - done by extraction function */
-uint64 NMD::encode_u_from_address(uint64 d)
+static uint64 encode_u_from_address(uint64 d)
{
return d;
}
-/* nop - done by extraction function */
-uint64 NMD::encode_s_from_s_hi(uint64 d)
-{
- return d;
-}
-
-
-uint64 NMD::encode_count3_from_count(uint64 d)
+static uint64 encode_count3_from_count(uint64 d)
{
IMGASSERTONCE(d < 8);
return d == 0ull ? 8ull : d;
}
-uint64 NMD::encode_shift3_from_shift(uint64 d)
+static uint64 encode_shift3_from_shift(uint64 d)
{
IMGASSERTONCE(d < 8);
return d == 0ull ? 8ull : d;
@@ -619,21 +606,21 @@ uint64 NMD::encode_shift3_from_shift(uint64 d)
/* special value for load literal */
-int64 NMD::encode_eu_from_s_li16(uint64 d)
+int64 encode_eu_from_s_li16(uint64 d)
{
IMGASSERTONCE(d < 128);
return d == 127 ? -1 : (int64)d;
}
-uint64 NMD::encode_msbd_from_size(uint64 d)
+static uint64 encode_msbd_from_size(uint64 d)
{
IMGASSERTONCE(d < 32);
return d + 1;
}
-uint64 NMD::encode_eu_from_u_andi16(uint64 d)
+static uint64 encode_eu_from_u_andi16(uint64 d)
{
IMGASSERTONCE(d < 16);
if (d == 12) {
@@ -646,42 +633,21 @@ uint64 NMD::encode_eu_from_u_andi16(uint64 d)
}
-uint64 NMD::encode_msbd_from_pos_and_size(uint64 d)
-{
- IMGASSERTONCE(0);
- return d;
-}
-
-
/* save16 / restore16 ???? */
-uint64 NMD::encode_rt1_from_rt(uint64 d)
+static uint64 encode_rt1_from_rt(uint64 d)
{
return d ? 31 : 30;
}
/* ? */
-uint64 NMD::encode_lsb_from_pos_and_size(uint64 d)
+static uint64 encode_lsb_from_pos_and_size(uint64 d)
{
return d;
}
-std::string NMD::save_restore_list(uint64 rt, uint64 count, uint64 gp)
-{
- std::string str;
-
- for (uint64 counter = 0; counter != count; counter++) {
- bool use_gp = gp && (counter == count - 1);
- uint64 this_rt = use_gp ? 28 : ((rt & 0x10) | (rt + counter)) & 0x1f;
- str += img_format(",%s", GPR(this_rt));
- }
-
- return str;
-}
-
-
-std::string NMD::GPR(uint64 reg)
+static std::string GPR(uint64 reg)
{
static const char *gpr_reg[32] = {
"zero", "at", "v0", "v1", "a0", "a1", "a2", "a3",
@@ -699,7 +665,21 @@ std::string NMD::GPR(uint64 reg)
}
-std::string NMD::FPR(uint64 reg)
+static std::string save_restore_list(uint64 rt, uint64 count, uint64 gp)
+{
+ std::string str;
+
+ for (uint64 counter = 0; counter != count; counter++) {
+ bool use_gp = gp && (counter == count - 1);
+ uint64 this_rt = use_gp ? 28 : ((rt & 0x10) | (rt + counter)) & 0x1f;
+ str += img_format(",%s", GPR(this_rt));
+ }
+
+ return str;
+}
+
+
+static std::string FPR(uint64 reg)
{
static const char *fpr_reg[32] = {
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
@@ -717,7 +697,7 @@ std::string NMD::FPR(uint64 reg)
}
-std::string NMD::AC(uint64 reg)
+static std::string AC(uint64 reg)
{
static const char *ac_reg[4] = {
"ac0", "ac1", "ac2", "ac3"
@@ -732,26 +712,26 @@ std::string NMD::AC(uint64 reg)
}
-std::string NMD::IMMEDIATE(uint64 value)
+static std::string IMMEDIATE(uint64 value)
{
return img_format("0x%" PRIx64, value);
}
-std::string NMD::IMMEDIATE(int64 value)
+static std::string IMMEDIATE(int64 value)
{
return img_format("%" PRId64, value);
}
-std::string NMD::CPR(uint64 reg)
+static std::string CPR(uint64 reg)
{
/* needs more work */
return img_format("CP%" PRIu64, reg);
}
-std::string NMD::ADDRESS(uint64 value, int instruction_size)
+static std::string ADDRESS(uint64 value, int instruction_size)
{
/* token for string replace */
/* const char TOKEN_REPLACE = (char)0xa2; */
@@ -862,7 +842,7 @@ int NMD::Disassemble(const uint16 * data, std::string & dis,
}
-uint64 NMD::extract_code_18_to_0(uint64 instruction)
+static uint64 extract_code_18_to_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 19);
@@ -870,7 +850,7 @@ uint64 NMD::extract_code_18_to_0(uint64 instruction)
}
-uint64 NMD::extract_shift3_2_1_0(uint64 instruction)
+static uint64 extract_shift3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 3);
@@ -878,7 +858,7 @@ uint64 NMD::extract_shift3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_u_11_10_9_8_7_6_5_4_3__s3(uint64 instruction)
+static uint64 extract_u_11_10_9_8_7_6_5_4_3__s3(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 9) << 3;
@@ -886,7 +866,7 @@ uint64 NMD::extract_u_11_10_9_8_7_6_5_4_3__s3(uint64 instruction)
}
-uint64 NMD::extract_count_3_2_1_0(uint64 instruction)
+static uint64 extract_count_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 4);
@@ -894,7 +874,7 @@ uint64 NMD::extract_count_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_rtz3_9_8_7(uint64 instruction)
+static uint64 extract_rtz3_9_8_7(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 7, 3);
@@ -902,7 +882,7 @@ uint64 NMD::extract_rtz3_9_8_7(uint64 instruction)
}
-uint64 NMD::extract_u_17_to_1__s1(uint64 instruction)
+static uint64 extract_u_17_to_1__s1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 1, 17) << 1;
@@ -910,7 +890,7 @@ uint64 NMD::extract_u_17_to_1__s1(uint64 instruction)
}
-int64 NMD::extract_s__se9_20_19_18_17_16_15_14_13_12_11(uint64 instruction)
+static int64 extract_s__se9_20_19_18_17_16_15_14_13_12_11(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 11, 10);
@@ -919,7 +899,7 @@ int64 NMD::extract_s__se9_20_19_18_17_16_15_14_13_12_11(uint64 instruction)
}
-int64 NMD::extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(uint64 instruction)
+static int64 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;
@@ -929,7 +909,7 @@ int64 NMD::extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(uint64 instruction)
}
-uint64 NMD::extract_u_10(uint64 instruction)
+static uint64 extract_u_10(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 10, 1);
@@ -937,7 +917,7 @@ uint64 NMD::extract_u_10(uint64 instruction)
}
-uint64 NMD::extract_rtz4_27_26_25_23_22_21(uint64 instruction)
+static uint64 extract_rtz4_27_26_25_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 3);
@@ -946,7 +926,7 @@ uint64 NMD::extract_rtz4_27_26_25_23_22_21(uint64 instruction)
}
-uint64 NMD::extract_sa_15_14_13_12_11(uint64 instruction)
+static uint64 extract_sa_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 5);
@@ -954,7 +934,7 @@ uint64 NMD::extract_sa_15_14_13_12_11(uint64 instruction)
}
-uint64 NMD::extract_shift_4_3_2_1_0(uint64 instruction)
+static uint64 extract_shift_4_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 5);
@@ -962,7 +942,7 @@ uint64 NMD::extract_shift_4_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_shiftx_10_9_8_7__s1(uint64 instruction)
+static uint64 extract_shiftx_10_9_8_7__s1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 7, 4) << 1;
@@ -970,7 +950,7 @@ uint64 NMD::extract_shiftx_10_9_8_7__s1(uint64 instruction)
}
-uint64 NMD::extract_hint_25_24_23_22_21(uint64 instruction)
+static uint64 extract_hint_25_24_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 5);
@@ -978,7 +958,7 @@ uint64 NMD::extract_hint_25_24_23_22_21(uint64 instruction)
}
-uint64 NMD::extract_count3_14_13_12(uint64 instruction)
+static uint64 extract_count3_14_13_12(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 12, 3);
@@ -986,7 +966,7 @@ uint64 NMD::extract_count3_14_13_12(uint64 instruction)
}
-int64 NMD::extract_s__se31_0_11_to_2_20_to_12_s12(uint64 instruction)
+static int64 extract_s__se31_0_11_to_2_20_to_12_s12(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 31;
@@ -997,7 +977,7 @@ int64 NMD::extract_s__se31_0_11_to_2_20_to_12_s12(uint64 instruction)
}
-int64 NMD::extract_s__se7_0_6_5_4_3_2_1_s1(uint64 instruction)
+static int64 extract_s__se7_0_6_5_4_3_2_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 7;
@@ -1007,7 +987,7 @@ int64 NMD::extract_s__se7_0_6_5_4_3_2_1_s1(uint64 instruction)
}
-uint64 NMD::extract_u2_10_9(uint64 instruction)
+static uint64 extract_u2_10_9(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 9, 2);
@@ -1015,7 +995,7 @@ uint64 NMD::extract_u2_10_9(uint64 instruction)
}
-uint64 NMD::extract_code_25_24_23_22_21_20_19_18_17_16(uint64 instruction)
+static uint64 extract_code_25_24_23_22_21_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 10);
@@ -1023,7 +1003,7 @@ uint64 NMD::extract_code_25_24_23_22_21_20_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_rs_20_19_18_17_16(uint64 instruction)
+static uint64 extract_rs_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
@@ -1031,7 +1011,7 @@ uint64 NMD::extract_rs_20_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_u_2_1__s1(uint64 instruction)
+static uint64 extract_u_2_1__s1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 1, 2) << 1;
@@ -1039,7 +1019,7 @@ uint64 NMD::extract_u_2_1__s1(uint64 instruction)
}
-uint64 NMD::extract_stripe_6(uint64 instruction)
+static uint64 extract_stripe_6(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 6, 1);
@@ -1047,7 +1027,7 @@ uint64 NMD::extract_stripe_6(uint64 instruction)
}
-uint64 NMD::extract_ac_15_14(uint64 instruction)
+static uint64 extract_ac_15_14(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 14, 2);
@@ -1055,7 +1035,7 @@ uint64 NMD::extract_ac_15_14(uint64 instruction)
}
-uint64 NMD::extract_shift_20_19_18_17_16(uint64 instruction)
+static uint64 extract_shift_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
@@ -1063,7 +1043,7 @@ uint64 NMD::extract_shift_20_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_rdl_25_24(uint64 instruction)
+static uint64 extract_rdl_25_24(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 24, 1);
@@ -1071,7 +1051,7 @@ uint64 NMD::extract_rdl_25_24(uint64 instruction)
}
-int64 NMD::extract_s__se10_0_9_8_7_6_5_4_3_2_1_s1(uint64 instruction)
+static int64 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;
@@ -1081,7 +1061,7 @@ int64 NMD::extract_s__se10_0_9_8_7_6_5_4_3_2_1_s1(uint64 instruction)
}
-uint64 NMD::extract_eu_6_5_4_3_2_1_0(uint64 instruction)
+static uint64 extract_eu_6_5_4_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 7);
@@ -1089,7 +1069,7 @@ uint64 NMD::extract_eu_6_5_4_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_shift_5_4_3_2_1_0(uint64 instruction)
+static uint64 extract_shift_5_4_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 6);
@@ -1097,7 +1077,7 @@ uint64 NMD::extract_shift_5_4_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_count_19_18_17_16(uint64 instruction)
+static uint64 extract_count_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 4);
@@ -1105,7 +1085,7 @@ uint64 NMD::extract_count_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_code_2_1_0(uint64 instruction)
+static uint64 extract_code_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 3);
@@ -1113,7 +1093,7 @@ uint64 NMD::extract_code_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_u_11_10_9_8_7_6_5_4_3_2_1_0(uint64 instruction)
+static uint64 extract_u_11_10_9_8_7_6_5_4_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 12);
@@ -1121,7 +1101,7 @@ uint64 NMD::extract_u_11_10_9_8_7_6_5_4_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_rs_4_3_2_1_0(uint64 instruction)
+static uint64 extract_rs_4_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 5);
@@ -1129,7 +1109,7 @@ uint64 NMD::extract_rs_4_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_u_20_to_3__s3(uint64 instruction)
+static uint64 extract_u_20_to_3__s3(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 18) << 3;
@@ -1137,7 +1117,7 @@ uint64 NMD::extract_u_20_to_3__s3(uint64 instruction)
}
-uint64 NMD::extract_u_3_2_1_0__s2(uint64 instruction)
+static uint64 extract_u_3_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 4) << 2;
@@ -1145,7 +1125,7 @@ uint64 NMD::extract_u_3_2_1_0__s2(uint64 instruction)
}
-uint64 NMD::extract_cofun_25_24_23(uint64 instruction)
+static uint64 extract_cofun_25_24_23(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 23);
@@ -1153,7 +1133,7 @@ uint64 NMD::extract_cofun_25_24_23(uint64 instruction)
}
-uint64 NMD::extract_u_2_1_0__s2(uint64 instruction)
+static uint64 extract_u_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 3) << 2;
@@ -1161,7 +1141,7 @@ uint64 NMD::extract_u_2_1_0__s2(uint64 instruction)
}
-uint64 NMD::extract_rd3_3_2_1(uint64 instruction)
+static uint64 extract_rd3_3_2_1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 1, 3);
@@ -1169,7 +1149,7 @@ uint64 NMD::extract_rd3_3_2_1(uint64 instruction)
}
-uint64 NMD::extract_sa_15_14_13_12(uint64 instruction)
+static uint64 extract_sa_15_14_13_12(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 12, 4);
@@ -1177,7 +1157,7 @@ uint64 NMD::extract_sa_15_14_13_12(uint64 instruction)
}
-uint64 NMD::extract_rt_25_24_23_22_21(uint64 instruction)
+static uint64 extract_rt_25_24_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 5);
@@ -1185,7 +1165,7 @@ uint64 NMD::extract_rt_25_24_23_22_21(uint64 instruction)
}
-uint64 NMD::extract_ru_7_6_5_4_3(uint64 instruction)
+static uint64 extract_ru_7_6_5_4_3(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 5);
@@ -1193,7 +1173,7 @@ uint64 NMD::extract_ru_7_6_5_4_3(uint64 instruction)
}
-uint64 NMD::extract_u_17_to_0(uint64 instruction)
+static uint64 extract_u_17_to_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 18);
@@ -1201,7 +1181,7 @@ uint64 NMD::extract_u_17_to_0(uint64 instruction)
}
-uint64 NMD::extract_rsz4_4_2_1_0(uint64 instruction)
+static uint64 extract_rsz4_4_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 3);
@@ -1210,7 +1190,7 @@ uint64 NMD::extract_rsz4_4_2_1_0(uint64 instruction)
}
-int64 NMD::extract_s__se21_0_20_to_1_s1(uint64 instruction)
+static int64 extract_s__se21_0_20_to_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 21;
@@ -1220,7 +1200,7 @@ int64 NMD::extract_s__se21_0_20_to_1_s1(uint64 instruction)
}
-uint64 NMD::extract_op_25_to_3(uint64 instruction)
+static uint64 extract_op_25_to_3(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 23);
@@ -1228,7 +1208,7 @@ uint64 NMD::extract_op_25_to_3(uint64 instruction)
}
-uint64 NMD::extract_rs4_4_2_1_0(uint64 instruction)
+static uint64 extract_rs4_4_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 3);
@@ -1237,7 +1217,7 @@ uint64 NMD::extract_rs4_4_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_bit_23_22_21(uint64 instruction)
+static uint64 extract_bit_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 3);
@@ -1245,7 +1225,7 @@ uint64 NMD::extract_bit_23_22_21(uint64 instruction)
}
-uint64 NMD::extract_rt_41_40_39_38_37(uint64 instruction)
+static uint64 extract_rt_41_40_39_38_37(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 37, 5);
@@ -1253,7 +1233,7 @@ uint64 NMD::extract_rt_41_40_39_38_37(uint64 instruction)
}
-int64 NMD::extract_shift__se5_21_20_19_18_17_16(uint64 instruction)
+static int64 extract_shift__se5_21_20_19_18_17_16(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 16, 6);
@@ -1262,7 +1242,7 @@ int64 NMD::extract_shift__se5_21_20_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_rd2_3_8(uint64 instruction)
+static uint64 extract_rd2_3_8(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 1) << 1;
@@ -1271,7 +1251,7 @@ uint64 NMD::extract_rd2_3_8(uint64 instruction)
}
-uint64 NMD::extract_code_17_to_0(uint64 instruction)
+static uint64 extract_code_17_to_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 18);
@@ -1279,7 +1259,7 @@ uint64 NMD::extract_code_17_to_0(uint64 instruction)
}
-uint64 NMD::extract_size_20_19_18_17_16(uint64 instruction)
+static uint64 extract_size_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
@@ -1287,7 +1267,7 @@ uint64 NMD::extract_size_20_19_18_17_16(uint64 instruction)
}
-int64 NMD::extract_s__se8_15_7_6_5_4_3_2_s2(uint64 instruction)
+static int64 extract_s__se8_15_7_6_5_4_3_2_s2(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 2, 6) << 2;
@@ -1297,7 +1277,7 @@ int64 NMD::extract_s__se8_15_7_6_5_4_3_2_s2(uint64 instruction)
}
-uint64 NMD::extract_u_15_to_0(uint64 instruction)
+static uint64 extract_u_15_to_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 16);
@@ -1305,7 +1285,7 @@ uint64 NMD::extract_u_15_to_0(uint64 instruction)
}
-uint64 NMD::extract_fs_20_19_18_17_16(uint64 instruction)
+static uint64 extract_fs_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
@@ -1313,7 +1293,7 @@ uint64 NMD::extract_fs_20_19_18_17_16(uint64 instruction)
}
-int64 NMD::extract_s__se8_15_7_6_5_4_3_2_1_0(uint64 instruction)
+static int64 extract_s__se8_15_7_6_5_4_3_2_1_0(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 8);
@@ -1323,7 +1303,7 @@ int64 NMD::extract_s__se8_15_7_6_5_4_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_stype_20_19_18_17_16(uint64 instruction)
+static uint64 extract_stype_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
@@ -1331,7 +1311,7 @@ uint64 NMD::extract_stype_20_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_rtl_11(uint64 instruction)
+static uint64 extract_rtl_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 9, 1);
@@ -1339,7 +1319,7 @@ uint64 NMD::extract_rtl_11(uint64 instruction)
}
-uint64 NMD::extract_hs_20_19_18_17_16(uint64 instruction)
+static uint64 extract_hs_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
@@ -1347,7 +1327,7 @@ uint64 NMD::extract_hs_20_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_sel_13_12_11(uint64 instruction)
+static uint64 extract_sel_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 3);
@@ -1355,7 +1335,7 @@ uint64 NMD::extract_sel_13_12_11(uint64 instruction)
}
-uint64 NMD::extract_lsb_4_3_2_1_0(uint64 instruction)
+static uint64 extract_lsb_4_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 5);
@@ -1363,7 +1343,7 @@ uint64 NMD::extract_lsb_4_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_gp_2(uint64 instruction)
+static uint64 extract_gp_2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 2, 1);
@@ -1371,7 +1351,7 @@ uint64 NMD::extract_gp_2(uint64 instruction)
}
-uint64 NMD::extract_rt3_9_8_7(uint64 instruction)
+static uint64 extract_rt3_9_8_7(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 7, 3);
@@ -1379,7 +1359,7 @@ uint64 NMD::extract_rt3_9_8_7(uint64 instruction)
}
-uint64 NMD::extract_ft_25_24_23_22_21(uint64 instruction)
+static uint64 extract_ft_25_24_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 5);
@@ -1387,7 +1367,7 @@ uint64 NMD::extract_ft_25_24_23_22_21(uint64 instruction)
}
-uint64 NMD::extract_u_17_16_15_14_13_12_11(uint64 instruction)
+static uint64 extract_u_17_16_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 7);
@@ -1395,7 +1375,7 @@ uint64 NMD::extract_u_17_16_15_14_13_12_11(uint64 instruction)
}
-uint64 NMD::extract_cs_20_19_18_17_16(uint64 instruction)
+static uint64 extract_cs_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
@@ -1403,7 +1383,7 @@ uint64 NMD::extract_cs_20_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_rt4_9_7_6_5(uint64 instruction)
+static uint64 extract_rt4_9_7_6_5(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 5, 3);
@@ -1412,7 +1392,7 @@ uint64 NMD::extract_rt4_9_7_6_5(uint64 instruction)
}
-uint64 NMD::extract_msbt_10_9_8_7_6(uint64 instruction)
+static uint64 extract_msbt_10_9_8_7_6(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 6, 5);
@@ -1420,7 +1400,7 @@ uint64 NMD::extract_msbt_10_9_8_7_6(uint64 instruction)
}
-uint64 NMD::extract_u_5_4_3_2_1_0__s2(uint64 instruction)
+static uint64 extract_u_5_4_3_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 6) << 2;
@@ -1428,7 +1408,7 @@ uint64 NMD::extract_u_5_4_3_2_1_0__s2(uint64 instruction)
}
-uint64 NMD::extract_sa_15_14_13(uint64 instruction)
+static uint64 extract_sa_15_14_13(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 13, 3);
@@ -1436,7 +1416,7 @@ uint64 NMD::extract_sa_15_14_13(uint64 instruction)
}
-int64 NMD::extract_s__se14_0_13_to_1_s1(uint64 instruction)
+static int64 extract_s__se14_0_13_to_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 14;
@@ -1446,7 +1426,7 @@ int64 NMD::extract_s__se14_0_13_to_1_s1(uint64 instruction)
}
-uint64 NMD::extract_rs3_6_5_4(uint64 instruction)
+static uint64 extract_rs3_6_5_4(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 4, 3);
@@ -1454,7 +1434,7 @@ uint64 NMD::extract_rs3_6_5_4(uint64 instruction)
}
-uint64 NMD::extract_u_31_to_0__s32(uint64 instruction)
+static uint64 extract_u_31_to_0__s32(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 32) << 32;
@@ -1462,7 +1442,7 @@ uint64 NMD::extract_u_31_to_0__s32(uint64 instruction)
}
-uint64 NMD::extract_shift_10_9_8_7_6(uint64 instruction)
+static uint64 extract_shift_10_9_8_7_6(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 6, 5);
@@ -1470,7 +1450,7 @@ uint64 NMD::extract_shift_10_9_8_7_6(uint64 instruction)
}
-uint64 NMD::extract_cs_25_24_23_22_21(uint64 instruction)
+static uint64 extract_cs_25_24_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 5);
@@ -1478,7 +1458,7 @@ uint64 NMD::extract_cs_25_24_23_22_21(uint64 instruction)
}
-uint64 NMD::extract_shiftx_11_10_9_8_7_6(uint64 instruction)
+static uint64 extract_shiftx_11_10_9_8_7_6(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 6, 6);
@@ -1486,7 +1466,7 @@ uint64 NMD::extract_shiftx_11_10_9_8_7_6(uint64 instruction)
}
-uint64 NMD::extract_rt_9_8_7_6_5(uint64 instruction)
+static uint64 extract_rt_9_8_7_6_5(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 5, 5);
@@ -1494,7 +1474,7 @@ uint64 NMD::extract_rt_9_8_7_6_5(uint64 instruction)
}
-uint64 NMD::extract_op_25_24_23_22_21(uint64 instruction)
+static uint64 extract_op_25_24_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 5);
@@ -1502,7 +1482,7 @@ uint64 NMD::extract_op_25_24_23_22_21(uint64 instruction)
}
-uint64 NMD::extract_u_6_5_4_3_2_1_0__s2(uint64 instruction)
+static uint64 extract_u_6_5_4_3_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 7) << 2;
@@ -1510,7 +1490,7 @@ uint64 NMD::extract_u_6_5_4_3_2_1_0__s2(uint64 instruction)
}
-uint64 NMD::extract_bit_16_15_14_13_12_11(uint64 instruction)
+static uint64 extract_bit_16_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 6);
@@ -1518,7 +1498,7 @@ uint64 NMD::extract_bit_16_15_14_13_12_11(uint64 instruction)
}
-uint64 NMD::extract_mask_20_19_18_17_16_15_14(uint64 instruction)
+static uint64 extract_mask_20_19_18_17_16_15_14(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 14, 7);
@@ -1526,7 +1506,7 @@ uint64 NMD::extract_mask_20_19_18_17_16_15_14(uint64 instruction)
}
-uint64 NMD::extract_eu_3_2_1_0(uint64 instruction)
+static uint64 extract_eu_3_2_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 4);
@@ -1534,7 +1514,7 @@ uint64 NMD::extract_eu_3_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_u_7_6_5_4__s4(uint64 instruction)
+static uint64 extract_u_7_6_5_4__s4(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 4, 4) << 4;
@@ -1542,7 +1522,7 @@ uint64 NMD::extract_u_7_6_5_4__s4(uint64 instruction)
}
-int64 NMD::extract_s__se8_15_7_6_5_4_3_s3(uint64 instruction)
+static int64 extract_s__se8_15_7_6_5_4_3_s3(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 3, 5) << 3;
@@ -1552,7 +1532,7 @@ int64 NMD::extract_s__se8_15_7_6_5_4_3_s3(uint64 instruction)
}
-uint64 NMD::extract_ft_15_14_13_12_11(uint64 instruction)
+static uint64 extract_ft_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 5);
@@ -1560,7 +1540,7 @@ uint64 NMD::extract_ft_15_14_13_12_11(uint64 instruction)
}
-int64 NMD::extract_s__se31_15_to_0_31_to_16(uint64 instruction)
+static int64 extract_s__se31_15_to_0_31_to_16(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 16) << 16;
@@ -1570,7 +1550,7 @@ int64 NMD::extract_s__se31_15_to_0_31_to_16(uint64 instruction)
}
-uint64 NMD::extract_u_20_19_18_17_16_15_14_13(uint64 instruction)
+static uint64 extract_u_20_19_18_17_16_15_14_13(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 13, 8);
@@ -1578,7 +1558,7 @@ uint64 NMD::extract_u_20_19_18_17_16_15_14_13(uint64 instruction)
}
-uint64 NMD::extract_u_17_to_2__s2(uint64 instruction)
+static uint64 extract_u_17_to_2__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 2, 16) << 2;
@@ -1586,7 +1566,7 @@ uint64 NMD::extract_u_17_to_2__s2(uint64 instruction)
}
-uint64 NMD::extract_rd_15_14_13_12_11(uint64 instruction)
+static uint64 extract_rd_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 5);
@@ -1594,7 +1574,7 @@ uint64 NMD::extract_rd_15_14_13_12_11(uint64 instruction)
}
-uint64 NMD::extract_c0s_20_19_18_17_16(uint64 instruction)
+static uint64 extract_c0s_20_19_18_17_16(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 16, 5);
@@ -1602,7 +1582,7 @@ uint64 NMD::extract_c0s_20_19_18_17_16(uint64 instruction)
}
-uint64 NMD::extract_code_1_0(uint64 instruction)
+static uint64 extract_code_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 2);
@@ -1610,7 +1590,7 @@ uint64 NMD::extract_code_1_0(uint64 instruction)
}
-int64 NMD::extract_s__se25_0_24_to_1_s1(uint64 instruction)
+static int64 extract_s__se25_0_24_to_1_s1(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 1) << 25;
@@ -1620,7 +1600,7 @@ int64 NMD::extract_s__se25_0_24_to_1_s1(uint64 instruction)
}
-uint64 NMD::extract_u_1_0(uint64 instruction)
+static uint64 extract_u_1_0(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 2);
@@ -1628,7 +1608,7 @@ uint64 NMD::extract_u_1_0(uint64 instruction)
}
-uint64 NMD::extract_u_3_8__s2(uint64 instruction)
+static uint64 extract_u_3_8__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 3, 1) << 3;
@@ -1637,7 +1617,7 @@ uint64 NMD::extract_u_3_8__s2(uint64 instruction)
}
-uint64 NMD::extract_fd_15_14_13_12_11(uint64 instruction)
+static uint64 extract_fd_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 5);
@@ -1645,7 +1625,7 @@ uint64 NMD::extract_fd_15_14_13_12_11(uint64 instruction)
}
-uint64 NMD::extract_u_4_3_2_1_0__s2(uint64 instruction)
+static uint64 extract_u_4_3_2_1_0__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 5) << 2;
@@ -1653,7 +1633,7 @@ uint64 NMD::extract_u_4_3_2_1_0__s2(uint64 instruction)
}
-uint64 NMD::extract_rtz4_9_7_6_5(uint64 instruction)
+static uint64 extract_rtz4_9_7_6_5(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 5, 3);
@@ -1662,7 +1642,7 @@ uint64 NMD::extract_rtz4_9_7_6_5(uint64 instruction)
}
-uint64 NMD::extract_sel_15_14_13_12_11(uint64 instruction)
+static uint64 extract_sel_15_14_13_12_11(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 11, 5);
@@ -1670,7 +1650,7 @@ uint64 NMD::extract_sel_15_14_13_12_11(uint64 instruction)
}
-uint64 NMD::extract_ct_25_24_23_22_21(uint64 instruction)
+static uint64 extract_ct_25_24_23_22_21(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 21, 5);
@@ -1678,7 +1658,7 @@ uint64 NMD::extract_ct_25_24_23_22_21(uint64 instruction)
}
-uint64 NMD::extract_u_20_to_2__s2(uint64 instruction)
+static uint64 extract_u_20_to_2__s2(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 2, 19) << 2;
@@ -1686,7 +1666,7 @@ uint64 NMD::extract_u_20_to_2__s2(uint64 instruction)
}
-int64 NMD::extract_s__se3_4_2_1_0(uint64 instruction)
+static int64 extract_s__se3_4_2_1_0(uint64 instruction)
{
int64 value = 0;
value |= extract_bits(instruction, 0, 3);
@@ -1696,7 +1676,7 @@ int64 NMD::extract_s__se3_4_2_1_0(uint64 instruction)
}
-uint64 NMD::extract_u_3_2_1_0__s1(uint64 instruction)
+static uint64 extract_u_3_2_1_0__s1(uint64 instruction)
{
uint64 value = 0;
value |= extract_bits(instruction, 0, 4) << 1;
@@ -89,150 +89,6 @@ private:
int Disassemble(const uint16 *data, std::string & dis,
TABLE_ENTRY_TYPE & type, const Pool *table, int table_size);
- uint64 renumber_registers(uint64 index, uint64 *register_list,
- size_t register_list_size);
-
- uint64 decode_gpr_gpr4(uint64 d);
- uint64 decode_gpr_gpr4_zero(uint64 d);
- uint64 decode_gpr_gpr3(uint64 d);
- uint64 decode_gpr_gpr3_src_store(uint64 d);
- uint64 decode_gpr_gpr2_reg1(uint64 d);
- uint64 decode_gpr_gpr2_reg2(uint64 d);
- uint64 decode_gpr_gpr1(uint64 d);
-
- uint64 copy(uint64 d);
- int64 copy(int64 d);
- int64 neg_copy(uint64 d);
- int64 neg_copy(int64 d);
- uint64 encode_rs3_and_check_rs3_ge_rt3(uint64 d);
- uint64 encode_rs3_and_check_rs3_lt_rt3(uint64 d);
- uint64 encode_s_from_address(uint64 d);
- uint64 encode_u_from_address(uint64 d);
- uint64 encode_s_from_s_hi(uint64 d);
- uint64 encode_count3_from_count(uint64 d);
- uint64 encode_shift3_from_shift(uint64 d);
- int64 encode_eu_from_s_li16(uint64 d);
- uint64 encode_msbd_from_size(uint64 d);
- uint64 encode_eu_from_u_andi16(uint64 d);
-
- uint64 encode_msbd_from_pos_and_size(uint64 d);
-
- uint64 encode_rt1_from_rt(uint64 d);
- uint64 encode_lsb_from_pos_and_size(uint64 d);
-
- std::string save_restore_list(uint64 rt, uint64 count, uint64 gp);
-
- std::string GPR(uint64 reg);
- std::string FPR(uint64 reg);
- std::string AC(uint64 reg);
- std::string IMMEDIATE(uint64 value);
- std::string IMMEDIATE(int64 value);
- std::string CPR(uint64 reg);
- std::string ADDRESS(uint64 value, int instruction_size);
-
- int64 extract_s__se3_4_2_1_0(uint64 instruction);
- int64 extract_s__se7_0_6_5_4_3_2_1_s1(uint64 instruction);
- int64 extract_s__se8_15_7_6_5_4_3_s3(uint64 instruction);
- int64 extract_s__se8_15_7_6_5_4_3_2_s2(uint64 instruction);
- int64 extract_s__se8_15_7_6_5_4_3_2_1_0(uint64 instruction);
- int64 extract_s__se9_20_19_18_17_16_15_14_13_12_11(uint64 instruction);
- int64 extract_s__se10_0_9_8_7_6_5_4_3_2_1_s1(uint64 instruction);
- int64 extract_s__se11_0_10_9_8_7_6_5_4_3_2_1_0_s1(uint64 instruction);
- int64 extract_s__se14_0_13_to_1_s1(uint64 instruction);
- int64 extract_s__se21_0_20_to_1_s1(uint64 instruction);
- int64 extract_s__se25_0_24_to_1_s1(uint64 instruction);
- int64 extract_s__se31_15_to_0_31_to_16(uint64 instruction);
- int64 extract_s__se31_0_11_to_2_20_to_12_s12(uint64 instruction);
- int64 extract_shift__se5_21_20_19_18_17_16(uint64 instruction);
-
- uint64 extract_ac_15_14(uint64 instruction);
- uint64 extract_bit_16_15_14_13_12_11(uint64 instruction);
- uint64 extract_bit_23_22_21(uint64 instruction);
- uint64 extract_c0s_20_19_18_17_16(uint64 instruction);
- uint64 extract_code_17_to_0(uint64 instruction);
- uint64 extract_code_18_to_0(uint64 instruction);
- uint64 extract_code_1_0(uint64 instruction);
- uint64 extract_code_2_1_0(uint64 instruction);
- uint64 extract_code_25_24_23_22_21_20_19_18_17_16(uint64 instruction);
- uint64 extract_cofun_25_24_23(uint64 instruction);
- uint64 extract_count3_14_13_12(uint64 instruction);
- uint64 extract_count_3_2_1_0(uint64 instruction);
- uint64 extract_count_19_18_17_16(uint64 instruction);
- uint64 extract_cs_20_19_18_17_16(uint64 instruction);
- uint64 extract_cs_25_24_23_22_21(uint64 instruction);
- uint64 extract_ct_25_24_23_22_21(uint64 instruction);
- uint64 extract_eu_3_2_1_0(uint64 instruction);
- uint64 extract_eu_6_5_4_3_2_1_0(uint64 instruction);
- uint64 extract_fd_15_14_13_12_11(uint64 instruction);
- uint64 extract_fs_20_19_18_17_16(uint64 instruction);
- uint64 extract_ft_15_14_13_12_11(uint64 instruction);
- uint64 extract_ft_25_24_23_22_21(uint64 instruction);
- uint64 extract_gp_2(uint64 instruction);
- uint64 extract_hint_25_24_23_22_21(uint64 instruction);
- uint64 extract_hs_20_19_18_17_16(uint64 instruction);
- uint64 extract_lsb_4_3_2_1_0(uint64 instruction);
- uint64 extract_mask_20_19_18_17_16_15_14(uint64 instruction);
- uint64 extract_msbt_10_9_8_7_6(uint64 instruction);
- uint64 extract_op_25_24_23_22_21(uint64 instruction);
- uint64 extract_op_25_to_3(uint64 instruction);
- uint64 extract_rdl_25_24(uint64 instruction);
- uint64 extract_rd2_3_8(uint64 instruction);
- uint64 extract_rd3_3_2_1(uint64 instruction);
- uint64 extract_rd_15_14_13_12_11(uint64 instruction);
- uint64 extract_rs3_6_5_4(uint64 instruction);
- uint64 extract_rs4_4_2_1_0(uint64 instruction);
- uint64 extract_rs_4_3_2_1_0(uint64 instruction);
- uint64 extract_rs_20_19_18_17_16(uint64 instruction);
- uint64 extract_rsz4_4_2_1_0(uint64 instruction);
- uint64 extract_rtl_11(uint64 instruction);
- uint64 extract_rt3_9_8_7(uint64 instruction);
- uint64 extract_rt4_9_7_6_5(uint64 instruction);
- uint64 extract_rt_25_24_23_22_21(uint64 instruction);
- uint64 extract_rt_41_40_39_38_37(uint64 instruction);
- uint64 extract_rt_9_8_7_6_5(uint64 instruction);
- uint64 extract_rtz3_9_8_7(uint64 instruction);
- uint64 extract_rtz4_27_26_25_23_22_21(uint64 instruction);
- uint64 extract_rtz4_9_7_6_5(uint64 instruction);
- uint64 extract_ru_7_6_5_4_3(uint64 instruction);
- uint64 extract_sa_15_14_13_12_11(uint64 instruction);
- uint64 extract_sa_15_14_13_12(uint64 instruction);
- uint64 extract_sa_15_14_13(uint64 instruction);
- uint64 extract_sel_13_12_11(uint64 instruction);
- uint64 extract_sel_15_14_13_12_11(uint64 instruction);
- uint64 extract_shift3_2_1_0(uint64 instruction);
- uint64 extract_shift_4_3_2_1_0(uint64 instruction);
- uint64 extract_shift_5_4_3_2_1_0(uint64 instruction);
- uint64 extract_shift_20_19_18_17_16(uint64 instruction);
- uint64 extract_shift_10_9_8_7_6(uint64 instruction);
- uint64 extract_shiftx_11_10_9_8_7_6(uint64 instruction);
- uint64 extract_shiftx_10_9_8_7__s1(uint64 instruction);
- uint64 extract_size_20_19_18_17_16(uint64 instruction);
- uint64 extract_stripe_6(uint64 instruction);
- uint64 extract_stype_20_19_18_17_16(uint64 instruction);
- uint64 extract_u2_10_9(uint64 instruction);
- uint64 extract_u_11_10_9_8_7_6_5_4_3_2_1_0(uint64 instruction);
- uint64 extract_u_15_to_0(uint64 instruction);
- uint64 extract_u_17_to_0(uint64 instruction);
- uint64 extract_u_1_0(uint64 instruction);
- uint64 extract_u_3_2_1_0__s1(uint64 instruction);
- uint64 extract_u_2_1_0__s2(uint64 instruction);
- uint64 extract_u_3_2_1_0__s2(uint64 instruction);
- uint64 extract_u_4_3_2_1_0__s2(uint64 instruction);
- uint64 extract_u_5_4_3_2_1_0__s2(uint64 instruction);
- uint64 extract_u_6_5_4_3_2_1_0__s2(uint64 instruction);
- uint64 extract_u_31_to_0__s32(uint64 instruction);
- uint64 extract_u_10(uint64 instruction);
- uint64 extract_u_17_16_15_14_13_12_11(uint64 instruction);
- uint64 extract_u_20_19_18_17_16_15_14_13(uint64 instruction);
- uint64 extract_u_17_to_1__s1(uint64 instruction);
- uint64 extract_u_2_1__s1(uint64 instruction);
- uint64 extract_u_17_to_2__s2(uint64 instruction);
- uint64 extract_u_20_to_2__s2(uint64 instruction);
- uint64 extract_u_20_to_3__s3(uint64 instruction);
- uint64 extract_u_3_8__s2(uint64 instruction);
- uint64 extract_u_11_10_9_8_7_6_5_4_3__s3(uint64 instruction);
- uint64 extract_u_7_6_5_4__s4(uint64 instruction);
-
bool ADDIU_32__cond(uint64 instruction);
bool ADDIU_RS5__cond(uint64 instruction);
bool BALRSC_cond(uint64 instruction);
Helper methods from NMD class like NMD::renumber_registers, NMD::decode_gpr_gpr4... etc. are removed from the class. They're now declared global static functions. Following helper methods have been deleted because they're not used by the nanomips disassembler: - NMD::encode_msbd_from_pos_and_size, - NMD::encode_s_from_s_hi, - NMD::neg_copy Signed-off-by: Milica Lazarevic <milica.lazarevic@syrmia.com> --- disas/nanomips.cpp | 322 +++++++++++++++++++++------------------------ disas/nanomips.h | 144 -------------------- 2 files changed, 151 insertions(+), 315 deletions(-)