All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/5] disas: nanoMIPS: Clean up several issues
@ 2018-12-17 17:10 Aleksandar Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 1/5] disas: nanoMIPS: Fix preamble text Aleksandar Markovic
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Aleksandar Markovic @ 2018-12-17 17:10 UTC (permalink / raw)
  To: qemu-devel, smarkovic, amarkovic

From: Aleksandar Markovic <amarkovic@wavecomp.com>

Clean up several misc issues in nanoMIPS disassembler. There are
more issues to be cleaned, and this is meant to be just the first
phase. Complete cleanup should happen over the course of next
few months.

v1->v2:

  - patch 5 was somehow lost in v1, now should be fine.

Aleksandar Markovic (5):
  disas: nanoMIPS: Fix preamble text
  disas: nanoMIPS: Remove functions that are not used
  disas: nanoMIPS: Fix a function misnomer
  disas: nanoMIPS: Fix order of some invocations
  disas: nanoMIPS: Name some function in a more descriptive way

 disas/nanomips.cpp | 1111 ++++++++++++++++++--------------------------
 disas/nanomips.h   |   66 +--
 2 files changed, 473 insertions(+), 704 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH v2 1/5] disas: nanoMIPS: Fix preamble text
  2018-12-17 17:10 [Qemu-devel] [PATCH v2 0/5] disas: nanoMIPS: Clean up several issues Aleksandar Markovic
@ 2018-12-17 17:10 ` Aleksandar Markovic
  2018-12-18 10:43   ` Stefan Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 2/5] disas: nanoMIPS: Remove functions that are not used Aleksandar Markovic
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Aleksandar Markovic @ 2018-12-17 17:10 UTC (permalink / raw)
  To: qemu-devel, smarkovic, amarkovic

From: Aleksandar Markovic <amarkovic@wavecomp.com>

Fix several mistakes in preambles of nanomips disassembler source
files.

Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
 disas/nanomips.cpp | 7 ++++---
 disas/nanomips.h   | 7 ++++---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
index 1238c2ff33..f9ef0a25f4 100644
--- a/disas/nanomips.cpp
+++ b/disas/nanomips.cpp
@@ -1,13 +1,13 @@
 /*
  *  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,
@@ -17,6 +17,7 @@
  *
  *  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" {
diff --git a/disas/nanomips.h b/disas/nanomips.h
index 84cc9a6dfc..3df138d63f 100644
--- a/disas/nanomips.h
+++ b/disas/nanomips.h
@@ -1,13 +1,13 @@
 /*
  *  Header 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,
@@ -17,6 +17,7 @@
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
  */
 
 #ifndef NANOMIPS_DISASSEMBLER_H
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH v2 2/5] disas: nanoMIPS: Remove functions that are not used
  2018-12-17 17:10 [Qemu-devel] [PATCH v2 0/5] disas: nanoMIPS: Clean up several issues Aleksandar Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 1/5] disas: nanoMIPS: Fix preamble text Aleksandar Markovic
@ 2018-12-17 17:10 ` Aleksandar Markovic
  2018-12-18 13:07   ` Stefan Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 3/5] disas: nanoMIPS: Fix a function misnomer Aleksandar Markovic
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Aleksandar Markovic @ 2018-12-17 17:10 UTC (permalink / raw)
  To: qemu-devel, smarkovic, amarkovic

From: Aleksandar Markovic <amarkovic@wavecomp.com>

Some functions were not used at all. Compiler doesn't complain
since they are class memebers. Remove them - no future usage is
planned.

Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
 disas/nanomips.cpp | 208 ---------------------------------------------
 disas/nanomips.h   |  25 ------
 2 files changed, 233 deletions(-)

diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
index f9ef0a25f4..935c2dee3c 100644
--- a/disas/nanomips.cpp
+++ b/disas/nanomips.cpp
@@ -852,23 +852,6 @@ uint64 NMD::extract_stripe_6(uint64 instruction)
 }
 
 
-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;
@@ -919,14 +902,6 @@ uint64 NMD::extract_shift_5_4_3_2_1_0(uint64 instruction)
 }
 
 
-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;
@@ -943,15 +918,6 @@ uint64 NMD::extract_code_2_1_0(uint64 instruction)
 }
 
 
-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;
@@ -976,14 +942,6 @@ uint64 NMD::extr_uil3il3bs18Fmsb20(uint64 instruction)
 }
 
 
-uint64 NMD::extr_xil12il0bs1Fmsb0(uint64 instruction)
-{
-    uint64 value = 0;
-    value |= extract_bits(instruction, 12, 1);
-    return value;
-}
-
-
 uint64 NMD::extr_uil0il2bs4Fmsb5(uint64 instruction)
 {
     uint64 value = 0;
@@ -1008,14 +966,6 @@ uint64 NMD::extr_uil0il2bs3Fmsb4(uint64 instruction)
 }
 
 
-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;
@@ -1048,22 +998,6 @@ uint64 NMD::extract_ru_7_6_5_4_3(uint64 instruction)
 }
 
 
-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;
@@ -1072,15 +1006,6 @@ uint64 NMD::extract_u_17_to_0(uint64 instruction)
 }
 
 
-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;
@@ -1090,14 +1015,6 @@ uint64 NMD::extract_rsz4_4_2_1_0(uint64 instruction)
 }
 
 
-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 value = 0;
@@ -1150,15 +1067,6 @@ int64 NMD::extract_shift_21_20_19_18_17_16(uint64 instruction)
 }
 
 
-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;
@@ -1168,14 +1076,6 @@ uint64 NMD::extract_rd2_3_8(uint64 instruction)
 }
 
 
-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;
@@ -1184,14 +1084,6 @@ uint64 NMD::extract_code_17_to_0(uint64 instruction)
 }
 
 
-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;
@@ -1260,15 +1152,6 @@ uint64 NMD::extract_hs_20_19_18_17_16(uint64 instruction)
 }
 
 
-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;
@@ -1285,14 +1168,6 @@ uint64 NMD::extract_lsb_4_3_2_1_0(uint64 instruction)
 }
 
 
-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;
@@ -1333,14 +1208,6 @@ uint64 NMD::extract_cs_20_19_18_17_16(uint64 instruction)
 }
 
 
-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;
@@ -1366,14 +1233,6 @@ uint64 NMD::extr_uil0il2bs6Fmsb7(uint64 instruction)
 }
 
 
-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;
@@ -1464,15 +1323,6 @@ uint64 NMD::extract_bit_16_15_14_13_12_11(uint64 instruction)
 }
 
 
-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;
@@ -1533,22 +1383,6 @@ uint64 NMD::extract_u_20_19_18_17_16_15_14_13(uint64 instruction)
 }
 
 
-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 value = 0;
@@ -1591,15 +1425,6 @@ int64 NMD::extr_sil0il25bs1_il1il1bs24Tmsb25(uint64 instruction)
 }
 
 
-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;
@@ -1617,15 +1442,6 @@ uint64 NMD::extr_uil3il3bs1_il8il2bs1Fmsb3(uint64 instruction)
 }
 
 
-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 value = 0;
@@ -1634,14 +1450,6 @@ uint64 NMD::extract_fd_10_9_8_7_6(uint64 instruction)
 }
 
 
-uint64 NMD::extr_xil6il0bs3Fmsb2(uint64 instruction)
-{
-    uint64 value = 0;
-    value |= extract_bits(instruction, 6, 3);
-    return value;
-}
-
-
 uint64 NMD::extr_uil0il2bs5Fmsb6(uint64 instruction)
 {
     uint64 value = 0;
@@ -1675,14 +1483,6 @@ uint64 NMD::extract_ct_25_24_23_22_21(uint64 instruction)
 }
 
 
-uint64 NMD::extr_xil11il0bs1Fmsb0(uint64 instruction)
-{
-    uint64 value = 0;
-    value |= extract_bits(instruction, 11, 1);
-    return value;
-}
-
-
 uint64 NMD::extr_uil2il2bs19Fmsb20(uint64 instruction)
 {
     uint64 value = 0;
@@ -1709,14 +1509,6 @@ uint64 NMD::extr_uil0il1bs4Fmsb4(uint64 instruction)
 }
 
 
-uint64 NMD::extr_xil9il0bs2Fmsb1(uint64 instruction)
-{
-    uint64 value = 0;
-    value |= extract_bits(instruction, 9, 2);
-    return value;
-}
-
-
 
 bool NMD::ADDIU_32__cond(uint64 instruction)
 {
diff --git a/disas/nanomips.h b/disas/nanomips.h
index 3df138d63f..611eeebaae 100644
--- a/disas/nanomips.h
+++ b/disas/nanomips.h
@@ -245,31 +245,6 @@ private:
     uint64 extr_uil3il3bs1_il8il2bs1Fmsb3(uint64 instruction);
     uint64 extr_uil3il3bs9Fmsb11(uint64 instruction);
     uint64 extr_uil4il4bs4Fmsb7(uint64 instruction);
-    uint64 extr_xil0il0bs12Fmsb11(uint64 instruction);
-    uint64 extr_xil0il0bs3_il4il0bs1Fmsb2(uint64 instruction);
-    uint64 extr_xil10il0bs1Fmsb0(uint64 instruction);
-    uint64 extr_xil10il0bs1_il11il0bs5Fmsb4(uint64 instruction);
-    uint64 extr_xil10il0bs1_il14il0bs2Fmsb1(uint64 instruction);
-    uint64 extr_xil10il0bs4_il22il0bs4Fmsb3(uint64 instruction);
-    uint64 extr_xil10il0bs6Fmsb5(uint64 instruction);
-    uint64 extr_xil11il0bs1Fmsb0(uint64 instruction);
-    uint64 extr_xil11il0bs5Fmsb4(uint64 instruction);
-    uint64 extr_xil12il0bs1Fmsb0(uint64 instruction);
-    uint64 extr_xil14il0bs1_il15il0bs1Fmsb0(uint64 instruction);
-    uint64 extr_xil14il0bs2Fmsb1(uint64 instruction);
-    uint64 extr_xil15il0bs1Fmsb0(uint64 instruction);
-    uint64 extr_xil16il0bs10Fmsb9(uint64 instruction);
-    uint64 extr_xil16il0bs5Fmsb4(uint64 instruction);
-    uint64 extr_xil17il0bs1Fmsb0(uint64 instruction);
-    uint64 extr_xil17il0bs9Fmsb8(uint64 instruction);
-    uint64 extr_xil21il0bs5Fmsb4(uint64 instruction);
-    uint64 extr_xil24il0bs1Fmsb0(uint64 instruction);
-    uint64 extr_xil2il0bs1_il15il0bs1Fmsb0(uint64 instruction);
-    uint64 extr_xil6il0bs3Fmsb2(uint64 instruction);
-    uint64 extr_xil6il0bs3_il10il0bs1Fmsb2(uint64 instruction);
-    uint64 extr_xil9il0bs2Fmsb1(uint64 instruction);
-    uint64 extr_xil9il0bs3Fmsb2(uint64 instruction);
-    uint64 extr_xil9il0bs3_il16il0bs5Fmsb4(uint64 instruction);
 
     bool ADDIU_32__cond(uint64 instruction);
     bool ADDIU_RS5__cond(uint64 instruction);
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH v2 3/5] disas: nanoMIPS: Fix a function misnomer
  2018-12-17 17:10 [Qemu-devel] [PATCH v2 0/5] disas: nanoMIPS: Clean up several issues Aleksandar Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 1/5] disas: nanoMIPS: Fix preamble text Aleksandar Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 2/5] disas: nanoMIPS: Remove functions that are not used Aleksandar Markovic
@ 2018-12-17 17:10 ` Aleksandar Markovic
  2018-12-18 13:11   ` Stefan Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 4/5] disas: nanoMIPS: Fix order of some invocations Aleksandar Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 5/5] disas: nanoMIPS: Name some function in a more descriptive way Aleksandar Markovic
  4 siblings, 1 reply; 11+ messages in thread
From: Aleksandar Markovic @ 2018-12-17 17:10 UTC (permalink / raw)
  To: qemu-devel, smarkovic, amarkovic

From: Aleksandar Markovic <amarkovic@wavecomp.com>

Fix wrong name of a function. The convention in this file is that
names of extraction functions should reflect bit patterns they are
extracting.

Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
 disas/nanomips.cpp | 264 ++++++++++++++++++++++-----------------------
 disas/nanomips.h   |   2 +-
 2 files changed, 133 insertions(+), 133 deletions(-)

diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
index 935c2dee3c..cfad1ec845 100644
--- a/disas/nanomips.cpp
+++ b/disas/nanomips.cpp
@@ -1391,7 +1391,7 @@ uint64 NMD::extr_uil2il2bs16Fmsb17(uint64 instruction)
 }
 
 
-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);
@@ -1579,7 +1579,7 @@ bool NMD::PREFE_cond(uint64 instruction)
 
 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;
 }
 
@@ -1727,7 +1727,7 @@ std::string NMD::ACLR(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2039,7 +2039,7 @@ std::string NMD::ADDIUPC_48_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2063,7 +2063,7 @@ std::string NMD::ADDQ_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2087,7 +2087,7 @@ std::string NMD::ADDQ_S_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2112,7 +2112,7 @@ std::string NMD::ADDQ_S_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2137,7 +2137,7 @@ std::string NMD::ADDQH_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2161,7 +2161,7 @@ std::string NMD::ADDQH_R_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2185,7 +2185,7 @@ std::string NMD::ADDQH_R_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2209,7 +2209,7 @@ std::string NMD::ADDQH_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2256,7 +2256,7 @@ std::string NMD::ADDU_16_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2302,7 +2302,7 @@ std::string NMD::ADDU_4X4_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2326,7 +2326,7 @@ std::string NMD::ADDU_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2350,7 +2350,7 @@ std::string NMD::ADDU_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2374,7 +2374,7 @@ std::string NMD::ADDU_S_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2399,7 +2399,7 @@ std::string NMD::ADDU_S_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2424,7 +2424,7 @@ std::string NMD::ADDUH_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2447,7 +2447,7 @@ std::string NMD::ADDUH_R_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -2514,7 +2514,7 @@ std::string NMD::AND_16_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -4721,7 +4721,7 @@ std::string NMD::CMP_UN_S(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -4745,7 +4745,7 @@ std::string NMD::CMPGDU_EQ_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -4769,7 +4769,7 @@ std::string NMD::CMPGDU_LE_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -4793,7 +4793,7 @@ std::string NMD::CMPGDU_LT_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -4817,7 +4817,7 @@ std::string NMD::CMPGU_EQ_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -4841,7 +4841,7 @@ std::string NMD::CMPGU_LE_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -5329,7 +5329,7 @@ std::string NMD::DADDIU_U12_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -5353,7 +5353,7 @@ std::string NMD::DADD(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -5421,7 +5421,7 @@ std::string NMD::DCLZ(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -5445,7 +5445,7 @@ std::string NMD::DDIV(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -5669,7 +5669,7 @@ std::string NMD::DI(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -5741,7 +5741,7 @@ std::string NMD::DIV_S(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -5765,7 +5765,7 @@ std::string NMD::DIVU(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 u2_value = extract_u2_10_9(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
@@ -5905,7 +5905,7 @@ std::string NMD::DMFGC0(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -5929,7 +5929,7 @@ std::string NMD::DMOD(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6065,7 +6065,7 @@ std::string NMD::DMT(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6089,7 +6089,7 @@ std::string NMD::DMUH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6113,7 +6113,7 @@ std::string NMD::DMUHU(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6137,7 +6137,7 @@ std::string NMD::DMUL(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6593,7 +6593,7 @@ std::string NMD::DROTR32(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6691,7 +6691,7 @@ std::string NMD::DSLL32(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6763,7 +6763,7 @@ std::string NMD::DSRA32(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6835,7 +6835,7 @@ std::string NMD::DSRL32(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6859,7 +6859,7 @@ std::string NMD::DSRLV(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -6883,7 +6883,7 @@ std::string NMD::DSUB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -7108,7 +7108,7 @@ 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -7134,7 +7134,7 @@ 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -7449,7 +7449,7 @@ 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -7562,7 +7562,7 @@ std::string NMD::FLOOR_W_S(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8014,7 +8014,7 @@ std::string NMD::LBUE(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8038,7 +8038,7 @@ std::string NMD::LBUX(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8322,7 +8322,7 @@ std::string NMD::LDPC_48_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8346,7 +8346,7 @@ std::string NMD::LDX(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8606,7 +8606,7 @@ std::string NMD::LHUE(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8630,7 +8630,7 @@ std::string NMD::LHUX(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8654,7 +8654,7 @@ std::string NMD::LHUXS(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8678,7 +8678,7 @@ std::string NMD::LHXS(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -8890,7 +8890,7 @@ std::string NMD::LLWPE(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 u2_value = extract_u2_10_9(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
@@ -9384,7 +9384,7 @@ std::string NMD::LWU_U12_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -9408,7 +9408,7 @@ std::string NMD::LWUX(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -9432,7 +9432,7 @@ std::string NMD::LWUXS(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -9480,7 +9480,7 @@ std::string NMD::LWXS_16_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10168,7 +10168,7 @@ std::string NMD::MINA_S(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10192,7 +10192,7 @@ std::string NMD::MOD(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10216,7 +10216,7 @@ std::string NMD::MODSUB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10384,7 +10384,7 @@ std::string NMD::MOVE(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10408,7 +10408,7 @@ std::string NMD::MOVN(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10830,7 +10830,7 @@ std::string NMD::MTTR(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10854,7 +10854,7 @@ std::string NMD::MUH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10878,7 +10878,7 @@ std::string NMD::MUHU(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10948,7 +10948,7 @@ std::string NMD::MUL_D(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -10972,7 +10972,7 @@ std::string NMD::MUL_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11020,7 +11020,7 @@ std::string NMD::MUL_S(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11044,7 +11044,7 @@ std::string NMD::MULEQ_S_W_PHL(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11068,7 +11068,7 @@ std::string NMD::MULEQ_S_W_PHR(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11092,7 +11092,7 @@ std::string NMD::MULEU_S_PH_QBL(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11116,7 +11116,7 @@ std::string NMD::MULEU_S_PH_QBR(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11140,7 +11140,7 @@ std::string NMD::MULQ_RS_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11164,7 +11164,7 @@ std::string NMD::MULQ_RS_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11188,7 +11188,7 @@ std::string NMD::MULQ_S_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11308,7 +11308,7 @@ std::string NMD::MULTU_DSP_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11412,7 +11412,7 @@ std::string NMD::NOP_32_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11480,7 +11480,7 @@ std::string NMD::OR_16_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11528,7 +11528,7 @@ std::string NMD::ORI(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11570,7 +11570,7 @@ std::string NMD::PAUSE(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11594,7 +11594,7 @@ std::string NMD::PICK_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11838,7 +11838,7 @@ std::string NMD::PRECEU_PH_QBR(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11910,7 +11910,7 @@ std::string NMD::PRECR_SRA_R_PH_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11934,7 +11934,7 @@ std::string NMD::PRECRQ_PH_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11958,7 +11958,7 @@ std::string NMD::PRECRQ_QB_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -11982,7 +11982,7 @@ std::string NMD::PRECRQ_RS_PH_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -12482,7 +12482,7 @@ std::string NMD::ROTR(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -12852,7 +12852,7 @@ std::string NMD::SBE(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -13320,7 +13320,7 @@ std::string NMD::SDPC_48_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -13344,7 +13344,7 @@ std::string NMD::SDXS(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -13838,7 +13838,7 @@ std::string NMD::SHLL_S_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -13862,7 +13862,7 @@ std::string NMD::SHLLV_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -13886,7 +13886,7 @@ std::string NMD::SHLLV_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -13910,7 +13910,7 @@ std::string NMD::SHLLV_S_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14054,7 +14054,7 @@ std::string NMD::SHRA_R_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14078,7 +14078,7 @@ std::string NMD::SHRAV_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14102,7 +14102,7 @@ std::string NMD::SHRAV_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14126,7 +14126,7 @@ std::string NMD::SHRAV_R_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14150,7 +14150,7 @@ std::string NMD::SHRAV_R_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14222,7 +14222,7 @@ std::string NMD::SHRL_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14246,7 +14246,7 @@ std::string NMD::SHRLV_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14270,7 +14270,7 @@ std::string NMD::SHRLV_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14294,7 +14294,7 @@ std::string NMD::SHX(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14386,7 +14386,7 @@ std::string NMD::SLL_32_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14410,7 +14410,7 @@ std::string NMD::SLLV(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14482,7 +14482,7 @@ std::string NMD::SLTIU(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14506,7 +14506,7 @@ std::string NMD::SLTU(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14618,7 +14618,7 @@ std::string NMD::SRA(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14690,7 +14690,7 @@ std::string NMD::SRL_32_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14714,7 +14714,7 @@ std::string NMD::SRLV(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14786,7 +14786,7 @@ std::string NMD::SUB_S(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14811,7 +14811,7 @@ std::string NMD::SUBQ_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14836,7 +14836,7 @@ std::string NMD::SUBQ_S_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14861,7 +14861,7 @@ std::string NMD::SUBQ_S_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14886,7 +14886,7 @@ std::string NMD::SUBQH_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14911,7 +14911,7 @@ std::string NMD::SUBQH_R_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14936,7 +14936,7 @@ std::string NMD::SUBQH_R_W(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -14984,7 +14984,7 @@ std::string NMD::SUBU_16_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -15008,7 +15008,7 @@ std::string NMD::SUBU_32_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -15032,7 +15032,7 @@ std::string NMD::SUBU_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -15056,7 +15056,7 @@ std::string NMD::SUBU_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -15080,7 +15080,7 @@ std::string NMD::SUBU_S_PH(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -15105,7 +15105,7 @@ std::string NMD::SUBU_S_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -15130,7 +15130,7 @@ std::string NMD::SUBUH_QB(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -15530,7 +15530,7 @@ std::string NMD::SWPC_48_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -15554,7 +15554,7 @@ std::string NMD::SWX(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
@@ -16283,7 +16283,7 @@ std::string NMD::XOR_16_(uint64 instruction)
 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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
diff --git a/disas/nanomips.h b/disas/nanomips.h
index 611eeebaae..0089f17d7b 100644
--- a/disas/nanomips.h
+++ b/disas/nanomips.h
@@ -191,7 +191,7 @@ private:
     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_20_19_18_17_16(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);
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH v2 4/5] disas: nanoMIPS: Fix order of some invocations
  2018-12-17 17:10 [Qemu-devel] [PATCH v2 0/5] disas: nanoMIPS: Clean up several issues Aleksandar Markovic
                   ` (2 preceding siblings ...)
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 3/5] disas: nanoMIPS: Fix a function misnomer Aleksandar Markovic
@ 2018-12-17 17:10 ` Aleksandar Markovic
  2018-12-18 13:26   ` Stefan Markovic
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 5/5] disas: nanoMIPS: Name some function in a more descriptive way Aleksandar Markovic
  4 siblings, 1 reply; 11+ messages in thread
From: Aleksandar Markovic @ 2018-12-17 17:10 UTC (permalink / raw)
  To: qemu-devel, smarkovic, amarkovic

From: Aleksandar Markovic <amarkovic@wavecomp.com>

Fix order of extraction function invocations so that extraction
goes from MSB side to LSB side of the given instruction coding
content. This is desireable because of consistency and easier
visual spotting of errors.

Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
 disas/nanomips.cpp | 776 ++++++++++++++++++++++-----------------------
 1 file changed, 388 insertions(+), 388 deletions(-)

diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
index cfad1ec845..9e876305f1 100644
--- a/disas/nanomips.cpp
+++ b/disas/nanomips.cpp
@@ -1597,8 +1597,8 @@ bool NMD::SLTU_cond(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string fs = FPR(copy(fs_value));
     std::string fd = FPR(copy(fd_value));
@@ -1619,8 +1619,8 @@ std::string NMD::ABS_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string fs = FPR(copy(fs_value));
     std::string fd = FPR(copy(fd_value));
@@ -1727,8 +1727,8 @@ std::string NMD::ACLR(uint64 instruction)
 std::string NMD::ADD(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -1800,8 +1800,8 @@ std::string NMD::ADD_S(uint64 instruction)
 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));
@@ -1907,8 +1907,8 @@ std::string NMD::ADDIU_GP_W_(uint64 instruction)
 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));
@@ -2039,8 +2039,8 @@ std::string NMD::ADDIUPC_48_(uint64 instruction)
 std::string NMD::ADDQ_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2063,8 +2063,8 @@ std::string NMD::ADDQ_PH(uint64 instruction)
 std::string NMD::ADDQ_S_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2087,8 +2087,8 @@ std::string NMD::ADDQ_S_PH(uint64 instruction)
 std::string NMD::ADDQ_S_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2112,8 +2112,8 @@ std::string NMD::ADDQ_S_W(uint64 instruction)
 std::string NMD::ADDQH_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2137,8 +2137,8 @@ std::string NMD::ADDQH_PH(uint64 instruction)
 std::string NMD::ADDQH_R_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2161,8 +2161,8 @@ std::string NMD::ADDQH_R_PH(uint64 instruction)
 std::string NMD::ADDQH_R_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2185,8 +2185,8 @@ std::string NMD::ADDQH_R_W(uint64 instruction)
 std::string NMD::ADDQH_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2209,8 +2209,8 @@ std::string NMD::ADDQH_W(uint64 instruction)
 std::string NMD::ADDSC(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2256,8 +2256,8 @@ std::string NMD::ADDU_16_(uint64 instruction)
 std::string NMD::ADDU_32_(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2279,8 +2279,8 @@ std::string NMD::ADDU_32_(uint64 instruction)
  */
 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));
@@ -2302,8 +2302,8 @@ std::string NMD::ADDU_4X4_(uint64 instruction)
 std::string NMD::ADDU_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2326,8 +2326,8 @@ std::string NMD::ADDU_PH(uint64 instruction)
 std::string NMD::ADDU_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2350,8 +2350,8 @@ std::string NMD::ADDU_QB(uint64 instruction)
 std::string NMD::ADDU_S_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2374,8 +2374,8 @@ std::string NMD::ADDU_S_PH(uint64 instruction)
 std::string NMD::ADDU_S_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2399,8 +2399,8 @@ std::string NMD::ADDU_S_QB(uint64 instruction)
 std::string NMD::ADDUH_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2424,8 +2424,8 @@ std::string NMD::ADDUH_QB(uint64 instruction)
 std::string NMD::ADDUH_R_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2447,8 +2447,8 @@ std::string NMD::ADDUH_R_QB(uint64 instruction)
 std::string NMD::ADDWC(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2514,8 +2514,8 @@ std::string NMD::AND_16_(uint64 instruction)
 std::string NMD::AND_32_(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -2561,8 +2561,8 @@ std::string NMD::ANDI_16_(uint64 instruction)
 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));
@@ -2585,8 +2585,8 @@ std::string NMD::ANDI_32_(uint64 instruction)
 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));
@@ -3378,8 +3378,8 @@ std::string NMD::CACHEE(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -3400,8 +3400,8 @@ std::string NMD::CEIL_L_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -3422,8 +3422,8 @@ std::string NMD::CEIL_L_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -3444,8 +3444,8 @@ std::string NMD::CEIL_W_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -3466,8 +3466,8 @@ std::string NMD::CEIL_W_S(uint64 instruction)
  */
 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));
@@ -3488,8 +3488,8 @@ std::string NMD::CFC1(uint64 instruction)
  */
 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));
@@ -3510,8 +3510,8 @@ std::string NMD::CFC2(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -3532,8 +3532,8 @@ std::string NMD::CLASS_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -3598,9 +3598,9 @@ std::string NMD::CLZ(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3622,9 +3622,9 @@ std::string NMD::CMP_AF_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3646,9 +3646,9 @@ std::string NMD::CMP_AF_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3692,9 +3692,9 @@ std::string NMD::CMP_EQ_PH(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3716,9 +3716,9 @@ std::string NMD::CMP_EQ_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3762,9 +3762,9 @@ std::string NMD::CMP_LE_PH(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3786,9 +3786,9 @@ std::string NMD::CMP_LE_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3832,9 +3832,9 @@ std::string NMD::CMP_LT_PH(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3856,9 +3856,9 @@ std::string NMD::CMP_LT_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3880,9 +3880,9 @@ std::string NMD::CMP_NE_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3904,9 +3904,9 @@ std::string NMD::CMP_NE_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3928,9 +3928,9 @@ std::string NMD::CMP_OR_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3952,9 +3952,9 @@ std::string NMD::CMP_OR_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -3976,9 +3976,9 @@ std::string NMD::CMP_SAF_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4000,9 +4000,9 @@ std::string NMD::CMP_SAF_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4024,9 +4024,9 @@ std::string NMD::CMP_SEQ_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4048,9 +4048,9 @@ std::string NMD::CMP_SEQ_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4072,9 +4072,9 @@ std::string NMD::CMP_SLE_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4096,9 +4096,9 @@ std::string NMD::CMP_SLE_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4120,9 +4120,9 @@ std::string NMD::CMP_SLT_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4144,9 +4144,9 @@ std::string NMD::CMP_SLT_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4168,9 +4168,9 @@ std::string NMD::CMP_SNE_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4192,9 +4192,9 @@ std::string NMD::CMP_SNE_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4216,9 +4216,9 @@ std::string NMD::CMP_SOR_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4240,9 +4240,9 @@ std::string NMD::CMP_SOR_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4264,9 +4264,9 @@ std::string NMD::CMP_SUEQ_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4288,9 +4288,9 @@ std::string NMD::CMP_SUEQ_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4312,9 +4312,9 @@ std::string NMD::CMP_SULE_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4336,9 +4336,9 @@ std::string NMD::CMP_SULE_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4360,9 +4360,9 @@ std::string NMD::CMP_SULT_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4384,9 +4384,9 @@ std::string NMD::CMP_SULT_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4408,9 +4408,9 @@ std::string NMD::CMP_SUN_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4432,9 +4432,9 @@ std::string NMD::CMP_SUNE_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4456,9 +4456,9 @@ std::string NMD::CMP_SUNE_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4480,9 +4480,9 @@ std::string NMD::CMP_SUN_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4504,9 +4504,9 @@ std::string NMD::CMP_UEQ_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4528,9 +4528,9 @@ std::string NMD::CMP_UEQ_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4552,9 +4552,9 @@ std::string NMD::CMP_ULE_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4576,9 +4576,9 @@ std::string NMD::CMP_ULE_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4600,9 +4600,9 @@ std::string NMD::CMP_ULT_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4624,9 +4624,9 @@ std::string NMD::CMP_ULT_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4648,9 +4648,9 @@ std::string NMD::CMP_UN_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4672,9 +4672,9 @@ std::string NMD::CMP_UNE_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4696,9 +4696,9 @@ std::string NMD::CMP_UNE_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
+    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
     std::string fs = FPR(copy(fs_value));
@@ -4721,8 +4721,8 @@ std::string NMD::CMP_UN_S(uint64 instruction)
 std::string NMD::CMPGDU_EQ_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -4745,8 +4745,8 @@ std::string NMD::CMPGDU_EQ_QB(uint64 instruction)
 std::string NMD::CMPGDU_LE_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -4769,8 +4769,8 @@ std::string NMD::CMPGDU_LE_QB(uint64 instruction)
 std::string NMD::CMPGDU_LT_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -4793,8 +4793,8 @@ std::string NMD::CMPGDU_LT_QB(uint64 instruction)
 std::string NMD::CMPGU_EQ_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -4817,8 +4817,8 @@ std::string NMD::CMPGU_EQ_QB(uint64 instruction)
 std::string NMD::CMPGU_LE_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -4841,8 +4841,8 @@ std::string NMD::CMPGU_LE_QB(uint64 instruction)
 std::string NMD::CMPGU_LT_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -4950,8 +4950,8 @@ std::string NMD::COP2_1(uint64 instruction)
  */
 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));
@@ -4972,8 +4972,8 @@ std::string NMD::CTC1(uint64 instruction)
  */
 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));
@@ -4994,8 +4994,8 @@ std::string NMD::CTC2(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5016,8 +5016,8 @@ std::string NMD::CVT_D_L(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5038,8 +5038,8 @@ std::string NMD::CVT_D_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5060,8 +5060,8 @@ std::string NMD::CVT_D_W(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5082,8 +5082,8 @@ std::string NMD::CVT_L_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5104,8 +5104,8 @@ std::string NMD::CVT_L_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5126,8 +5126,8 @@ std::string NMD::CVT_S_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5148,8 +5148,8 @@ std::string NMD::CVT_S_L(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5170,8 +5170,8 @@ std::string NMD::CVT_S_PL(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5192,8 +5192,8 @@ std::string NMD::CVT_S_PU(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5214,8 +5214,8 @@ std::string NMD::CVT_S_W(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5236,8 +5236,8 @@ std::string NMD::CVT_W_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -5281,8 +5281,8 @@ std::string NMD::DADDIU_48_(uint64 instruction)
 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));
@@ -5305,8 +5305,8 @@ std::string NMD::DADDIU_NEG_(uint64 instruction)
 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));
@@ -5329,8 +5329,8 @@ std::string NMD::DADDIU_U12_(uint64 instruction)
 std::string NMD::DADD(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -5353,8 +5353,8 @@ std::string NMD::DADD(uint64 instruction)
 std::string NMD::DADDU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -5421,8 +5421,8 @@ std::string NMD::DCLZ(uint64 instruction)
 std::string NMD::DDIV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -5445,8 +5445,8 @@ std::string NMD::DDIV(uint64 instruction)
 std::string NMD::DDIVU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -5487,9 +5487,9 @@ std::string NMD::DERET(uint64 instruction)
 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));
@@ -5513,9 +5513,9 @@ std::string NMD::DEXTM(uint64 instruction)
 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));
@@ -5539,9 +5539,9 @@ std::string NMD::DEXT(uint64 instruction)
 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));
@@ -5565,9 +5565,9 @@ std::string NMD::DEXTU(uint64 instruction)
 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));
@@ -5593,9 +5593,9 @@ std::string NMD::DINSM(uint64 instruction)
 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));
@@ -5621,9 +5621,9 @@ std::string NMD::DINS(uint64 instruction)
 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));
@@ -5669,8 +5669,8 @@ std::string NMD::DI(uint64 instruction)
 std::string NMD::DIV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -5692,8 +5692,8 @@ std::string NMD::DIV(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -5716,8 +5716,8 @@ std::string NMD::DIV_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -5741,8 +5741,8 @@ std::string NMD::DIV_S(uint64 instruction)
 std::string NMD::DIVU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -5765,9 +5765,9 @@ std::string NMD::DIVU(uint64 instruction)
 std::string NMD::DLSA(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 rd_value = extract_rd_15_14_13_12_11(instruction);
     uint64 u2_value = extract_u2_10_9(instruction);
-    uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
 
     std::string rd = GPR(copy(rd_value));
     std::string rs = GPR(copy(rs_value));
@@ -5858,8 +5858,8 @@ std::string NMD::DMFC1(uint64 instruction)
  */
 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));
@@ -5905,8 +5905,8 @@ std::string NMD::DMFGC0(uint64 instruction)
 std::string NMD::DMOD(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -5929,8 +5929,8 @@ std::string NMD::DMOD(uint64 instruction)
 std::string NMD::DMODU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -5998,8 +5998,8 @@ std::string NMD::DMTC1(uint64 instruction)
  */
 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));
@@ -6065,8 +6065,8 @@ std::string NMD::DMT(uint64 instruction)
 std::string NMD::DMUH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6089,8 +6089,8 @@ std::string NMD::DMUH(uint64 instruction)
 std::string NMD::DMUHU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6113,8 +6113,8 @@ std::string NMD::DMUHU(uint64 instruction)
 std::string NMD::DMUL(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6137,8 +6137,8 @@ std::string NMD::DMUL(uint64 instruction)
 std::string NMD::DMULU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6161,8 +6161,8 @@ std::string NMD::DMULU(uint64 instruction)
 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));
@@ -6185,8 +6185,8 @@ std::string NMD::DPA_W_PH(uint64 instruction)
 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));
@@ -6209,8 +6209,8 @@ std::string NMD::DPAQ_SA_L_W(uint64 instruction)
 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));
@@ -6233,8 +6233,8 @@ std::string NMD::DPAQ_S_W_PH(uint64 instruction)
 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));
@@ -6257,8 +6257,8 @@ std::string NMD::DPAQX_SA_W_PH(uint64 instruction)
 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));
@@ -6281,8 +6281,8 @@ std::string NMD::DPAQX_S_W_PH(uint64 instruction)
 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));
@@ -6305,8 +6305,8 @@ std::string NMD::DPAU_H_QBL(uint64 instruction)
 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));
@@ -6329,8 +6329,8 @@ std::string NMD::DPAU_H_QBR(uint64 instruction)
 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));
@@ -6353,8 +6353,8 @@ std::string NMD::DPAX_W_PH(uint64 instruction)
 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));
@@ -6377,8 +6377,8 @@ std::string NMD::DPS_W_PH(uint64 instruction)
 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));
@@ -6401,8 +6401,8 @@ std::string NMD::DPSQ_SA_L_W(uint64 instruction)
 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));
@@ -6425,8 +6425,8 @@ std::string NMD::DPSQ_S_W_PH(uint64 instruction)
 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));
@@ -6449,8 +6449,8 @@ std::string NMD::DPSQX_SA_W_PH(uint64 instruction)
 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));
@@ -6473,8 +6473,8 @@ std::string NMD::DPSQX_S_W_PH(uint64 instruction)
 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));
@@ -6497,8 +6497,8 @@ std::string NMD::DPSU_H_QBL(uint64 instruction)
 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));
@@ -6521,8 +6521,8 @@ std::string NMD::DPSU_H_QBR(uint64 instruction)
 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));
@@ -6545,8 +6545,8 @@ std::string NMD::DPSX_W_PH(uint64 instruction)
 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));
@@ -6569,8 +6569,8 @@ std::string NMD::DROTR(uint64 instruction)
 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));
@@ -6593,8 +6593,8 @@ std::string NMD::DROTR32(uint64 instruction)
 std::string NMD::DROTRV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6617,9 +6617,9 @@ std::string NMD::DROTRV(uint64 instruction)
 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));
@@ -6643,8 +6643,8 @@ std::string NMD::DROTX(uint64 instruction)
 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));
@@ -6667,8 +6667,8 @@ std::string NMD::DSLL(uint64 instruction)
 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));
@@ -6691,8 +6691,8 @@ std::string NMD::DSLL32(uint64 instruction)
 std::string NMD::DSLLV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6715,8 +6715,8 @@ std::string NMD::DSLLV(uint64 instruction)
 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));
@@ -6739,8 +6739,8 @@ std::string NMD::DSRA(uint64 instruction)
 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));
@@ -6763,8 +6763,8 @@ std::string NMD::DSRA32(uint64 instruction)
 std::string NMD::DSRAV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6787,8 +6787,8 @@ std::string NMD::DSRAV(uint64 instruction)
 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));
@@ -6811,8 +6811,8 @@ std::string NMD::DSRL(uint64 instruction)
 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));
@@ -6835,8 +6835,8 @@ std::string NMD::DSRL32(uint64 instruction)
 std::string NMD::DSRLV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6859,8 +6859,8 @@ std::string NMD::DSRLV(uint64 instruction)
 std::string NMD::DSUB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -6883,8 +6883,8 @@ std::string NMD::DSUB(uint64 instruction)
 std::string NMD::DSUBU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -7108,8 +7108,8 @@ 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_15_14_13_12_11(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));
@@ -7134,8 +7134,8 @@ 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_15_14_13_12_11(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));
@@ -7183,8 +7183,8 @@ std::string NMD::EXTPDP(uint64 instruction)
 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));
@@ -7231,8 +7231,8 @@ std::string NMD::EXTP(uint64 instruction)
 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));
@@ -7351,8 +7351,8 @@ std::string NMD::EXTR_W(uint64 instruction)
 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));
@@ -7375,8 +7375,8 @@ std::string NMD::EXTRV_RS_W(uint64 instruction)
 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));
@@ -7399,8 +7399,8 @@ std::string NMD::EXTRV_R_W(uint64 instruction)
 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));
@@ -7423,8 +7423,8 @@ std::string NMD::EXTRV_S_H(uint64 instruction)
 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));
@@ -7449,8 +7449,8 @@ 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_15_14_13_12_11(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));
@@ -7473,8 +7473,8 @@ std::string NMD::EXTW(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -7495,8 +7495,8 @@ std::string NMD::FLOOR_L_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -7517,8 +7517,8 @@ std::string NMD::FLOOR_L_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -7539,8 +7539,8 @@ std::string NMD::FLOOR_W_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -7562,8 +7562,8 @@ std::string NMD::FLOOR_W_S(uint64 instruction)
 std::string NMD::FORK(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -7848,8 +7848,8 @@ std::string NMD::LB_S9_(uint64 instruction)
 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));
@@ -7966,8 +7966,8 @@ std::string NMD::LBU_S9_(uint64 instruction)
 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));
@@ -8014,8 +8014,8 @@ std::string NMD::LBUE(uint64 instruction)
 std::string NMD::LBUX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -8038,8 +8038,8 @@ std::string NMD::LBUX(uint64 instruction)
 std::string NMD::LBX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -8108,8 +8108,8 @@ std::string NMD::LD_S9_(uint64 instruction)
 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));
@@ -8322,8 +8322,8 @@ std::string NMD::LDPC_48_(uint64 instruction)
 std::string NMD::LDX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -8346,8 +8346,8 @@ std::string NMD::LDX(uint64 instruction)
 std::string NMD::LDXS(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -8440,8 +8440,8 @@ std::string NMD::LH_S9_(uint64 instruction)
 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));
@@ -8558,8 +8558,8 @@ std::string NMD::LHU_S9_(uint64 instruction)
 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));
@@ -8606,8 +8606,8 @@ std::string NMD::LHUE(uint64 instruction)
 std::string NMD::LHUX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -8630,8 +8630,8 @@ std::string NMD::LHUX(uint64 instruction)
 std::string NMD::LHUXS(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -8654,8 +8654,8 @@ std::string NMD::LHUXS(uint64 instruction)
 std::string NMD::LHXS(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -8678,8 +8678,8 @@ std::string NMD::LHXS(uint64 instruction)
 std::string NMD::LHX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -8794,8 +8794,8 @@ std::string NMD::LLD(uint64 instruction)
 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));
@@ -8842,8 +8842,8 @@ std::string NMD::LLE(uint64 instruction)
 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));
@@ -8866,8 +8866,8 @@ std::string NMD::LLWP(uint64 instruction)
 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));
@@ -9076,8 +9076,8 @@ std::string NMD::LW_SP_(uint64 instruction)
 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));
@@ -9360,8 +9360,8 @@ std::string NMD::LWU_S9_(uint64 instruction)
 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));
@@ -9384,8 +9384,8 @@ std::string NMD::LWU_U12_(uint64 instruction)
 std::string NMD::LWUX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -9408,8 +9408,8 @@ std::string NMD::LWUX(uint64 instruction)
 std::string NMD::LWUXS(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -9432,8 +9432,8 @@ std::string NMD::LWUXS(uint64 instruction)
 std::string NMD::LWX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -9455,9 +9455,9 @@ std::string NMD::LWX(uint64 instruction)
  */
 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));
@@ -9480,8 +9480,8 @@ std::string NMD::LWXS_16_(uint64 instruction)
 std::string NMD::LWXS_32_(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -9504,8 +9504,8 @@ std::string NMD::LWXS_32_(uint64 instruction)
 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));
@@ -9527,8 +9527,8 @@ std::string NMD::MADD_DSP_(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -9551,8 +9551,8 @@ std::string NMD::MADDF_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -9576,8 +9576,8 @@ std::string NMD::MADDF_S(uint64 instruction)
 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));
@@ -9600,8 +9600,8 @@ std::string NMD::MADDU_DSP_(uint64 instruction)
 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));
@@ -9624,8 +9624,8 @@ std::string NMD::MAQ_S_W_PHL(uint64 instruction)
 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));
@@ -9648,8 +9648,8 @@ std::string NMD::MAQ_S_W_PHR(uint64 instruction)
 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));
@@ -9672,8 +9672,8 @@ std::string NMD::MAQ_SA_W_PHL(uint64 instruction)
 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));
@@ -9695,8 +9695,8 @@ std::string NMD::MAQ_SA_W_PHR(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -9719,8 +9719,8 @@ std::string NMD::MAX_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -9743,8 +9743,8 @@ std::string NMD::MAX_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -9767,8 +9767,8 @@ std::string NMD::MAXA_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -9837,8 +9837,8 @@ std::string NMD::MFC1(uint64 instruction)
  */
 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));
@@ -9929,8 +9929,8 @@ std::string NMD::MFHC1(uint64 instruction)
  */
 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));
@@ -10071,8 +10071,8 @@ std::string NMD::MFTR(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -10095,8 +10095,8 @@ std::string NMD::MIN_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -10119,8 +10119,8 @@ std::string NMD::MIN_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -10143,8 +10143,8 @@ std::string NMD::MINA_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -10168,8 +10168,8 @@ std::string NMD::MINA_S(uint64 instruction)
 std::string NMD::MOD(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10192,8 +10192,8 @@ std::string NMD::MOD(uint64 instruction)
 std::string NMD::MODSUB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10216,8 +10216,8 @@ std::string NMD::MODSUB(uint64 instruction)
 std::string NMD::MODU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10239,8 +10239,8 @@ std::string NMD::MODU(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -10261,8 +10261,8 @@ std::string NMD::MOV_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -10283,9 +10283,9 @@ std::string NMD::MOV_S(uint64 instruction)
  */
 std::string NMD::MOVE_BALC(uint64 instruction)
 {
+    uint64 rtz4_value = extract_rtz4_27_26_25_23_22_21(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);
 
     std::string rd1 = GPR(encode_rd1_from_rd(rd1_value));
     std::string rtz4 = GPR(encode_gpr4_zero(rtz4_value));
@@ -10384,8 +10384,8 @@ std::string NMD::MOVE(uint64 instruction)
 std::string NMD::MOVN(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10408,8 +10408,8 @@ std::string NMD::MOVN(uint64 instruction)
 std::string NMD::MOVZ(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10432,8 +10432,8 @@ std::string NMD::MOVZ(uint64 instruction)
 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));
@@ -10455,8 +10455,8 @@ std::string NMD::MSUB_DSP_(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -10479,8 +10479,8 @@ std::string NMD::MSUBF_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -10504,8 +10504,8 @@ std::string NMD::MSUBF_S(uint64 instruction)
 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));
@@ -10573,8 +10573,8 @@ std::string NMD::MTC1(uint64 instruction)
  */
 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));
@@ -10665,8 +10665,8 @@ std::string NMD::MTHC1(uint64 instruction)
  */
 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));
@@ -10711,8 +10711,8 @@ std::string NMD::MTHGC0(uint64 instruction)
  */
 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));
@@ -10733,8 +10733,8 @@ std::string NMD::MTHI_DSP_(uint64 instruction)
  */
 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));
@@ -10781,8 +10781,8 @@ std::string NMD::MTHTR(uint64 instruction)
  */
 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));
@@ -10830,8 +10830,8 @@ std::string NMD::MTTR(uint64 instruction)
 std::string NMD::MUH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10854,8 +10854,8 @@ std::string NMD::MUH(uint64 instruction)
 std::string NMD::MUHU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10878,8 +10878,8 @@ std::string NMD::MUHU(uint64 instruction)
 std::string NMD::MUL_32_(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10923,8 +10923,8 @@ std::string NMD::MUL_4X4_(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -10948,8 +10948,8 @@ std::string NMD::MUL_D(uint64 instruction)
 std::string NMD::MUL_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10972,8 +10972,8 @@ std::string NMD::MUL_PH(uint64 instruction)
 std::string NMD::MUL_S_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -10995,8 +10995,8 @@ std::string NMD::MUL_S_PH(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -11020,8 +11020,8 @@ std::string NMD::MUL_S(uint64 instruction)
 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_15_14_13_12_11(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));
@@ -11044,8 +11044,8 @@ std::string NMD::MULEQ_S_W_PHL(uint64 instruction)
 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_15_14_13_12_11(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));
@@ -11068,8 +11068,8 @@ std::string NMD::MULEQ_S_W_PHR(uint64 instruction)
 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_15_14_13_12_11(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));
@@ -11092,8 +11092,8 @@ std::string NMD::MULEU_S_PH_QBL(uint64 instruction)
 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_15_14_13_12_11(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));
@@ -11116,8 +11116,8 @@ std::string NMD::MULEU_S_PH_QBR(uint64 instruction)
 std::string NMD::MULQ_RS_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11140,8 +11140,8 @@ std::string NMD::MULQ_RS_PH(uint64 instruction)
 std::string NMD::MULQ_RS_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11164,8 +11164,8 @@ std::string NMD::MULQ_RS_W(uint64 instruction)
 std::string NMD::MULQ_S_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11188,8 +11188,8 @@ std::string NMD::MULQ_S_PH(uint64 instruction)
 std::string NMD::MULQ_S_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11212,8 +11212,8 @@ std::string NMD::MULQ_S_W(uint64 instruction)
 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));
@@ -11236,8 +11236,8 @@ std::string NMD::MULSA_W_PH(uint64 instruction)
 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));
@@ -11260,8 +11260,8 @@ std::string NMD::MULSAQ_S_W_PH(uint64 instruction)
 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));
@@ -11284,8 +11284,8 @@ std::string NMD::MULT_DSP_(uint64 instruction)
 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));
@@ -11308,8 +11308,8 @@ std::string NMD::MULTU_DSP_(uint64 instruction)
 std::string NMD::MULU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11331,8 +11331,8 @@ std::string NMD::MULU(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -11353,8 +11353,8 @@ std::string NMD::NEG_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -11412,8 +11412,8 @@ std::string NMD::NOP_32_(uint64 instruction)
 std::string NMD::NOR(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11480,8 +11480,8 @@ std::string NMD::OR_16_(uint64 instruction)
 std::string NMD::OR_32_(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11504,8 +11504,8 @@ std::string NMD::OR_32_(uint64 instruction)
 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));
@@ -11528,8 +11528,8 @@ std::string NMD::ORI(uint64 instruction)
 std::string NMD::PACKRL_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11570,8 +11570,8 @@ std::string NMD::PAUSE(uint64 instruction)
 std::string NMD::PICK_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11594,8 +11594,8 @@ std::string NMD::PICK_PH(uint64 instruction)
 std::string NMD::PICK_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11838,8 +11838,8 @@ std::string NMD::PRECEU_PH_QBR(uint64 instruction)
 std::string NMD::PRECR_QB_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11910,8 +11910,8 @@ std::string NMD::PRECR_SRA_R_PH_W(uint64 instruction)
 std::string NMD::PRECRQ_PH_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11934,8 +11934,8 @@ std::string NMD::PRECRQ_PH_W(uint64 instruction)
 std::string NMD::PRECRQ_QB_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -11958,8 +11958,8 @@ std::string NMD::PRECRQ_QB_PH(uint64 instruction)
 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_15_14_13_12_11(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));
@@ -11982,8 +11982,8 @@ std::string NMD::PRECRQ_RS_PH_W(uint64 instruction)
 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_15_14_13_12_11(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));
@@ -12005,9 +12005,9 @@ std::string NMD::PRECRQU_S_QB_PH(uint64 instruction)
  */
 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 = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
 
     std::string hint = IMMEDIATE(copy(hint_value));
     std::string s = IMMEDIATE(copy(s_value));
@@ -12030,8 +12030,8 @@ std::string NMD::PREF_S9_(uint64 instruction)
 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));
@@ -12191,8 +12191,8 @@ std::string NMD::RDPGPR(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12213,8 +12213,8 @@ std::string NMD::RECIP_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12368,8 +12368,8 @@ std::string NMD::RESTORE_JRC_16_(uint64 instruction)
  */
 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 count_value = extract_count_19_18_17_16(instruction);
     uint64 u_value = extr_uil3il3bs9Fmsb11(instruction);
     uint64 gp_value = extract_gp_2(instruction);
 
@@ -12413,8 +12413,8 @@ std::string NMD::RESTOREF(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12435,8 +12435,8 @@ std::string NMD::RINT_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12458,8 +12458,8 @@ std::string NMD::RINT_S(uint64 instruction)
 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));
@@ -12482,8 +12482,8 @@ std::string NMD::ROTR(uint64 instruction)
 std::string NMD::ROTRV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -12506,10 +12506,10 @@ std::string NMD::ROTRV(uint64 instruction)
 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 rs_value = extract_rs_20_19_18_17_16(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 shift_value = extract_shift_4_3_2_1_0(instruction);
 
     std::string rt = GPR(copy(rt_value));
     std::string rs = GPR(copy(rs_value));
@@ -12534,8 +12534,8 @@ std::string NMD::ROTX(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12556,8 +12556,8 @@ std::string NMD::ROUND_L_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12578,8 +12578,8 @@ std::string NMD::ROUND_L_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12600,8 +12600,8 @@ std::string NMD::ROUND_W_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12622,8 +12622,8 @@ std::string NMD::ROUND_W_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12644,8 +12644,8 @@ std::string NMD::RSQRT_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -12804,8 +12804,8 @@ std::string NMD::SB_S9_(uint64 instruction)
 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));
@@ -12852,8 +12852,8 @@ std::string NMD::SBE(uint64 instruction)
 std::string NMD::SBX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -12924,8 +12924,8 @@ std::string NMD::SCD(uint64 instruction)
 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));
@@ -12972,8 +12972,8 @@ std::string NMD::SCE(uint64 instruction)
 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));
@@ -12996,8 +12996,8 @@ std::string NMD::SCWP(uint64 instruction)
 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));
@@ -13066,8 +13066,8 @@ std::string NMD::SD_S9_(uint64 instruction)
 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));
@@ -13320,8 +13320,8 @@ std::string NMD::SDPC_48_(uint64 instruction)
 std::string NMD::SDXS(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -13344,8 +13344,8 @@ std::string NMD::SDXS(uint64 instruction)
 std::string NMD::SDX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -13411,8 +13411,8 @@ std::string NMD::SEH(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -13435,8 +13435,8 @@ std::string NMD::SEL_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -13459,8 +13459,8 @@ std::string NMD::SEL_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -13483,8 +13483,8 @@ std::string NMD::SELEQZ_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -13507,8 +13507,8 @@ std::string NMD::SELEQZ_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -13531,8 +13531,8 @@ std::string NMD::SELNEZ_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -13556,8 +13556,8 @@ std::string NMD::SELNEZ_S(uint64 instruction)
 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));
@@ -13650,8 +13650,8 @@ std::string NMD::SH_S9_(uint64 instruction)
 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));
@@ -13838,8 +13838,8 @@ std::string NMD::SHLL_S_W(uint64 instruction)
 std::string NMD::SHLLV_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -13862,8 +13862,8 @@ std::string NMD::SHLLV_PH(uint64 instruction)
 std::string NMD::SHLLV_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -13886,8 +13886,8 @@ std::string NMD::SHLLV_QB(uint64 instruction)
 std::string NMD::SHLLV_S_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -13910,8 +13910,8 @@ std::string NMD::SHLLV_S_PH(uint64 instruction)
 std::string NMD::SHLLV_S_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14054,8 +14054,8 @@ std::string NMD::SHRA_R_W(uint64 instruction)
 std::string NMD::SHRAV_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14078,8 +14078,8 @@ std::string NMD::SHRAV_PH(uint64 instruction)
 std::string NMD::SHRAV_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14102,8 +14102,8 @@ std::string NMD::SHRAV_QB(uint64 instruction)
 std::string NMD::SHRAV_R_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14126,8 +14126,8 @@ std::string NMD::SHRAV_R_PH(uint64 instruction)
 std::string NMD::SHRAV_R_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14150,8 +14150,8 @@ std::string NMD::SHRAV_R_QB(uint64 instruction)
 std::string NMD::SHRAV_R_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14222,8 +14222,8 @@ std::string NMD::SHRL_QB(uint64 instruction)
 std::string NMD::SHRLV_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14246,8 +14246,8 @@ std::string NMD::SHRLV_PH(uint64 instruction)
 std::string NMD::SHRLV_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14270,8 +14270,8 @@ std::string NMD::SHRLV_QB(uint64 instruction)
 std::string NMD::SHX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14294,8 +14294,8 @@ std::string NMD::SHX(uint64 instruction)
 std::string NMD::SHXS(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14362,8 +14362,8 @@ std::string NMD::SLL_16_(uint64 instruction)
 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));
@@ -14386,8 +14386,8 @@ std::string NMD::SLL_32_(uint64 instruction)
 std::string NMD::SLLV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14410,8 +14410,8 @@ std::string NMD::SLLV(uint64 instruction)
 std::string NMD::SLT(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14434,8 +14434,8 @@ std::string NMD::SLT(uint64 instruction)
 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));
@@ -14458,8 +14458,8 @@ std::string NMD::SLTI(uint64 instruction)
 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));
@@ -14482,8 +14482,8 @@ std::string NMD::SLTIU(uint64 instruction)
 std::string NMD::SLTU(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14506,8 +14506,8 @@ std::string NMD::SLTU(uint64 instruction)
 std::string NMD::SOV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14549,8 +14549,8 @@ std::string NMD::SPECIAL2(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -14571,8 +14571,8 @@ std::string NMD::SQRT_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -14618,8 +14618,8 @@ std::string NMD::SRA(uint64 instruction)
 std::string NMD::SRAV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14666,8 +14666,8 @@ std::string NMD::SRL_16_(uint64 instruction)
 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));
@@ -14690,8 +14690,8 @@ std::string NMD::SRL_32_(uint64 instruction)
 std::string NMD::SRLV(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14714,8 +14714,8 @@ std::string NMD::SRLV(uint64 instruction)
 std::string NMD::SUB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14737,8 +14737,8 @@ std::string NMD::SUB(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -14761,8 +14761,8 @@ std::string NMD::SUB_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
     uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
 
     std::string fd = FPR(copy(fd_value));
@@ -14786,8 +14786,8 @@ std::string NMD::SUB_S(uint64 instruction)
 std::string NMD::SUBQ_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14811,8 +14811,8 @@ std::string NMD::SUBQ_PH(uint64 instruction)
 std::string NMD::SUBQ_S_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14836,8 +14836,8 @@ std::string NMD::SUBQ_S_PH(uint64 instruction)
 std::string NMD::SUBQ_S_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14861,8 +14861,8 @@ std::string NMD::SUBQ_S_W(uint64 instruction)
 std::string NMD::SUBQH_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14886,8 +14886,8 @@ std::string NMD::SUBQH_PH(uint64 instruction)
 std::string NMD::SUBQH_R_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14911,8 +14911,8 @@ std::string NMD::SUBQH_R_PH(uint64 instruction)
 std::string NMD::SUBQH_R_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14936,8 +14936,8 @@ std::string NMD::SUBQH_R_W(uint64 instruction)
 std::string NMD::SUBQH_W(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -14959,9 +14959,9 @@ std::string NMD::SUBQH_W(uint64 instruction)
  */
 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));
@@ -14984,8 +14984,8 @@ std::string NMD::SUBU_16_(uint64 instruction)
 std::string NMD::SUBU_32_(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15008,8 +15008,8 @@ std::string NMD::SUBU_32_(uint64 instruction)
 std::string NMD::SUBU_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15032,8 +15032,8 @@ std::string NMD::SUBU_PH(uint64 instruction)
 std::string NMD::SUBU_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15056,8 +15056,8 @@ std::string NMD::SUBU_QB(uint64 instruction)
 std::string NMD::SUBU_S_PH(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15080,8 +15080,8 @@ std::string NMD::SUBU_S_PH(uint64 instruction)
 std::string NMD::SUBU_S_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15105,8 +15105,8 @@ std::string NMD::SUBU_S_QB(uint64 instruction)
 std::string NMD::SUBUH_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15130,8 +15130,8 @@ std::string NMD::SUBUH_QB(uint64 instruction)
 std::string NMD::SUBUH_R_QB(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15292,8 +15292,8 @@ std::string NMD::SW_SP_(uint64 instruction)
 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));
@@ -15530,8 +15530,8 @@ std::string NMD::SWPC_48_(uint64 instruction)
 std::string NMD::SWX(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15554,8 +15554,8 @@ std::string NMD::SWX(uint64 instruction)
 std::string NMD::SWXS(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -15939,8 +15939,8 @@ std::string NMD::TNE(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -15961,8 +15961,8 @@ std::string NMD::TRUNC_L_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -15983,8 +15983,8 @@ std::string NMD::TRUNC_L_S(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -16005,8 +16005,8 @@ std::string NMD::TRUNC_W_D(uint64 instruction)
  */
 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 fs_value = extract_fs_15_14_13_12_11(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string fs = FPR(copy(fs_value));
@@ -16283,8 +16283,8 @@ std::string NMD::XOR_16_(uint64 instruction)
 std::string NMD::XOR_32_(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
-    uint64 rd_value = extract_rd_15_14_13_12_11(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));
@@ -16307,8 +16307,8 @@ std::string NMD::XOR_32_(uint64 instruction)
 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));
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH v2 5/5] disas: nanoMIPS: Name some function in a more descriptive way
  2018-12-17 17:10 [Qemu-devel] [PATCH v2 0/5] disas: nanoMIPS: Clean up several issues Aleksandar Markovic
                   ` (3 preceding siblings ...)
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 4/5] disas: nanoMIPS: Fix order of some invocations Aleksandar Markovic
@ 2018-12-17 17:10 ` Aleksandar Markovic
  2018-12-18 13:38   ` Stefan Markovic
  4 siblings, 1 reply; 11+ messages in thread
From: Aleksandar Markovic @ 2018-12-17 17:10 UTC (permalink / raw)
  To: qemu-devel, smarkovic, amarkovic

From: Aleksandar Markovic <amarkovic@wavecomp.com>

Rename some functions that have names hard to understand.

Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
 disas/nanomips.cpp | 112 ++++++++++++++++++++++-----------------------
 disas/nanomips.h   |  32 ++++++-------
 2 files changed, 72 insertions(+), 72 deletions(-)

diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
index 9e876305f1..477df84d93 100644
--- a/disas/nanomips.cpp
+++ b/disas/nanomips.cpp
@@ -683,7 +683,7 @@ uint64 NMD::extract_shift3_2_1_0(uint64 instruction)
 }
 
 
-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;
@@ -707,7 +707,7 @@ uint64 NMD::extract_rtz3_9_8_7(uint64 instruction)
 }
 
 
-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;
@@ -767,7 +767,7 @@ uint64 NMD::extract_shift_4_3_2_1_0(uint64 instruction)
 }
 
 
-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;
@@ -836,7 +836,7 @@ uint64 NMD::extract_rs_20_19_18_17_16(uint64 instruction)
 }
 
 
-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;
@@ -934,7 +934,7 @@ uint64 NMD::extract_rs_4_3_2_1_0(uint64 instruction)
 }
 
 
-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;
@@ -942,7 +942,7 @@ uint64 NMD::extr_uil3il3bs18Fmsb20(uint64 instruction)
 }
 
 
-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;
@@ -958,7 +958,7 @@ uint64 NMD::extract_cofun_25_24_23(uint64 instruction)
 }
 
 
-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;
@@ -1225,7 +1225,7 @@ uint64 NMD::extract_msbt_10_9_8_7_6(uint64 instruction)
 }
 
 
-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;
@@ -1259,7 +1259,7 @@ uint64 NMD::extract_rs3_6_5_4(uint64 instruction)
 }
 
 
-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;
@@ -1307,7 +1307,7 @@ uint64 NMD::extract_op_25_24_23_22_21(uint64 instruction)
 }
 
 
-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;
@@ -1339,7 +1339,7 @@ uint64 NMD::extract_eu_3_2_1_0(uint64 instruction)
 }
 
 
-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;
@@ -1383,7 +1383,7 @@ uint64 NMD::extract_u_20_19_18_17_16_15_14_13(uint64 instruction)
 }
 
 
-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;
@@ -1433,7 +1433,7 @@ uint64 NMD::extract_u_1_0(uint64 instruction)
 }
 
 
-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;
@@ -1450,7 +1450,7 @@ uint64 NMD::extract_fd_10_9_8_7_6(uint64 instruction)
 }
 
 
-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;
@@ -1483,7 +1483,7 @@ uint64 NMD::extract_ct_25_24_23_22_21(uint64 instruction)
 }
 
 
-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;
@@ -1501,7 +1501,7 @@ int64 NMD::extract_s_4_2_1_0(uint64 instruction)
 }
 
 
-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;
@@ -1535,7 +1535,7 @@ bool NMD::BEQC_16__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;
 }
 
@@ -1544,7 +1544,7 @@ bool NMD::BNEC_16__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;
 }
 
@@ -1558,7 +1558,7 @@ bool NMD::MOVE_cond(uint64 instruction)
 
 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;
 }
 
@@ -1886,7 +1886,7 @@ std::string NMD::ADDIU_GP_B_(uint64 instruction)
 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));
@@ -1929,7 +1929,7 @@ std::string NMD::ADDIU_NEG_(uint64 instruction)
  */
 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));
@@ -1950,7 +1950,7 @@ std::string NMD::ADDIU_R1_SP_(uint64 instruction)
  */
 std::string NMD::ADDIU_R2_(uint64 instruction)
 {
-    uint64 u_value = extr_uil0il2bs3Fmsb4(instruction);
+    uint64 u_value = extract_u_2_1_0__s2(instruction);
     uint64 rt3_value = extract_rt3_9_8_7(instruction);
     uint64 rs3_value = extract_rs3_6_5_4(instruction);
 
@@ -2870,7 +2870,7 @@ std::string NMD::BC2NEZC(uint64 instruction)
  */
 std::string NMD::BEQC_16_(uint64 instruction)
 {
-    uint64 u_value = extr_uil0il1bs4Fmsb4(instruction);
+    uint64 u_value = extract_u_3_2_1_0__s1(instruction);
     uint64 rt3_value = extract_rt3_9_8_7(instruction);
     uint64 rs3_value = extract_rs3_6_5_4(instruction);
 
@@ -3156,7 +3156,7 @@ std::string NMD::BLTUC(uint64 instruction)
  */
 std::string NMD::BNEC_16_(uint64 instruction)
 {
-    uint64 u_value = extr_uil0il1bs4Fmsb4(instruction);
+    uint64 u_value = extract_u_3_2_1_0__s1(instruction);
     uint64 rt3_value = extract_rt3_9_8_7(instruction);
     uint64 rs3_value = extract_rs3_6_5_4(instruction);
 
@@ -5791,7 +5791,7 @@ std::string NMD::DLSA(uint64 instruction)
 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));
@@ -8062,7 +8062,7 @@ std::string NMD::LBX(uint64 instruction)
 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));
@@ -8132,7 +8132,7 @@ std::string NMD::LD_U12_(uint64 instruction)
 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 u_value = extract_u_17_to_2__s2(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string u = IMMEDIATE(copy(u_value));
@@ -8369,7 +8369,7 @@ std::string NMD::LDXS(uint64 instruction)
  */
 std::string NMD::LH_16_(uint64 instruction)
 {
-    uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
+    uint64 u_value = extract_u_2_1__s1(instruction);
     uint64 rt3_value = extract_rt3_9_8_7(instruction);
     uint64 rs3_value = extract_rs3_6_5_4(instruction);
 
@@ -8394,7 +8394,7 @@ std::string NMD::LH_16_(uint64 instruction)
 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));
@@ -8487,7 +8487,7 @@ std::string NMD::LHE(uint64 instruction)
  */
 std::string NMD::LHU_16_(uint64 instruction)
 {
-    uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
+    uint64 u_value = extract_u_2_1__s1(instruction);
     uint64 rt3_value = extract_rt3_9_8_7(instruction);
     uint64 rs3_value = extract_rs3_6_5_4(instruction);
 
@@ -8512,7 +8512,7 @@ std::string NMD::LHU_16_(uint64 instruction)
 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));
@@ -8937,7 +8937,7 @@ std::string NMD::LUI(uint64 instruction)
  */
 std::string NMD::LW_16_(uint64 instruction)
 {
-    uint64 u_value = extr_uil0il2bs4Fmsb5(instruction);
+    uint64 u_value = extract_u_3_2_1_0__s2(instruction);
     uint64 rt3_value = extract_rt3_9_8_7(instruction);
     uint64 rs3_value = extract_rs3_6_5_4(instruction);
 
@@ -8963,7 +8963,7 @@ 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 u_value = extract_u_3_8__s2(instruction);
 
     std::string rt4 = GPR(encode_gpr4(rt4_value));
     std::string u = IMMEDIATE(copy(u_value));
@@ -8986,7 +8986,7 @@ std::string NMD::LW_4X4_(uint64 instruction)
 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));
@@ -9007,7 +9007,7 @@ std::string NMD::LW_GP_(uint64 instruction)
  */
 std::string NMD::LW_GP16_(uint64 instruction)
 {
-    uint64 u_value = extr_uil0il2bs7Fmsb8(instruction);
+    uint64 u_value = extract_u_6_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));
@@ -9054,7 +9054,7 @@ std::string NMD::LW_S9_(uint64 instruction)
 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));
@@ -9100,7 +9100,7 @@ std::string NMD::LW_U12_(uint64 instruction)
 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 u_value = extract_u_17_to_2__s2(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string u = IMMEDIATE(copy(u_value));
@@ -9314,7 +9314,7 @@ std::string NMD::LWPC_48_(uint64 instruction)
 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));
@@ -12325,7 +12325,7 @@ 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 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));
@@ -12348,7 +12348,7 @@ 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);
 
     std::string u = IMMEDIATE(copy(u_value));
     return img::format("RESTORE.JRC %s%s", u,
@@ -12370,7 +12370,7 @@ std::string NMD::RESTORE_JRC_32_(uint64 instruction)
 {
     uint64 rt_value = extract_rt_25_24_23_22_21(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);
     uint64 gp_value = extract_gp_2(instruction);
 
     std::string u = IMMEDIATE(copy(u_value));
@@ -12392,7 +12392,7 @@ std::string NMD::RESTORE_JRC_32_(uint64 instruction)
 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));
@@ -12507,7 +12507,7 @@ std::string NMD::ROTX(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 shiftx_value = extr_shiftxil7il1bs4Fmsb4(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);
 
@@ -12668,7 +12668,7 @@ 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);
 
     std::string u = IMMEDIATE(copy(u_value));
     return img::format("SAVE %s%s", u,
@@ -12690,7 +12690,7 @@ std::string NMD::SAVE_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 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));
@@ -12712,7 +12712,7 @@ std::string NMD::SAVE_32_(uint64 instruction)
 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));
@@ -13020,7 +13020,7 @@ std::string NMD::SCWPE(uint64 instruction)
 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));
@@ -13130,7 +13130,7 @@ std::string NMD::SDBBP_32_(uint64 instruction)
 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 u_value = extract_u_17_to_2__s2(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string u = IMMEDIATE(copy(u_value));
@@ -13580,7 +13580,7 @@ std::string NMD::SEQI(uint64 instruction)
 std::string NMD::SH_16_(uint64 instruction)
 {
     uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
-    uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
+    uint64 u_value = extract_u_2_1__s1(instruction);
     uint64 rs3_value = extract_rs3_6_5_4(instruction);
 
     std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
@@ -13604,7 +13604,7 @@ std::string NMD::SH_16_(uint64 instruction)
 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));
@@ -15154,7 +15154,7 @@ std::string NMD::SUBUH_R_QB(uint64 instruction)
 std::string NMD::SW_16_(uint64 instruction)
 {
     uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
-    uint64 u_value = extr_uil0il2bs4Fmsb5(instruction);
+    uint64 u_value = extract_u_3_2_1_0__s2(instruction);
     uint64 rs3_value = extract_rs3_6_5_4(instruction);
 
     std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
@@ -15179,7 +15179,7 @@ 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 u_value = extract_u_3_8__s2(instruction);
 
     std::string rtz4 = GPR(encode_gpr4_zero(rtz4_value));
     std::string u = IMMEDIATE(copy(u_value));
@@ -15202,7 +15202,7 @@ std::string NMD::SW_4X4_(uint64 instruction)
 std::string NMD::SW_GP16_(uint64 instruction)
 {
     uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
-    uint64 u_value = extr_uil0il2bs7Fmsb8(instruction);
+    uint64 u_value = extract_u_6_5_4_3_2_1_0__s2(instruction);
 
     std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
     std::string u = IMMEDIATE(copy(u_value));
@@ -15224,7 +15224,7 @@ std::string NMD::SW_GP16_(uint64 instruction)
 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));
@@ -15270,7 +15270,7 @@ std::string NMD::SW_S9_(uint64 instruction)
 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));
@@ -15316,7 +15316,7 @@ std::string NMD::SW_U12_(uint64 instruction)
 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 u_value = extract_u_17_to_2__s2(instruction);
 
     std::string ft = FPR(copy(ft_value));
     std::string u = IMMEDIATE(copy(u_value));
diff --git a/disas/nanomips.h b/disas/nanomips.h
index 0089f17d7b..e5b8093ddf 100644
--- a/disas/nanomips.h
+++ b/disas/nanomips.h
@@ -218,7 +218,7 @@ private:
     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 extr_shiftxil7il1bs4Fmsb4(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);
@@ -227,24 +227,24 @@ private:
     uint64 extract_u_15_to_0(uint64 instruction);
     uint64 extract_u_17_to_0(uint64 instruction);
     uint64 extract_u_1_0(uint64 instruction);
-    uint64 extr_uil0il1bs4Fmsb4(uint64 instruction);
-    uint64 extr_uil0il2bs3Fmsb4(uint64 instruction);
-    uint64 extr_uil0il2bs4Fmsb5(uint64 instruction);
-    uint64 extr_uil0il2bs5Fmsb6(uint64 instruction);
-    uint64 extr_uil0il2bs6Fmsb7(uint64 instruction);
-    uint64 extr_uil0il2bs7Fmsb8(uint64 instruction);
-    uint64 extr_uil0il32bs32Fmsb63(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 extr_uil1il1bs17Fmsb17(uint64 instruction);
-    uint64 extr_uil1il1bs2Fmsb2(uint64 instruction);
-    uint64 extr_uil2il2bs16Fmsb17(uint64 instruction);
-    uint64 extr_uil2il2bs19Fmsb20(uint64 instruction);
-    uint64 extr_uil3il3bs18Fmsb20(uint64 instruction);
-    uint64 extr_uil3il3bs1_il8il2bs1Fmsb3(uint64 instruction);
-    uint64 extr_uil3il3bs9Fmsb11(uint64 instruction);
-    uint64 extr_uil4il4bs4Fmsb7(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);
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/5] disas: nanoMIPS: Fix preamble text
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 1/5] disas: nanoMIPS: Fix preamble text Aleksandar Markovic
@ 2018-12-18 10:43   ` Stefan Markovic
  0 siblings, 0 replies; 11+ messages in thread
From: Stefan Markovic @ 2018-12-18 10:43 UTC (permalink / raw)
  To: Aleksandar Markovic, qemu-devel, Aleksandar Markovic


On 17.12.18. 18:10, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Fix several mistakes in preambles of nanomips disassembler source
> files.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>   disas/nanomips.cpp | 7 ++++---
>   disas/nanomips.h   | 7 ++++---
>   2 files changed, 8 insertions(+), 6 deletions(-)


Reviewed-by: Stefan Markovic <smarkovic@wavecomp.com>


> diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
> index 1238c2ff33..f9ef0a25f4 100644
> --- a/disas/nanomips.cpp
> +++ b/disas/nanomips.cpp
> @@ -1,13 +1,13 @@
>   /*
>    *  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,
> @@ -17,6 +17,7 @@
>    *
>    *  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" {
> diff --git a/disas/nanomips.h b/disas/nanomips.h
> index 84cc9a6dfc..3df138d63f 100644
> --- a/disas/nanomips.h
> +++ b/disas/nanomips.h
> @@ -1,13 +1,13 @@
>   /*
>    *  Header 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,
> @@ -17,6 +17,7 @@
>    *
>    *  You should have received a copy of the GNU General Public License
>    *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
> + *
>    */
>   
>   #ifndef NANOMIPS_DISASSEMBLER_H

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH v2 2/5] disas: nanoMIPS: Remove functions that are not used
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 2/5] disas: nanoMIPS: Remove functions that are not used Aleksandar Markovic
@ 2018-12-18 13:07   ` Stefan Markovic
  0 siblings, 0 replies; 11+ messages in thread
From: Stefan Markovic @ 2018-12-18 13:07 UTC (permalink / raw)
  To: Aleksandar Markovic, qemu-devel, Aleksandar Markovic


On 17.12.18. 18:10, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Some functions were not used at all. Compiler doesn't complain
> since they are class memebers. Remove them - no future usage is
> planned.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>   disas/nanomips.cpp | 208 ---------------------------------------------
>   disas/nanomips.h   |  25 ------
>   2 files changed, 233 deletions(-)


Reviewed-by: Stefan Markovic <smarkovic@wavecomp.com>


> diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
> index f9ef0a25f4..935c2dee3c 100644
> --- a/disas/nanomips.cpp
> +++ b/disas/nanomips.cpp
> @@ -852,23 +852,6 @@ uint64 NMD::extract_stripe_6(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -919,14 +902,6 @@ uint64 NMD::extract_shift_5_4_3_2_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -943,15 +918,6 @@ uint64 NMD::extract_code_2_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -976,14 +942,6 @@ uint64 NMD::extr_uil3il3bs18Fmsb20(uint64 instruction)
>   }
>   
>   
> -uint64 NMD::extr_xil12il0bs1Fmsb0(uint64 instruction)
> -{
> -    uint64 value = 0;
> -    value |= extract_bits(instruction, 12, 1);
> -    return value;
> -}
> -
> -
>   uint64 NMD::extr_uil0il2bs4Fmsb5(uint64 instruction)
>   {
>       uint64 value = 0;
> @@ -1008,14 +966,6 @@ uint64 NMD::extr_uil0il2bs3Fmsb4(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1048,22 +998,6 @@ uint64 NMD::extract_ru_7_6_5_4_3(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1072,15 +1006,6 @@ uint64 NMD::extract_u_17_to_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1090,14 +1015,6 @@ uint64 NMD::extract_rsz4_4_2_1_0(uint64 instruction)
>   }
>   
>   
> -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 value = 0;
> @@ -1150,15 +1067,6 @@ int64 NMD::extract_shift_21_20_19_18_17_16(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1168,14 +1076,6 @@ uint64 NMD::extract_rd2_3_8(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1184,14 +1084,6 @@ uint64 NMD::extract_code_17_to_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1260,15 +1152,6 @@ uint64 NMD::extract_hs_20_19_18_17_16(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1285,14 +1168,6 @@ uint64 NMD::extract_lsb_4_3_2_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1333,14 +1208,6 @@ uint64 NMD::extract_cs_20_19_18_17_16(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1366,14 +1233,6 @@ uint64 NMD::extr_uil0il2bs6Fmsb7(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1464,15 +1323,6 @@ uint64 NMD::extract_bit_16_15_14_13_12_11(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1533,22 +1383,6 @@ uint64 NMD::extract_u_20_19_18_17_16_15_14_13(uint64 instruction)
>   }
>   
>   
> -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 value = 0;
> @@ -1591,15 +1425,6 @@ int64 NMD::extr_sil0il25bs1_il1il1bs24Tmsb25(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1617,15 +1442,6 @@ uint64 NMD::extr_uil3il3bs1_il8il2bs1Fmsb3(uint64 instruction)
>   }
>   
>   
> -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 value = 0;
> @@ -1634,14 +1450,6 @@ uint64 NMD::extract_fd_10_9_8_7_6(uint64 instruction)
>   }
>   
>   
> -uint64 NMD::extr_xil6il0bs3Fmsb2(uint64 instruction)
> -{
> -    uint64 value = 0;
> -    value |= extract_bits(instruction, 6, 3);
> -    return value;
> -}
> -
> -
>   uint64 NMD::extr_uil0il2bs5Fmsb6(uint64 instruction)
>   {
>       uint64 value = 0;
> @@ -1675,14 +1483,6 @@ uint64 NMD::extract_ct_25_24_23_22_21(uint64 instruction)
>   }
>   
>   
> -uint64 NMD::extr_xil11il0bs1Fmsb0(uint64 instruction)
> -{
> -    uint64 value = 0;
> -    value |= extract_bits(instruction, 11, 1);
> -    return value;
> -}
> -
> -
>   uint64 NMD::extr_uil2il2bs19Fmsb20(uint64 instruction)
>   {
>       uint64 value = 0;
> @@ -1709,14 +1509,6 @@ uint64 NMD::extr_uil0il1bs4Fmsb4(uint64 instruction)
>   }
>   
>   
> -uint64 NMD::extr_xil9il0bs2Fmsb1(uint64 instruction)
> -{
> -    uint64 value = 0;
> -    value |= extract_bits(instruction, 9, 2);
> -    return value;
> -}
> -
> -
>   
>   bool NMD::ADDIU_32__cond(uint64 instruction)
>   {
> diff --git a/disas/nanomips.h b/disas/nanomips.h
> index 3df138d63f..611eeebaae 100644
> --- a/disas/nanomips.h
> +++ b/disas/nanomips.h
> @@ -245,31 +245,6 @@ private:
>       uint64 extr_uil3il3bs1_il8il2bs1Fmsb3(uint64 instruction);
>       uint64 extr_uil3il3bs9Fmsb11(uint64 instruction);
>       uint64 extr_uil4il4bs4Fmsb7(uint64 instruction);
> -    uint64 extr_xil0il0bs12Fmsb11(uint64 instruction);
> -    uint64 extr_xil0il0bs3_il4il0bs1Fmsb2(uint64 instruction);
> -    uint64 extr_xil10il0bs1Fmsb0(uint64 instruction);
> -    uint64 extr_xil10il0bs1_il11il0bs5Fmsb4(uint64 instruction);
> -    uint64 extr_xil10il0bs1_il14il0bs2Fmsb1(uint64 instruction);
> -    uint64 extr_xil10il0bs4_il22il0bs4Fmsb3(uint64 instruction);
> -    uint64 extr_xil10il0bs6Fmsb5(uint64 instruction);
> -    uint64 extr_xil11il0bs1Fmsb0(uint64 instruction);
> -    uint64 extr_xil11il0bs5Fmsb4(uint64 instruction);
> -    uint64 extr_xil12il0bs1Fmsb0(uint64 instruction);
> -    uint64 extr_xil14il0bs1_il15il0bs1Fmsb0(uint64 instruction);
> -    uint64 extr_xil14il0bs2Fmsb1(uint64 instruction);
> -    uint64 extr_xil15il0bs1Fmsb0(uint64 instruction);
> -    uint64 extr_xil16il0bs10Fmsb9(uint64 instruction);
> -    uint64 extr_xil16il0bs5Fmsb4(uint64 instruction);
> -    uint64 extr_xil17il0bs1Fmsb0(uint64 instruction);
> -    uint64 extr_xil17il0bs9Fmsb8(uint64 instruction);
> -    uint64 extr_xil21il0bs5Fmsb4(uint64 instruction);
> -    uint64 extr_xil24il0bs1Fmsb0(uint64 instruction);
> -    uint64 extr_xil2il0bs1_il15il0bs1Fmsb0(uint64 instruction);
> -    uint64 extr_xil6il0bs3Fmsb2(uint64 instruction);
> -    uint64 extr_xil6il0bs3_il10il0bs1Fmsb2(uint64 instruction);
> -    uint64 extr_xil9il0bs2Fmsb1(uint64 instruction);
> -    uint64 extr_xil9il0bs3Fmsb2(uint64 instruction);
> -    uint64 extr_xil9il0bs3_il16il0bs5Fmsb4(uint64 instruction);
>   
>       bool ADDIU_32__cond(uint64 instruction);
>       bool ADDIU_RS5__cond(uint64 instruction);

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH v2 3/5] disas: nanoMIPS: Fix a function misnomer
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 3/5] disas: nanoMIPS: Fix a function misnomer Aleksandar Markovic
@ 2018-12-18 13:11   ` Stefan Markovic
  0 siblings, 0 replies; 11+ messages in thread
From: Stefan Markovic @ 2018-12-18 13:11 UTC (permalink / raw)
  To: Aleksandar Markovic, qemu-devel, Aleksandar Markovic


On 17.12.18. 18:10, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Fix wrong name of a function. The convention in this file is that
> names of extraction functions should reflect bit patterns they are
> extracting.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>   disas/nanomips.cpp | 264 ++++++++++++++++++++++-----------------------
>   disas/nanomips.h   |   2 +-
>   2 files changed, 133 insertions(+), 133 deletions(-)


Reviewed-by: Stefan Markovic <smarkovic@wavecomp.com>


> diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
> index 935c2dee3c..cfad1ec845 100644
> --- a/disas/nanomips.cpp
> +++ b/disas/nanomips.cpp
> @@ -1391,7 +1391,7 @@ uint64 NMD::extr_uil2il2bs16Fmsb17(uint64 instruction)
>   }
>   
>   
> -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);
> @@ -1579,7 +1579,7 @@ bool NMD::PREFE_cond(uint64 instruction)
>   
>   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;
>   }
>   
> @@ -1727,7 +1727,7 @@ std::string NMD::ACLR(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2039,7 +2039,7 @@ std::string NMD::ADDIUPC_48_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2063,7 +2063,7 @@ std::string NMD::ADDQ_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2087,7 +2087,7 @@ std::string NMD::ADDQ_S_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2112,7 +2112,7 @@ std::string NMD::ADDQ_S_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2137,7 +2137,7 @@ std::string NMD::ADDQH_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2161,7 +2161,7 @@ std::string NMD::ADDQH_R_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2185,7 +2185,7 @@ std::string NMD::ADDQH_R_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2209,7 +2209,7 @@ std::string NMD::ADDQH_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2256,7 +2256,7 @@ std::string NMD::ADDU_16_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2302,7 +2302,7 @@ std::string NMD::ADDU_4X4_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2326,7 +2326,7 @@ std::string NMD::ADDU_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2350,7 +2350,7 @@ std::string NMD::ADDU_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2374,7 +2374,7 @@ std::string NMD::ADDU_S_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2399,7 +2399,7 @@ std::string NMD::ADDU_S_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2424,7 +2424,7 @@ std::string NMD::ADDUH_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2447,7 +2447,7 @@ std::string NMD::ADDUH_R_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -2514,7 +2514,7 @@ std::string NMD::AND_16_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -4721,7 +4721,7 @@ std::string NMD::CMP_UN_S(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -4745,7 +4745,7 @@ std::string NMD::CMPGDU_EQ_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -4769,7 +4769,7 @@ std::string NMD::CMPGDU_LE_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -4793,7 +4793,7 @@ std::string NMD::CMPGDU_LT_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -4817,7 +4817,7 @@ std::string NMD::CMPGU_EQ_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -4841,7 +4841,7 @@ std::string NMD::CMPGU_LE_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -5329,7 +5329,7 @@ std::string NMD::DADDIU_U12_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -5353,7 +5353,7 @@ std::string NMD::DADD(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -5421,7 +5421,7 @@ std::string NMD::DCLZ(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -5445,7 +5445,7 @@ std::string NMD::DDIV(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -5669,7 +5669,7 @@ std::string NMD::DI(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -5741,7 +5741,7 @@ std::string NMD::DIV_S(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -5765,7 +5765,7 @@ std::string NMD::DIVU(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 u2_value = extract_u2_10_9(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
> @@ -5905,7 +5905,7 @@ std::string NMD::DMFGC0(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -5929,7 +5929,7 @@ std::string NMD::DMOD(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6065,7 +6065,7 @@ std::string NMD::DMT(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6089,7 +6089,7 @@ std::string NMD::DMUH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6113,7 +6113,7 @@ std::string NMD::DMUHU(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6137,7 +6137,7 @@ std::string NMD::DMUL(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6593,7 +6593,7 @@ std::string NMD::DROTR32(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6691,7 +6691,7 @@ std::string NMD::DSLL32(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6763,7 +6763,7 @@ std::string NMD::DSRA32(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6835,7 +6835,7 @@ std::string NMD::DSRL32(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6859,7 +6859,7 @@ std::string NMD::DSRLV(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -6883,7 +6883,7 @@ std::string NMD::DSUB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -7108,7 +7108,7 @@ 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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -7134,7 +7134,7 @@ 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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -7449,7 +7449,7 @@ 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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -7562,7 +7562,7 @@ std::string NMD::FLOOR_W_S(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8014,7 +8014,7 @@ std::string NMD::LBUE(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8038,7 +8038,7 @@ std::string NMD::LBUX(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8322,7 +8322,7 @@ std::string NMD::LDPC_48_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8346,7 +8346,7 @@ std::string NMD::LDX(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8606,7 +8606,7 @@ std::string NMD::LHUE(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8630,7 +8630,7 @@ std::string NMD::LHUX(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8654,7 +8654,7 @@ std::string NMD::LHUXS(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8678,7 +8678,7 @@ std::string NMD::LHXS(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -8890,7 +8890,7 @@ std::string NMD::LLWPE(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 u2_value = extract_u2_10_9(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
> @@ -9384,7 +9384,7 @@ std::string NMD::LWU_U12_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -9408,7 +9408,7 @@ std::string NMD::LWUX(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -9432,7 +9432,7 @@ std::string NMD::LWUXS(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -9480,7 +9480,7 @@ std::string NMD::LWXS_16_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10168,7 +10168,7 @@ std::string NMD::MINA_S(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10192,7 +10192,7 @@ std::string NMD::MOD(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10216,7 +10216,7 @@ std::string NMD::MODSUB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10384,7 +10384,7 @@ std::string NMD::MOVE(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10408,7 +10408,7 @@ std::string NMD::MOVN(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10830,7 +10830,7 @@ std::string NMD::MTTR(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10854,7 +10854,7 @@ std::string NMD::MUH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10878,7 +10878,7 @@ std::string NMD::MUHU(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10948,7 +10948,7 @@ std::string NMD::MUL_D(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -10972,7 +10972,7 @@ std::string NMD::MUL_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11020,7 +11020,7 @@ std::string NMD::MUL_S(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11044,7 +11044,7 @@ std::string NMD::MULEQ_S_W_PHL(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11068,7 +11068,7 @@ std::string NMD::MULEQ_S_W_PHR(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11092,7 +11092,7 @@ std::string NMD::MULEU_S_PH_QBL(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11116,7 +11116,7 @@ std::string NMD::MULEU_S_PH_QBR(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11140,7 +11140,7 @@ std::string NMD::MULQ_RS_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11164,7 +11164,7 @@ std::string NMD::MULQ_RS_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11188,7 +11188,7 @@ std::string NMD::MULQ_S_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11308,7 +11308,7 @@ std::string NMD::MULTU_DSP_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11412,7 +11412,7 @@ std::string NMD::NOP_32_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11480,7 +11480,7 @@ std::string NMD::OR_16_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11528,7 +11528,7 @@ std::string NMD::ORI(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11570,7 +11570,7 @@ std::string NMD::PAUSE(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11594,7 +11594,7 @@ std::string NMD::PICK_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11838,7 +11838,7 @@ std::string NMD::PRECEU_PH_QBR(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11910,7 +11910,7 @@ std::string NMD::PRECR_SRA_R_PH_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11934,7 +11934,7 @@ std::string NMD::PRECRQ_PH_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11958,7 +11958,7 @@ std::string NMD::PRECRQ_QB_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -11982,7 +11982,7 @@ std::string NMD::PRECRQ_RS_PH_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -12482,7 +12482,7 @@ std::string NMD::ROTR(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -12852,7 +12852,7 @@ std::string NMD::SBE(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -13320,7 +13320,7 @@ std::string NMD::SDPC_48_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -13344,7 +13344,7 @@ std::string NMD::SDXS(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -13838,7 +13838,7 @@ std::string NMD::SHLL_S_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -13862,7 +13862,7 @@ std::string NMD::SHLLV_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -13886,7 +13886,7 @@ std::string NMD::SHLLV_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -13910,7 +13910,7 @@ std::string NMD::SHLLV_S_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14054,7 +14054,7 @@ std::string NMD::SHRA_R_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14078,7 +14078,7 @@ std::string NMD::SHRAV_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14102,7 +14102,7 @@ std::string NMD::SHRAV_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14126,7 +14126,7 @@ std::string NMD::SHRAV_R_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14150,7 +14150,7 @@ std::string NMD::SHRAV_R_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14222,7 +14222,7 @@ std::string NMD::SHRL_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14246,7 +14246,7 @@ std::string NMD::SHRLV_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14270,7 +14270,7 @@ std::string NMD::SHRLV_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14294,7 +14294,7 @@ std::string NMD::SHX(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14386,7 +14386,7 @@ std::string NMD::SLL_32_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14410,7 +14410,7 @@ std::string NMD::SLLV(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14482,7 +14482,7 @@ std::string NMD::SLTIU(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14506,7 +14506,7 @@ std::string NMD::SLTU(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14618,7 +14618,7 @@ std::string NMD::SRA(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14690,7 +14690,7 @@ std::string NMD::SRL_32_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14714,7 +14714,7 @@ std::string NMD::SRLV(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14786,7 +14786,7 @@ std::string NMD::SUB_S(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14811,7 +14811,7 @@ std::string NMD::SUBQ_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14836,7 +14836,7 @@ std::string NMD::SUBQ_S_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14861,7 +14861,7 @@ std::string NMD::SUBQ_S_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14886,7 +14886,7 @@ std::string NMD::SUBQH_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14911,7 +14911,7 @@ std::string NMD::SUBQH_R_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14936,7 +14936,7 @@ std::string NMD::SUBQH_R_W(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -14984,7 +14984,7 @@ std::string NMD::SUBU_16_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -15008,7 +15008,7 @@ std::string NMD::SUBU_32_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -15032,7 +15032,7 @@ std::string NMD::SUBU_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -15056,7 +15056,7 @@ std::string NMD::SUBU_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -15080,7 +15080,7 @@ std::string NMD::SUBU_S_PH(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -15105,7 +15105,7 @@ std::string NMD::SUBU_S_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -15130,7 +15130,7 @@ std::string NMD::SUBUH_QB(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -15530,7 +15530,7 @@ std::string NMD::SWPC_48_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -15554,7 +15554,7 @@ std::string NMD::SWX(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> @@ -16283,7 +16283,7 @@ std::string NMD::XOR_16_(uint64 instruction)
>   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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
> diff --git a/disas/nanomips.h b/disas/nanomips.h
> index 611eeebaae..0089f17d7b 100644
> --- a/disas/nanomips.h
> +++ b/disas/nanomips.h
> @@ -191,7 +191,7 @@ private:
>       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_20_19_18_17_16(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);

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH v2 4/5] disas: nanoMIPS: Fix order of some invocations
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 4/5] disas: nanoMIPS: Fix order of some invocations Aleksandar Markovic
@ 2018-12-18 13:26   ` Stefan Markovic
  0 siblings, 0 replies; 11+ messages in thread
From: Stefan Markovic @ 2018-12-18 13:26 UTC (permalink / raw)
  To: Aleksandar Markovic, qemu-devel, Aleksandar Markovic


On 17.12.18. 18:10, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Fix order of extraction function invocations so that extraction
> goes from MSB side to LSB side of the given instruction coding
> content. This is desireable because of consistency and easier
> visual spotting of errors.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>   disas/nanomips.cpp | 776 ++++++++++++++++++++++-----------------------
>   1 file changed, 388 insertions(+), 388 deletions(-)


Reviewed-by: Stefan Markovic <smarkovic@wavecomp.com>


> diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
> index cfad1ec845..9e876305f1 100644
> --- a/disas/nanomips.cpp
> +++ b/disas/nanomips.cpp
> @@ -1597,8 +1597,8 @@ bool NMD::SLTU_cond(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string fs = FPR(copy(fs_value));
>       std::string fd = FPR(copy(fd_value));
> @@ -1619,8 +1619,8 @@ std::string NMD::ABS_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string fs = FPR(copy(fs_value));
>       std::string fd = FPR(copy(fd_value));
> @@ -1727,8 +1727,8 @@ std::string NMD::ACLR(uint64 instruction)
>   std::string NMD::ADD(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -1800,8 +1800,8 @@ std::string NMD::ADD_S(uint64 instruction)
>   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));
> @@ -1907,8 +1907,8 @@ std::string NMD::ADDIU_GP_W_(uint64 instruction)
>   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));
> @@ -2039,8 +2039,8 @@ std::string NMD::ADDIUPC_48_(uint64 instruction)
>   std::string NMD::ADDQ_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2063,8 +2063,8 @@ std::string NMD::ADDQ_PH(uint64 instruction)
>   std::string NMD::ADDQ_S_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2087,8 +2087,8 @@ std::string NMD::ADDQ_S_PH(uint64 instruction)
>   std::string NMD::ADDQ_S_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2112,8 +2112,8 @@ std::string NMD::ADDQ_S_W(uint64 instruction)
>   std::string NMD::ADDQH_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2137,8 +2137,8 @@ std::string NMD::ADDQH_PH(uint64 instruction)
>   std::string NMD::ADDQH_R_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2161,8 +2161,8 @@ std::string NMD::ADDQH_R_PH(uint64 instruction)
>   std::string NMD::ADDQH_R_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2185,8 +2185,8 @@ std::string NMD::ADDQH_R_W(uint64 instruction)
>   std::string NMD::ADDQH_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2209,8 +2209,8 @@ std::string NMD::ADDQH_W(uint64 instruction)
>   std::string NMD::ADDSC(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2256,8 +2256,8 @@ std::string NMD::ADDU_16_(uint64 instruction)
>   std::string NMD::ADDU_32_(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2279,8 +2279,8 @@ std::string NMD::ADDU_32_(uint64 instruction)
>    */
>   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));
> @@ -2302,8 +2302,8 @@ std::string NMD::ADDU_4X4_(uint64 instruction)
>   std::string NMD::ADDU_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2326,8 +2326,8 @@ std::string NMD::ADDU_PH(uint64 instruction)
>   std::string NMD::ADDU_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2350,8 +2350,8 @@ std::string NMD::ADDU_QB(uint64 instruction)
>   std::string NMD::ADDU_S_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2374,8 +2374,8 @@ std::string NMD::ADDU_S_PH(uint64 instruction)
>   std::string NMD::ADDU_S_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2399,8 +2399,8 @@ std::string NMD::ADDU_S_QB(uint64 instruction)
>   std::string NMD::ADDUH_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2424,8 +2424,8 @@ std::string NMD::ADDUH_QB(uint64 instruction)
>   std::string NMD::ADDUH_R_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2447,8 +2447,8 @@ std::string NMD::ADDUH_R_QB(uint64 instruction)
>   std::string NMD::ADDWC(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2514,8 +2514,8 @@ std::string NMD::AND_16_(uint64 instruction)
>   std::string NMD::AND_32_(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -2561,8 +2561,8 @@ std::string NMD::ANDI_16_(uint64 instruction)
>   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));
> @@ -2585,8 +2585,8 @@ std::string NMD::ANDI_32_(uint64 instruction)
>   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));
> @@ -3378,8 +3378,8 @@ std::string NMD::CACHEE(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3400,8 +3400,8 @@ std::string NMD::CEIL_L_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3422,8 +3422,8 @@ std::string NMD::CEIL_L_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3444,8 +3444,8 @@ std::string NMD::CEIL_W_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3466,8 +3466,8 @@ std::string NMD::CEIL_W_S(uint64 instruction)
>    */
>   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));
> @@ -3488,8 +3488,8 @@ std::string NMD::CFC1(uint64 instruction)
>    */
>   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));
> @@ -3510,8 +3510,8 @@ std::string NMD::CFC2(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3532,8 +3532,8 @@ std::string NMD::CLASS_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3598,9 +3598,9 @@ std::string NMD::CLZ(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3622,9 +3622,9 @@ std::string NMD::CMP_AF_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3646,9 +3646,9 @@ std::string NMD::CMP_AF_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3692,9 +3692,9 @@ std::string NMD::CMP_EQ_PH(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3716,9 +3716,9 @@ std::string NMD::CMP_EQ_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3762,9 +3762,9 @@ std::string NMD::CMP_LE_PH(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3786,9 +3786,9 @@ std::string NMD::CMP_LE_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3832,9 +3832,9 @@ std::string NMD::CMP_LT_PH(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3856,9 +3856,9 @@ std::string NMD::CMP_LT_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3880,9 +3880,9 @@ std::string NMD::CMP_NE_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3904,9 +3904,9 @@ std::string NMD::CMP_NE_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3928,9 +3928,9 @@ std::string NMD::CMP_OR_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3952,9 +3952,9 @@ std::string NMD::CMP_OR_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -3976,9 +3976,9 @@ std::string NMD::CMP_SAF_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4000,9 +4000,9 @@ std::string NMD::CMP_SAF_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4024,9 +4024,9 @@ std::string NMD::CMP_SEQ_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4048,9 +4048,9 @@ std::string NMD::CMP_SEQ_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4072,9 +4072,9 @@ std::string NMD::CMP_SLE_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4096,9 +4096,9 @@ std::string NMD::CMP_SLE_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4120,9 +4120,9 @@ std::string NMD::CMP_SLT_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4144,9 +4144,9 @@ std::string NMD::CMP_SLT_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4168,9 +4168,9 @@ std::string NMD::CMP_SNE_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4192,9 +4192,9 @@ std::string NMD::CMP_SNE_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4216,9 +4216,9 @@ std::string NMD::CMP_SOR_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4240,9 +4240,9 @@ std::string NMD::CMP_SOR_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4264,9 +4264,9 @@ std::string NMD::CMP_SUEQ_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4288,9 +4288,9 @@ std::string NMD::CMP_SUEQ_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4312,9 +4312,9 @@ std::string NMD::CMP_SULE_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4336,9 +4336,9 @@ std::string NMD::CMP_SULE_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4360,9 +4360,9 @@ std::string NMD::CMP_SULT_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4384,9 +4384,9 @@ std::string NMD::CMP_SULT_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4408,9 +4408,9 @@ std::string NMD::CMP_SUN_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4432,9 +4432,9 @@ std::string NMD::CMP_SUNE_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4456,9 +4456,9 @@ std::string NMD::CMP_SUNE_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4480,9 +4480,9 @@ std::string NMD::CMP_SUN_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4504,9 +4504,9 @@ std::string NMD::CMP_UEQ_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4528,9 +4528,9 @@ std::string NMD::CMP_UEQ_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4552,9 +4552,9 @@ std::string NMD::CMP_ULE_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4576,9 +4576,9 @@ std::string NMD::CMP_ULE_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4600,9 +4600,9 @@ std::string NMD::CMP_ULT_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4624,9 +4624,9 @@ std::string NMD::CMP_ULT_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4648,9 +4648,9 @@ std::string NMD::CMP_UN_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4672,9 +4672,9 @@ std::string NMD::CMP_UNE_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4696,9 +4696,9 @@ std::string NMD::CMP_UNE_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
> +    uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -4721,8 +4721,8 @@ std::string NMD::CMP_UN_S(uint64 instruction)
>   std::string NMD::CMPGDU_EQ_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -4745,8 +4745,8 @@ std::string NMD::CMPGDU_EQ_QB(uint64 instruction)
>   std::string NMD::CMPGDU_LE_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -4769,8 +4769,8 @@ std::string NMD::CMPGDU_LE_QB(uint64 instruction)
>   std::string NMD::CMPGDU_LT_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -4793,8 +4793,8 @@ std::string NMD::CMPGDU_LT_QB(uint64 instruction)
>   std::string NMD::CMPGU_EQ_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -4817,8 +4817,8 @@ std::string NMD::CMPGU_EQ_QB(uint64 instruction)
>   std::string NMD::CMPGU_LE_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -4841,8 +4841,8 @@ std::string NMD::CMPGU_LE_QB(uint64 instruction)
>   std::string NMD::CMPGU_LT_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -4950,8 +4950,8 @@ std::string NMD::COP2_1(uint64 instruction)
>    */
>   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));
> @@ -4972,8 +4972,8 @@ std::string NMD::CTC1(uint64 instruction)
>    */
>   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));
> @@ -4994,8 +4994,8 @@ std::string NMD::CTC2(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5016,8 +5016,8 @@ std::string NMD::CVT_D_L(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5038,8 +5038,8 @@ std::string NMD::CVT_D_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5060,8 +5060,8 @@ std::string NMD::CVT_D_W(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5082,8 +5082,8 @@ std::string NMD::CVT_L_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5104,8 +5104,8 @@ std::string NMD::CVT_L_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5126,8 +5126,8 @@ std::string NMD::CVT_S_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5148,8 +5148,8 @@ std::string NMD::CVT_S_L(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5170,8 +5170,8 @@ std::string NMD::CVT_S_PL(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5192,8 +5192,8 @@ std::string NMD::CVT_S_PU(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5214,8 +5214,8 @@ std::string NMD::CVT_S_W(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5236,8 +5236,8 @@ std::string NMD::CVT_W_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -5281,8 +5281,8 @@ std::string NMD::DADDIU_48_(uint64 instruction)
>   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));
> @@ -5305,8 +5305,8 @@ std::string NMD::DADDIU_NEG_(uint64 instruction)
>   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));
> @@ -5329,8 +5329,8 @@ std::string NMD::DADDIU_U12_(uint64 instruction)
>   std::string NMD::DADD(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -5353,8 +5353,8 @@ std::string NMD::DADD(uint64 instruction)
>   std::string NMD::DADDU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -5421,8 +5421,8 @@ std::string NMD::DCLZ(uint64 instruction)
>   std::string NMD::DDIV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -5445,8 +5445,8 @@ std::string NMD::DDIV(uint64 instruction)
>   std::string NMD::DDIVU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -5487,9 +5487,9 @@ std::string NMD::DERET(uint64 instruction)
>   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));
> @@ -5513,9 +5513,9 @@ std::string NMD::DEXTM(uint64 instruction)
>   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));
> @@ -5539,9 +5539,9 @@ std::string NMD::DEXT(uint64 instruction)
>   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));
> @@ -5565,9 +5565,9 @@ std::string NMD::DEXTU(uint64 instruction)
>   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));
> @@ -5593,9 +5593,9 @@ std::string NMD::DINSM(uint64 instruction)
>   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));
> @@ -5621,9 +5621,9 @@ std::string NMD::DINS(uint64 instruction)
>   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));
> @@ -5669,8 +5669,8 @@ std::string NMD::DI(uint64 instruction)
>   std::string NMD::DIV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -5692,8 +5692,8 @@ std::string NMD::DIV(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -5716,8 +5716,8 @@ std::string NMD::DIV_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -5741,8 +5741,8 @@ std::string NMD::DIV_S(uint64 instruction)
>   std::string NMD::DIVU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -5765,9 +5765,9 @@ std::string NMD::DIVU(uint64 instruction)
>   std::string NMD::DLSA(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 rd_value = extract_rd_15_14_13_12_11(instruction);
>       uint64 u2_value = extract_u2_10_9(instruction);
> -    uint64 rs_value = extract_rs_20_19_18_17_16(instruction);
>   
>       std::string rd = GPR(copy(rd_value));
>       std::string rs = GPR(copy(rs_value));
> @@ -5858,8 +5858,8 @@ std::string NMD::DMFC1(uint64 instruction)
>    */
>   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));
> @@ -5905,8 +5905,8 @@ std::string NMD::DMFGC0(uint64 instruction)
>   std::string NMD::DMOD(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -5929,8 +5929,8 @@ std::string NMD::DMOD(uint64 instruction)
>   std::string NMD::DMODU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -5998,8 +5998,8 @@ std::string NMD::DMTC1(uint64 instruction)
>    */
>   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));
> @@ -6065,8 +6065,8 @@ std::string NMD::DMT(uint64 instruction)
>   std::string NMD::DMUH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6089,8 +6089,8 @@ std::string NMD::DMUH(uint64 instruction)
>   std::string NMD::DMUHU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6113,8 +6113,8 @@ std::string NMD::DMUHU(uint64 instruction)
>   std::string NMD::DMUL(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6137,8 +6137,8 @@ std::string NMD::DMUL(uint64 instruction)
>   std::string NMD::DMULU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6161,8 +6161,8 @@ std::string NMD::DMULU(uint64 instruction)
>   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));
> @@ -6185,8 +6185,8 @@ std::string NMD::DPA_W_PH(uint64 instruction)
>   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));
> @@ -6209,8 +6209,8 @@ std::string NMD::DPAQ_SA_L_W(uint64 instruction)
>   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));
> @@ -6233,8 +6233,8 @@ std::string NMD::DPAQ_S_W_PH(uint64 instruction)
>   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));
> @@ -6257,8 +6257,8 @@ std::string NMD::DPAQX_SA_W_PH(uint64 instruction)
>   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));
> @@ -6281,8 +6281,8 @@ std::string NMD::DPAQX_S_W_PH(uint64 instruction)
>   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));
> @@ -6305,8 +6305,8 @@ std::string NMD::DPAU_H_QBL(uint64 instruction)
>   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));
> @@ -6329,8 +6329,8 @@ std::string NMD::DPAU_H_QBR(uint64 instruction)
>   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));
> @@ -6353,8 +6353,8 @@ std::string NMD::DPAX_W_PH(uint64 instruction)
>   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));
> @@ -6377,8 +6377,8 @@ std::string NMD::DPS_W_PH(uint64 instruction)
>   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));
> @@ -6401,8 +6401,8 @@ std::string NMD::DPSQ_SA_L_W(uint64 instruction)
>   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));
> @@ -6425,8 +6425,8 @@ std::string NMD::DPSQ_S_W_PH(uint64 instruction)
>   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));
> @@ -6449,8 +6449,8 @@ std::string NMD::DPSQX_SA_W_PH(uint64 instruction)
>   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));
> @@ -6473,8 +6473,8 @@ std::string NMD::DPSQX_S_W_PH(uint64 instruction)
>   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));
> @@ -6497,8 +6497,8 @@ std::string NMD::DPSU_H_QBL(uint64 instruction)
>   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));
> @@ -6521,8 +6521,8 @@ std::string NMD::DPSU_H_QBR(uint64 instruction)
>   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));
> @@ -6545,8 +6545,8 @@ std::string NMD::DPSX_W_PH(uint64 instruction)
>   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));
> @@ -6569,8 +6569,8 @@ std::string NMD::DROTR(uint64 instruction)
>   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));
> @@ -6593,8 +6593,8 @@ std::string NMD::DROTR32(uint64 instruction)
>   std::string NMD::DROTRV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6617,9 +6617,9 @@ std::string NMD::DROTRV(uint64 instruction)
>   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));
> @@ -6643,8 +6643,8 @@ std::string NMD::DROTX(uint64 instruction)
>   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));
> @@ -6667,8 +6667,8 @@ std::string NMD::DSLL(uint64 instruction)
>   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));
> @@ -6691,8 +6691,8 @@ std::string NMD::DSLL32(uint64 instruction)
>   std::string NMD::DSLLV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6715,8 +6715,8 @@ std::string NMD::DSLLV(uint64 instruction)
>   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));
> @@ -6739,8 +6739,8 @@ std::string NMD::DSRA(uint64 instruction)
>   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));
> @@ -6763,8 +6763,8 @@ std::string NMD::DSRA32(uint64 instruction)
>   std::string NMD::DSRAV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6787,8 +6787,8 @@ std::string NMD::DSRAV(uint64 instruction)
>   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));
> @@ -6811,8 +6811,8 @@ std::string NMD::DSRL(uint64 instruction)
>   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));
> @@ -6835,8 +6835,8 @@ std::string NMD::DSRL32(uint64 instruction)
>   std::string NMD::DSRLV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6859,8 +6859,8 @@ std::string NMD::DSRLV(uint64 instruction)
>   std::string NMD::DSUB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -6883,8 +6883,8 @@ std::string NMD::DSUB(uint64 instruction)
>   std::string NMD::DSUBU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -7108,8 +7108,8 @@ 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_15_14_13_12_11(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));
> @@ -7134,8 +7134,8 @@ 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_15_14_13_12_11(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));
> @@ -7183,8 +7183,8 @@ std::string NMD::EXTPDP(uint64 instruction)
>   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));
> @@ -7231,8 +7231,8 @@ std::string NMD::EXTP(uint64 instruction)
>   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));
> @@ -7351,8 +7351,8 @@ std::string NMD::EXTR_W(uint64 instruction)
>   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));
> @@ -7375,8 +7375,8 @@ std::string NMD::EXTRV_RS_W(uint64 instruction)
>   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));
> @@ -7399,8 +7399,8 @@ std::string NMD::EXTRV_R_W(uint64 instruction)
>   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));
> @@ -7423,8 +7423,8 @@ std::string NMD::EXTRV_S_H(uint64 instruction)
>   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));
> @@ -7449,8 +7449,8 @@ 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_15_14_13_12_11(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));
> @@ -7473,8 +7473,8 @@ std::string NMD::EXTW(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -7495,8 +7495,8 @@ std::string NMD::FLOOR_L_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -7517,8 +7517,8 @@ std::string NMD::FLOOR_L_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -7539,8 +7539,8 @@ std::string NMD::FLOOR_W_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -7562,8 +7562,8 @@ std::string NMD::FLOOR_W_S(uint64 instruction)
>   std::string NMD::FORK(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -7848,8 +7848,8 @@ std::string NMD::LB_S9_(uint64 instruction)
>   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));
> @@ -7966,8 +7966,8 @@ std::string NMD::LBU_S9_(uint64 instruction)
>   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));
> @@ -8014,8 +8014,8 @@ std::string NMD::LBUE(uint64 instruction)
>   std::string NMD::LBUX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -8038,8 +8038,8 @@ std::string NMD::LBUX(uint64 instruction)
>   std::string NMD::LBX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -8108,8 +8108,8 @@ std::string NMD::LD_S9_(uint64 instruction)
>   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));
> @@ -8322,8 +8322,8 @@ std::string NMD::LDPC_48_(uint64 instruction)
>   std::string NMD::LDX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -8346,8 +8346,8 @@ std::string NMD::LDX(uint64 instruction)
>   std::string NMD::LDXS(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -8440,8 +8440,8 @@ std::string NMD::LH_S9_(uint64 instruction)
>   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));
> @@ -8558,8 +8558,8 @@ std::string NMD::LHU_S9_(uint64 instruction)
>   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));
> @@ -8606,8 +8606,8 @@ std::string NMD::LHUE(uint64 instruction)
>   std::string NMD::LHUX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -8630,8 +8630,8 @@ std::string NMD::LHUX(uint64 instruction)
>   std::string NMD::LHUXS(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -8654,8 +8654,8 @@ std::string NMD::LHUXS(uint64 instruction)
>   std::string NMD::LHXS(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -8678,8 +8678,8 @@ std::string NMD::LHXS(uint64 instruction)
>   std::string NMD::LHX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -8794,8 +8794,8 @@ std::string NMD::LLD(uint64 instruction)
>   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));
> @@ -8842,8 +8842,8 @@ std::string NMD::LLE(uint64 instruction)
>   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));
> @@ -8866,8 +8866,8 @@ std::string NMD::LLWP(uint64 instruction)
>   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));
> @@ -9076,8 +9076,8 @@ std::string NMD::LW_SP_(uint64 instruction)
>   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));
> @@ -9360,8 +9360,8 @@ std::string NMD::LWU_S9_(uint64 instruction)
>   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));
> @@ -9384,8 +9384,8 @@ std::string NMD::LWU_U12_(uint64 instruction)
>   std::string NMD::LWUX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -9408,8 +9408,8 @@ std::string NMD::LWUX(uint64 instruction)
>   std::string NMD::LWUXS(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -9432,8 +9432,8 @@ std::string NMD::LWUXS(uint64 instruction)
>   std::string NMD::LWX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -9455,9 +9455,9 @@ std::string NMD::LWX(uint64 instruction)
>    */
>   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));
> @@ -9480,8 +9480,8 @@ std::string NMD::LWXS_16_(uint64 instruction)
>   std::string NMD::LWXS_32_(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -9504,8 +9504,8 @@ std::string NMD::LWXS_32_(uint64 instruction)
>   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));
> @@ -9527,8 +9527,8 @@ std::string NMD::MADD_DSP_(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -9551,8 +9551,8 @@ std::string NMD::MADDF_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -9576,8 +9576,8 @@ std::string NMD::MADDF_S(uint64 instruction)
>   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));
> @@ -9600,8 +9600,8 @@ std::string NMD::MADDU_DSP_(uint64 instruction)
>   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));
> @@ -9624,8 +9624,8 @@ std::string NMD::MAQ_S_W_PHL(uint64 instruction)
>   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));
> @@ -9648,8 +9648,8 @@ std::string NMD::MAQ_S_W_PHR(uint64 instruction)
>   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));
> @@ -9672,8 +9672,8 @@ std::string NMD::MAQ_SA_W_PHL(uint64 instruction)
>   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));
> @@ -9695,8 +9695,8 @@ std::string NMD::MAQ_SA_W_PHR(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -9719,8 +9719,8 @@ std::string NMD::MAX_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -9743,8 +9743,8 @@ std::string NMD::MAX_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -9767,8 +9767,8 @@ std::string NMD::MAXA_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -9837,8 +9837,8 @@ std::string NMD::MFC1(uint64 instruction)
>    */
>   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));
> @@ -9929,8 +9929,8 @@ std::string NMD::MFHC1(uint64 instruction)
>    */
>   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));
> @@ -10071,8 +10071,8 @@ std::string NMD::MFTR(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -10095,8 +10095,8 @@ std::string NMD::MIN_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -10119,8 +10119,8 @@ std::string NMD::MIN_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -10143,8 +10143,8 @@ std::string NMD::MINA_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -10168,8 +10168,8 @@ std::string NMD::MINA_S(uint64 instruction)
>   std::string NMD::MOD(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10192,8 +10192,8 @@ std::string NMD::MOD(uint64 instruction)
>   std::string NMD::MODSUB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10216,8 +10216,8 @@ std::string NMD::MODSUB(uint64 instruction)
>   std::string NMD::MODU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10239,8 +10239,8 @@ std::string NMD::MODU(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -10261,8 +10261,8 @@ std::string NMD::MOV_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -10283,9 +10283,9 @@ std::string NMD::MOV_S(uint64 instruction)
>    */
>   std::string NMD::MOVE_BALC(uint64 instruction)
>   {
> +    uint64 rtz4_value = extract_rtz4_27_26_25_23_22_21(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);
>   
>       std::string rd1 = GPR(encode_rd1_from_rd(rd1_value));
>       std::string rtz4 = GPR(encode_gpr4_zero(rtz4_value));
> @@ -10384,8 +10384,8 @@ std::string NMD::MOVE(uint64 instruction)
>   std::string NMD::MOVN(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10408,8 +10408,8 @@ std::string NMD::MOVN(uint64 instruction)
>   std::string NMD::MOVZ(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10432,8 +10432,8 @@ std::string NMD::MOVZ(uint64 instruction)
>   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));
> @@ -10455,8 +10455,8 @@ std::string NMD::MSUB_DSP_(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -10479,8 +10479,8 @@ std::string NMD::MSUBF_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -10504,8 +10504,8 @@ std::string NMD::MSUBF_S(uint64 instruction)
>   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));
> @@ -10573,8 +10573,8 @@ std::string NMD::MTC1(uint64 instruction)
>    */
>   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));
> @@ -10665,8 +10665,8 @@ std::string NMD::MTHC1(uint64 instruction)
>    */
>   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));
> @@ -10711,8 +10711,8 @@ std::string NMD::MTHGC0(uint64 instruction)
>    */
>   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));
> @@ -10733,8 +10733,8 @@ std::string NMD::MTHI_DSP_(uint64 instruction)
>    */
>   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));
> @@ -10781,8 +10781,8 @@ std::string NMD::MTHTR(uint64 instruction)
>    */
>   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));
> @@ -10830,8 +10830,8 @@ std::string NMD::MTTR(uint64 instruction)
>   std::string NMD::MUH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10854,8 +10854,8 @@ std::string NMD::MUH(uint64 instruction)
>   std::string NMD::MUHU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10878,8 +10878,8 @@ std::string NMD::MUHU(uint64 instruction)
>   std::string NMD::MUL_32_(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10923,8 +10923,8 @@ std::string NMD::MUL_4X4_(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -10948,8 +10948,8 @@ std::string NMD::MUL_D(uint64 instruction)
>   std::string NMD::MUL_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10972,8 +10972,8 @@ std::string NMD::MUL_PH(uint64 instruction)
>   std::string NMD::MUL_S_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -10995,8 +10995,8 @@ std::string NMD::MUL_S_PH(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -11020,8 +11020,8 @@ std::string NMD::MUL_S(uint64 instruction)
>   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_15_14_13_12_11(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));
> @@ -11044,8 +11044,8 @@ std::string NMD::MULEQ_S_W_PHL(uint64 instruction)
>   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_15_14_13_12_11(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));
> @@ -11068,8 +11068,8 @@ std::string NMD::MULEQ_S_W_PHR(uint64 instruction)
>   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_15_14_13_12_11(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));
> @@ -11092,8 +11092,8 @@ std::string NMD::MULEU_S_PH_QBL(uint64 instruction)
>   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_15_14_13_12_11(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));
> @@ -11116,8 +11116,8 @@ std::string NMD::MULEU_S_PH_QBR(uint64 instruction)
>   std::string NMD::MULQ_RS_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11140,8 +11140,8 @@ std::string NMD::MULQ_RS_PH(uint64 instruction)
>   std::string NMD::MULQ_RS_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11164,8 +11164,8 @@ std::string NMD::MULQ_RS_W(uint64 instruction)
>   std::string NMD::MULQ_S_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11188,8 +11188,8 @@ std::string NMD::MULQ_S_PH(uint64 instruction)
>   std::string NMD::MULQ_S_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11212,8 +11212,8 @@ std::string NMD::MULQ_S_W(uint64 instruction)
>   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));
> @@ -11236,8 +11236,8 @@ std::string NMD::MULSA_W_PH(uint64 instruction)
>   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));
> @@ -11260,8 +11260,8 @@ std::string NMD::MULSAQ_S_W_PH(uint64 instruction)
>   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));
> @@ -11284,8 +11284,8 @@ std::string NMD::MULT_DSP_(uint64 instruction)
>   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));
> @@ -11308,8 +11308,8 @@ std::string NMD::MULTU_DSP_(uint64 instruction)
>   std::string NMD::MULU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11331,8 +11331,8 @@ std::string NMD::MULU(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -11353,8 +11353,8 @@ std::string NMD::NEG_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -11412,8 +11412,8 @@ std::string NMD::NOP_32_(uint64 instruction)
>   std::string NMD::NOR(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11480,8 +11480,8 @@ std::string NMD::OR_16_(uint64 instruction)
>   std::string NMD::OR_32_(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11504,8 +11504,8 @@ std::string NMD::OR_32_(uint64 instruction)
>   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));
> @@ -11528,8 +11528,8 @@ std::string NMD::ORI(uint64 instruction)
>   std::string NMD::PACKRL_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11570,8 +11570,8 @@ std::string NMD::PAUSE(uint64 instruction)
>   std::string NMD::PICK_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11594,8 +11594,8 @@ std::string NMD::PICK_PH(uint64 instruction)
>   std::string NMD::PICK_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11838,8 +11838,8 @@ std::string NMD::PRECEU_PH_QBR(uint64 instruction)
>   std::string NMD::PRECR_QB_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11910,8 +11910,8 @@ std::string NMD::PRECR_SRA_R_PH_W(uint64 instruction)
>   std::string NMD::PRECRQ_PH_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11934,8 +11934,8 @@ std::string NMD::PRECRQ_PH_W(uint64 instruction)
>   std::string NMD::PRECRQ_QB_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -11958,8 +11958,8 @@ std::string NMD::PRECRQ_QB_PH(uint64 instruction)
>   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_15_14_13_12_11(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));
> @@ -11982,8 +11982,8 @@ std::string NMD::PRECRQ_RS_PH_W(uint64 instruction)
>   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_15_14_13_12_11(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));
> @@ -12005,9 +12005,9 @@ std::string NMD::PRECRQU_S_QB_PH(uint64 instruction)
>    */
>   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 = extr_sil0il0bs8_il15il8bs1Tmsb8(instruction);
>   
>       std::string hint = IMMEDIATE(copy(hint_value));
>       std::string s = IMMEDIATE(copy(s_value));
> @@ -12030,8 +12030,8 @@ std::string NMD::PREF_S9_(uint64 instruction)
>   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));
> @@ -12191,8 +12191,8 @@ std::string NMD::RDPGPR(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12213,8 +12213,8 @@ std::string NMD::RECIP_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12368,8 +12368,8 @@ std::string NMD::RESTORE_JRC_16_(uint64 instruction)
>    */
>   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 count_value = extract_count_19_18_17_16(instruction);
>       uint64 u_value = extr_uil3il3bs9Fmsb11(instruction);
>       uint64 gp_value = extract_gp_2(instruction);
>   
> @@ -12413,8 +12413,8 @@ std::string NMD::RESTOREF(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12435,8 +12435,8 @@ std::string NMD::RINT_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12458,8 +12458,8 @@ std::string NMD::RINT_S(uint64 instruction)
>   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));
> @@ -12482,8 +12482,8 @@ std::string NMD::ROTR(uint64 instruction)
>   std::string NMD::ROTRV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -12506,10 +12506,10 @@ std::string NMD::ROTRV(uint64 instruction)
>   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 rs_value = extract_rs_20_19_18_17_16(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 shift_value = extract_shift_4_3_2_1_0(instruction);
>   
>       std::string rt = GPR(copy(rt_value));
>       std::string rs = GPR(copy(rs_value));
> @@ -12534,8 +12534,8 @@ std::string NMD::ROTX(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12556,8 +12556,8 @@ std::string NMD::ROUND_L_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12578,8 +12578,8 @@ std::string NMD::ROUND_L_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12600,8 +12600,8 @@ std::string NMD::ROUND_W_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12622,8 +12622,8 @@ std::string NMD::ROUND_W_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12644,8 +12644,8 @@ std::string NMD::RSQRT_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -12804,8 +12804,8 @@ std::string NMD::SB_S9_(uint64 instruction)
>   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));
> @@ -12852,8 +12852,8 @@ std::string NMD::SBE(uint64 instruction)
>   std::string NMD::SBX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -12924,8 +12924,8 @@ std::string NMD::SCD(uint64 instruction)
>   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));
> @@ -12972,8 +12972,8 @@ std::string NMD::SCE(uint64 instruction)
>   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));
> @@ -12996,8 +12996,8 @@ std::string NMD::SCWP(uint64 instruction)
>   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));
> @@ -13066,8 +13066,8 @@ std::string NMD::SD_S9_(uint64 instruction)
>   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));
> @@ -13320,8 +13320,8 @@ std::string NMD::SDPC_48_(uint64 instruction)
>   std::string NMD::SDXS(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -13344,8 +13344,8 @@ std::string NMD::SDXS(uint64 instruction)
>   std::string NMD::SDX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -13411,8 +13411,8 @@ std::string NMD::SEH(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -13435,8 +13435,8 @@ std::string NMD::SEL_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -13459,8 +13459,8 @@ std::string NMD::SEL_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -13483,8 +13483,8 @@ std::string NMD::SELEQZ_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -13507,8 +13507,8 @@ std::string NMD::SELEQZ_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -13531,8 +13531,8 @@ std::string NMD::SELNEZ_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -13556,8 +13556,8 @@ std::string NMD::SELNEZ_S(uint64 instruction)
>   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));
> @@ -13650,8 +13650,8 @@ std::string NMD::SH_S9_(uint64 instruction)
>   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));
> @@ -13838,8 +13838,8 @@ std::string NMD::SHLL_S_W(uint64 instruction)
>   std::string NMD::SHLLV_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -13862,8 +13862,8 @@ std::string NMD::SHLLV_PH(uint64 instruction)
>   std::string NMD::SHLLV_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -13886,8 +13886,8 @@ std::string NMD::SHLLV_QB(uint64 instruction)
>   std::string NMD::SHLLV_S_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -13910,8 +13910,8 @@ std::string NMD::SHLLV_S_PH(uint64 instruction)
>   std::string NMD::SHLLV_S_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14054,8 +14054,8 @@ std::string NMD::SHRA_R_W(uint64 instruction)
>   std::string NMD::SHRAV_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14078,8 +14078,8 @@ std::string NMD::SHRAV_PH(uint64 instruction)
>   std::string NMD::SHRAV_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14102,8 +14102,8 @@ std::string NMD::SHRAV_QB(uint64 instruction)
>   std::string NMD::SHRAV_R_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14126,8 +14126,8 @@ std::string NMD::SHRAV_R_PH(uint64 instruction)
>   std::string NMD::SHRAV_R_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14150,8 +14150,8 @@ std::string NMD::SHRAV_R_QB(uint64 instruction)
>   std::string NMD::SHRAV_R_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14222,8 +14222,8 @@ std::string NMD::SHRL_QB(uint64 instruction)
>   std::string NMD::SHRLV_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14246,8 +14246,8 @@ std::string NMD::SHRLV_PH(uint64 instruction)
>   std::string NMD::SHRLV_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14270,8 +14270,8 @@ std::string NMD::SHRLV_QB(uint64 instruction)
>   std::string NMD::SHX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14294,8 +14294,8 @@ std::string NMD::SHX(uint64 instruction)
>   std::string NMD::SHXS(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14362,8 +14362,8 @@ std::string NMD::SLL_16_(uint64 instruction)
>   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));
> @@ -14386,8 +14386,8 @@ std::string NMD::SLL_32_(uint64 instruction)
>   std::string NMD::SLLV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14410,8 +14410,8 @@ std::string NMD::SLLV(uint64 instruction)
>   std::string NMD::SLT(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14434,8 +14434,8 @@ std::string NMD::SLT(uint64 instruction)
>   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));
> @@ -14458,8 +14458,8 @@ std::string NMD::SLTI(uint64 instruction)
>   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));
> @@ -14482,8 +14482,8 @@ std::string NMD::SLTIU(uint64 instruction)
>   std::string NMD::SLTU(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14506,8 +14506,8 @@ std::string NMD::SLTU(uint64 instruction)
>   std::string NMD::SOV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14549,8 +14549,8 @@ std::string NMD::SPECIAL2(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -14571,8 +14571,8 @@ std::string NMD::SQRT_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -14618,8 +14618,8 @@ std::string NMD::SRA(uint64 instruction)
>   std::string NMD::SRAV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14666,8 +14666,8 @@ std::string NMD::SRL_16_(uint64 instruction)
>   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));
> @@ -14690,8 +14690,8 @@ std::string NMD::SRL_32_(uint64 instruction)
>   std::string NMD::SRLV(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14714,8 +14714,8 @@ std::string NMD::SRLV(uint64 instruction)
>   std::string NMD::SUB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14737,8 +14737,8 @@ std::string NMD::SUB(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -14761,8 +14761,8 @@ std::string NMD::SUB_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>       uint64 fd_value = extract_fd_10_9_8_7_6(instruction);
>   
>       std::string fd = FPR(copy(fd_value));
> @@ -14786,8 +14786,8 @@ std::string NMD::SUB_S(uint64 instruction)
>   std::string NMD::SUBQ_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14811,8 +14811,8 @@ std::string NMD::SUBQ_PH(uint64 instruction)
>   std::string NMD::SUBQ_S_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14836,8 +14836,8 @@ std::string NMD::SUBQ_S_PH(uint64 instruction)
>   std::string NMD::SUBQ_S_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14861,8 +14861,8 @@ std::string NMD::SUBQ_S_W(uint64 instruction)
>   std::string NMD::SUBQH_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14886,8 +14886,8 @@ std::string NMD::SUBQH_PH(uint64 instruction)
>   std::string NMD::SUBQH_R_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14911,8 +14911,8 @@ std::string NMD::SUBQH_R_PH(uint64 instruction)
>   std::string NMD::SUBQH_R_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14936,8 +14936,8 @@ std::string NMD::SUBQH_R_W(uint64 instruction)
>   std::string NMD::SUBQH_W(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -14959,9 +14959,9 @@ std::string NMD::SUBQH_W(uint64 instruction)
>    */
>   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));
> @@ -14984,8 +14984,8 @@ std::string NMD::SUBU_16_(uint64 instruction)
>   std::string NMD::SUBU_32_(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15008,8 +15008,8 @@ std::string NMD::SUBU_32_(uint64 instruction)
>   std::string NMD::SUBU_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15032,8 +15032,8 @@ std::string NMD::SUBU_PH(uint64 instruction)
>   std::string NMD::SUBU_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15056,8 +15056,8 @@ std::string NMD::SUBU_QB(uint64 instruction)
>   std::string NMD::SUBU_S_PH(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15080,8 +15080,8 @@ std::string NMD::SUBU_S_PH(uint64 instruction)
>   std::string NMD::SUBU_S_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15105,8 +15105,8 @@ std::string NMD::SUBU_S_QB(uint64 instruction)
>   std::string NMD::SUBUH_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15130,8 +15130,8 @@ std::string NMD::SUBUH_QB(uint64 instruction)
>   std::string NMD::SUBUH_R_QB(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15292,8 +15292,8 @@ std::string NMD::SW_SP_(uint64 instruction)
>   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));
> @@ -15530,8 +15530,8 @@ std::string NMD::SWPC_48_(uint64 instruction)
>   std::string NMD::SWX(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15554,8 +15554,8 @@ std::string NMD::SWX(uint64 instruction)
>   std::string NMD::SWXS(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -15939,8 +15939,8 @@ std::string NMD::TNE(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -15961,8 +15961,8 @@ std::string NMD::TRUNC_L_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -15983,8 +15983,8 @@ std::string NMD::TRUNC_L_S(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -16005,8 +16005,8 @@ std::string NMD::TRUNC_W_D(uint64 instruction)
>    */
>   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 fs_value = extract_fs_15_14_13_12_11(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string fs = FPR(copy(fs_value));
> @@ -16283,8 +16283,8 @@ std::string NMD::XOR_16_(uint64 instruction)
>   std::string NMD::XOR_32_(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(instruction);
> -    uint64 rd_value = extract_rd_15_14_13_12_11(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));
> @@ -16307,8 +16307,8 @@ std::string NMD::XOR_32_(uint64 instruction)
>   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));

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH v2 5/5] disas: nanoMIPS: Name some function in a more descriptive way
  2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 5/5] disas: nanoMIPS: Name some function in a more descriptive way Aleksandar Markovic
@ 2018-12-18 13:38   ` Stefan Markovic
  0 siblings, 0 replies; 11+ messages in thread
From: Stefan Markovic @ 2018-12-18 13:38 UTC (permalink / raw)
  To: Aleksandar Markovic, qemu-devel, Aleksandar Markovic


On 17.12.18. 18:10, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Rename some functions that have names hard to understand.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>   disas/nanomips.cpp | 112 ++++++++++++++++++++++-----------------------
>   disas/nanomips.h   |  32 ++++++-------
>   2 files changed, 72 insertions(+), 72 deletions(-)


Reviewed-by: Stefan Markovic <smarkovic@wavecomp.com>


> diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
> index 9e876305f1..477df84d93 100644
> --- a/disas/nanomips.cpp
> +++ b/disas/nanomips.cpp
> @@ -683,7 +683,7 @@ uint64 NMD::extract_shift3_2_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -707,7 +707,7 @@ uint64 NMD::extract_rtz3_9_8_7(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -767,7 +767,7 @@ uint64 NMD::extract_shift_4_3_2_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -836,7 +836,7 @@ uint64 NMD::extract_rs_20_19_18_17_16(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -934,7 +934,7 @@ uint64 NMD::extract_rs_4_3_2_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -942,7 +942,7 @@ uint64 NMD::extr_uil3il3bs18Fmsb20(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -958,7 +958,7 @@ uint64 NMD::extract_cofun_25_24_23(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1225,7 +1225,7 @@ uint64 NMD::extract_msbt_10_9_8_7_6(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1259,7 +1259,7 @@ uint64 NMD::extract_rs3_6_5_4(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1307,7 +1307,7 @@ uint64 NMD::extract_op_25_24_23_22_21(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1339,7 +1339,7 @@ uint64 NMD::extract_eu_3_2_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1383,7 +1383,7 @@ uint64 NMD::extract_u_20_19_18_17_16_15_14_13(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1433,7 +1433,7 @@ uint64 NMD::extract_u_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1450,7 +1450,7 @@ uint64 NMD::extract_fd_10_9_8_7_6(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1483,7 +1483,7 @@ uint64 NMD::extract_ct_25_24_23_22_21(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1501,7 +1501,7 @@ int64 NMD::extract_s_4_2_1_0(uint64 instruction)
>   }
>   
>   
> -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;
> @@ -1535,7 +1535,7 @@ bool NMD::BEQC_16__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;
>   }
>   
> @@ -1544,7 +1544,7 @@ bool NMD::BNEC_16__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;
>   }
>   
> @@ -1558,7 +1558,7 @@ bool NMD::MOVE_cond(uint64 instruction)
>   
>   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;
>   }
>   
> @@ -1886,7 +1886,7 @@ std::string NMD::ADDIU_GP_B_(uint64 instruction)
>   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));
> @@ -1929,7 +1929,7 @@ std::string NMD::ADDIU_NEG_(uint64 instruction)
>    */
>   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));
> @@ -1950,7 +1950,7 @@ std::string NMD::ADDIU_R1_SP_(uint64 instruction)
>    */
>   std::string NMD::ADDIU_R2_(uint64 instruction)
>   {
> -    uint64 u_value = extr_uil0il2bs3Fmsb4(instruction);
> +    uint64 u_value = extract_u_2_1_0__s2(instruction);
>       uint64 rt3_value = extract_rt3_9_8_7(instruction);
>       uint64 rs3_value = extract_rs3_6_5_4(instruction);
>   
> @@ -2870,7 +2870,7 @@ std::string NMD::BC2NEZC(uint64 instruction)
>    */
>   std::string NMD::BEQC_16_(uint64 instruction)
>   {
> -    uint64 u_value = extr_uil0il1bs4Fmsb4(instruction);
> +    uint64 u_value = extract_u_3_2_1_0__s1(instruction);
>       uint64 rt3_value = extract_rt3_9_8_7(instruction);
>       uint64 rs3_value = extract_rs3_6_5_4(instruction);
>   
> @@ -3156,7 +3156,7 @@ std::string NMD::BLTUC(uint64 instruction)
>    */
>   std::string NMD::BNEC_16_(uint64 instruction)
>   {
> -    uint64 u_value = extr_uil0il1bs4Fmsb4(instruction);
> +    uint64 u_value = extract_u_3_2_1_0__s1(instruction);
>       uint64 rt3_value = extract_rt3_9_8_7(instruction);
>       uint64 rs3_value = extract_rs3_6_5_4(instruction);
>   
> @@ -5791,7 +5791,7 @@ std::string NMD::DLSA(uint64 instruction)
>   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));
> @@ -8062,7 +8062,7 @@ std::string NMD::LBX(uint64 instruction)
>   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));
> @@ -8132,7 +8132,7 @@ std::string NMD::LD_U12_(uint64 instruction)
>   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 u_value = extract_u_17_to_2__s2(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string u = IMMEDIATE(copy(u_value));
> @@ -8369,7 +8369,7 @@ std::string NMD::LDXS(uint64 instruction)
>    */
>   std::string NMD::LH_16_(uint64 instruction)
>   {
> -    uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
> +    uint64 u_value = extract_u_2_1__s1(instruction);
>       uint64 rt3_value = extract_rt3_9_8_7(instruction);
>       uint64 rs3_value = extract_rs3_6_5_4(instruction);
>   
> @@ -8394,7 +8394,7 @@ std::string NMD::LH_16_(uint64 instruction)
>   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));
> @@ -8487,7 +8487,7 @@ std::string NMD::LHE(uint64 instruction)
>    */
>   std::string NMD::LHU_16_(uint64 instruction)
>   {
> -    uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
> +    uint64 u_value = extract_u_2_1__s1(instruction);
>       uint64 rt3_value = extract_rt3_9_8_7(instruction);
>       uint64 rs3_value = extract_rs3_6_5_4(instruction);
>   
> @@ -8512,7 +8512,7 @@ std::string NMD::LHU_16_(uint64 instruction)
>   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));
> @@ -8937,7 +8937,7 @@ std::string NMD::LUI(uint64 instruction)
>    */
>   std::string NMD::LW_16_(uint64 instruction)
>   {
> -    uint64 u_value = extr_uil0il2bs4Fmsb5(instruction);
> +    uint64 u_value = extract_u_3_2_1_0__s2(instruction);
>       uint64 rt3_value = extract_rt3_9_8_7(instruction);
>       uint64 rs3_value = extract_rs3_6_5_4(instruction);
>   
> @@ -8963,7 +8963,7 @@ 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 u_value = extract_u_3_8__s2(instruction);
>   
>       std::string rt4 = GPR(encode_gpr4(rt4_value));
>       std::string u = IMMEDIATE(copy(u_value));
> @@ -8986,7 +8986,7 @@ std::string NMD::LW_4X4_(uint64 instruction)
>   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));
> @@ -9007,7 +9007,7 @@ std::string NMD::LW_GP_(uint64 instruction)
>    */
>   std::string NMD::LW_GP16_(uint64 instruction)
>   {
> -    uint64 u_value = extr_uil0il2bs7Fmsb8(instruction);
> +    uint64 u_value = extract_u_6_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));
> @@ -9054,7 +9054,7 @@ std::string NMD::LW_S9_(uint64 instruction)
>   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));
> @@ -9100,7 +9100,7 @@ std::string NMD::LW_U12_(uint64 instruction)
>   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 u_value = extract_u_17_to_2__s2(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string u = IMMEDIATE(copy(u_value));
> @@ -9314,7 +9314,7 @@ std::string NMD::LWPC_48_(uint64 instruction)
>   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));
> @@ -12325,7 +12325,7 @@ 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 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));
> @@ -12348,7 +12348,7 @@ 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);
>   
>       std::string u = IMMEDIATE(copy(u_value));
>       return img::format("RESTORE.JRC %s%s", u,
> @@ -12370,7 +12370,7 @@ std::string NMD::RESTORE_JRC_32_(uint64 instruction)
>   {
>       uint64 rt_value = extract_rt_25_24_23_22_21(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);
>       uint64 gp_value = extract_gp_2(instruction);
>   
>       std::string u = IMMEDIATE(copy(u_value));
> @@ -12392,7 +12392,7 @@ std::string NMD::RESTORE_JRC_32_(uint64 instruction)
>   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));
> @@ -12507,7 +12507,7 @@ std::string NMD::ROTX(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 shiftx_value = extr_shiftxil7il1bs4Fmsb4(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);
>   
> @@ -12668,7 +12668,7 @@ 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);
>   
>       std::string u = IMMEDIATE(copy(u_value));
>       return img::format("SAVE %s%s", u,
> @@ -12690,7 +12690,7 @@ std::string NMD::SAVE_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 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));
> @@ -12712,7 +12712,7 @@ std::string NMD::SAVE_32_(uint64 instruction)
>   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));
> @@ -13020,7 +13020,7 @@ std::string NMD::SCWPE(uint64 instruction)
>   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));
> @@ -13130,7 +13130,7 @@ std::string NMD::SDBBP_32_(uint64 instruction)
>   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 u_value = extract_u_17_to_2__s2(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string u = IMMEDIATE(copy(u_value));
> @@ -13580,7 +13580,7 @@ std::string NMD::SEQI(uint64 instruction)
>   std::string NMD::SH_16_(uint64 instruction)
>   {
>       uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
> -    uint64 u_value = extr_uil1il1bs2Fmsb2(instruction);
> +    uint64 u_value = extract_u_2_1__s1(instruction);
>       uint64 rs3_value = extract_rs3_6_5_4(instruction);
>   
>       std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
> @@ -13604,7 +13604,7 @@ std::string NMD::SH_16_(uint64 instruction)
>   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));
> @@ -15154,7 +15154,7 @@ std::string NMD::SUBUH_R_QB(uint64 instruction)
>   std::string NMD::SW_16_(uint64 instruction)
>   {
>       uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
> -    uint64 u_value = extr_uil0il2bs4Fmsb5(instruction);
> +    uint64 u_value = extract_u_3_2_1_0__s2(instruction);
>       uint64 rs3_value = extract_rs3_6_5_4(instruction);
>   
>       std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
> @@ -15179,7 +15179,7 @@ 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 u_value = extract_u_3_8__s2(instruction);
>   
>       std::string rtz4 = GPR(encode_gpr4_zero(rtz4_value));
>       std::string u = IMMEDIATE(copy(u_value));
> @@ -15202,7 +15202,7 @@ std::string NMD::SW_4X4_(uint64 instruction)
>   std::string NMD::SW_GP16_(uint64 instruction)
>   {
>       uint64 rtz3_value = extract_rtz3_9_8_7(instruction);
> -    uint64 u_value = extr_uil0il2bs7Fmsb8(instruction);
> +    uint64 u_value = extract_u_6_5_4_3_2_1_0__s2(instruction);
>   
>       std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));
>       std::string u = IMMEDIATE(copy(u_value));
> @@ -15224,7 +15224,7 @@ std::string NMD::SW_GP16_(uint64 instruction)
>   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));
> @@ -15270,7 +15270,7 @@ std::string NMD::SW_S9_(uint64 instruction)
>   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));
> @@ -15316,7 +15316,7 @@ std::string NMD::SW_U12_(uint64 instruction)
>   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 u_value = extract_u_17_to_2__s2(instruction);
>   
>       std::string ft = FPR(copy(ft_value));
>       std::string u = IMMEDIATE(copy(u_value));
> diff --git a/disas/nanomips.h b/disas/nanomips.h
> index 0089f17d7b..e5b8093ddf 100644
> --- a/disas/nanomips.h
> +++ b/disas/nanomips.h
> @@ -218,7 +218,7 @@ private:
>       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 extr_shiftxil7il1bs4Fmsb4(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);
> @@ -227,24 +227,24 @@ private:
>       uint64 extract_u_15_to_0(uint64 instruction);
>       uint64 extract_u_17_to_0(uint64 instruction);
>       uint64 extract_u_1_0(uint64 instruction);
> -    uint64 extr_uil0il1bs4Fmsb4(uint64 instruction);
> -    uint64 extr_uil0il2bs3Fmsb4(uint64 instruction);
> -    uint64 extr_uil0il2bs4Fmsb5(uint64 instruction);
> -    uint64 extr_uil0il2bs5Fmsb6(uint64 instruction);
> -    uint64 extr_uil0il2bs6Fmsb7(uint64 instruction);
> -    uint64 extr_uil0il2bs7Fmsb8(uint64 instruction);
> -    uint64 extr_uil0il32bs32Fmsb63(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 extr_uil1il1bs17Fmsb17(uint64 instruction);
> -    uint64 extr_uil1il1bs2Fmsb2(uint64 instruction);
> -    uint64 extr_uil2il2bs16Fmsb17(uint64 instruction);
> -    uint64 extr_uil2il2bs19Fmsb20(uint64 instruction);
> -    uint64 extr_uil3il3bs18Fmsb20(uint64 instruction);
> -    uint64 extr_uil3il3bs1_il8il2bs1Fmsb3(uint64 instruction);
> -    uint64 extr_uil3il3bs9Fmsb11(uint64 instruction);
> -    uint64 extr_uil4il4bs4Fmsb7(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);

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-12-18 14:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-17 17:10 [Qemu-devel] [PATCH v2 0/5] disas: nanoMIPS: Clean up several issues Aleksandar Markovic
2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 1/5] disas: nanoMIPS: Fix preamble text Aleksandar Markovic
2018-12-18 10:43   ` Stefan Markovic
2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 2/5] disas: nanoMIPS: Remove functions that are not used Aleksandar Markovic
2018-12-18 13:07   ` Stefan Markovic
2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 3/5] disas: nanoMIPS: Fix a function misnomer Aleksandar Markovic
2018-12-18 13:11   ` Stefan Markovic
2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 4/5] disas: nanoMIPS: Fix order of some invocations Aleksandar Markovic
2018-12-18 13:26   ` Stefan Markovic
2018-12-17 17:10 ` [Qemu-devel] [PATCH v2 5/5] disas: nanoMIPS: Name some function in a more descriptive way Aleksandar Markovic
2018-12-18 13:38   ` Stefan Markovic

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.