{"id":1019126,"url":"http://patchwork.ozlabs.org/api/patches/1019126/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/1545989148-13582-23-git-send-email-aleksandar.markovic@rt-rk.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1545989148-13582-23-git-send-email-aleksandar.markovic@rt-rk.com>","list_archive_url":null,"date":"2018-12-28T09:25:29","name":"[PULL,22/41] disas: nanoMIPS: Rename the decoder of 'gpr3' gpr encoding type","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"b6c7eaeb3ede15c90a96e6822aed69f1643141a0","submitter":{"id":68635,"url":"http://patchwork.ozlabs.org/api/people/68635/?format=json","name":"Aleksandar Markovic","email":"aleksandar.markovic@rt-rk.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/1545989148-13582-23-git-send-email-aleksandar.markovic@rt-rk.com/mbox/","series":[{"id":83742,"url":"http://patchwork.ozlabs.org/api/series/83742/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=83742","date":"2018-12-28T09:25:09","name":"[PULL,01/41] MAINTAINERS: target/mips: Add MIPS files under default-configs directory","version":1,"mbox":"http://patchwork.ozlabs.org/series/83742/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/1019126/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/1019126/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=208.118.235.17; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=rt-rk.com"],"Received":["from lists.gnu.org (lists.gnu.org [208.118.235.17])\n\t(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 43R2Ch5xDwz9s2P\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 28 Dec 2018 20:56:16 +1100 (AEDT)","from localhost ([127.0.0.1]:58004 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1gcosI-0007PO-Kc\n\tfor incoming@patchwork.ozlabs.org; Fri, 28 Dec 2018 04:56:14 -0500","from eggs.gnu.org ([208.118.235.92]:53145)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <aleksandar.markovic@rt-rk.com>) id 1gconB-0000sw-Mb\n\tfor qemu-devel@nongnu.org; Fri, 28 Dec 2018 04:51:03 -0500","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <aleksandar.markovic@rt-rk.com>) id 1gcoPD-0003Jg-GL\n\tfor qemu-devel@nongnu.org; Fri, 28 Dec 2018 04:26:21 -0500","from mx2.rt-rk.com ([89.216.37.149]:49281 helo=mail.rt-rk.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <aleksandar.markovic@rt-rk.com>)\n\tid 1gcoPC-000378-LY\n\tfor qemu-devel@nongnu.org; Fri, 28 Dec 2018 04:26:11 -0500","from localhost (localhost [127.0.0.1])\n\tby mail.rt-rk.com (Postfix) with ESMTP id 0A4EA1A20C6;\n\tFri, 28 Dec 2018 10:25:56 +0100 (CET)","from rtrkw774-lin.domain.local (rtrkw774-lin.domain.local\n\t[10.10.13.43])\n\tby mail.rt-rk.com (Postfix) with ESMTPSA id CD7931A2124;\n\tFri, 28 Dec 2018 10:25:55 +0100 (CET)"],"X-Virus-Scanned":"amavisd-new at rt-rk.com","From":"Aleksandar Markovic <aleksandar.markovic@rt-rk.com>","To":"qemu-devel@nongnu.org","Date":"Fri, 28 Dec 2018 10:25:29 +0100","Message-Id":"<1545989148-13582-23-git-send-email-aleksandar.markovic@rt-rk.com>","X-Mailer":"git-send-email 2.7.4","In-Reply-To":"<1545989148-13582-1-git-send-email-aleksandar.markovic@rt-rk.com>","References":"<1545989148-13582-1-git-send-email-aleksandar.markovic@rt-rk.com>","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 3.x [fuzzy]","X-Received-From":"89.216.37.149","Subject":"[Qemu-devel] [PULL 22/41] disas: nanoMIPS: Rename the decoder of\n\t'gpr3' gpr encoding type","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"peter.maydell@linaro.org, amarkovic@wavecomp.com","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"From: Aleksandar Markovic <amarkovic@wavecomp.com>\n\nRename the decoder of 'gpr3' gpr encoding type in nanoMIPS\ndisassembler.\n\nReviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com>\nSigned-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>\n---\n disas/nanomips.cpp | 96 +++++++++++++++++++++++++++---------------------------\n disas/nanomips.h   |  2 +-\n 2 files changed, 49 insertions(+), 49 deletions(-)","diff":"diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp\nindex e9018ea..2856645 100644\n--- a/disas/nanomips.cpp\n+++ b/disas/nanomips.cpp\n@@ -296,7 +296,7 @@ uint64 NMD::renumber_registers(uint64 index, uint64 *register_list,\n  * decode sections so they are based on the encode, the equivalent decode\n  * functions need writing eventually.\n  */\n-uint64 NMD::encode_gpr3(uint64 d)\n+uint64 NMD::decode_gpr_gpr3(uint64 d)\n {\n     static uint64 register_list[] = { 16, 17, 18, 19,  4,  5,  6,  7 };\n     return renumber_registers(d, register_list,\n@@ -381,14 +381,14 @@ int64 NMD::neg_copy(int64 d)\n /* strange wrapper around  gpr3 */\n uint64 NMD::encode_rs3_and_check_rs3_ge_rt3(uint64 d)\n {\n-return encode_gpr3(d);\n+return decode_gpr_gpr3(d);\n }\n \n \n /* strange wrapper around  gpr3 */\n uint64 NMD::encode_rs3_and_check_rs3_lt_rt3(uint64 d)\n {\n-    return encode_gpr3(d);\n+    return decode_gpr_gpr3(d);\n }\n \n \n@@ -1936,7 +1936,7 @@ std::string NMD::ADDIU_R1_SP_(uint64 instruction)\n     uint64 u_value = extract_u_5_4_3_2_1_0__s2(instruction);\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n \n     return img::format(\"ADDIU %s, $%d, %s\", rt3, 29, u);\n@@ -1958,8 +1958,8 @@ std::string NMD::ADDIU_R2_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 u_value = extract_u_2_1_0__s2(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n \n     return img::format(\"ADDIU %s, %s, %s\", rt3, rs3, u);\n@@ -2239,9 +2239,9 @@ std::string NMD::ADDU_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 rd3_value = extract_rd3_3_2_1(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n-    std::string rd3 = GPR(encode_gpr3(rd3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n+    std::string rd3 = GPR(decode_gpr_gpr3(rd3_value));\n \n     return img::format(\"ADDU %s, %s, %s\", rd3, rs3, rt3);\n }\n@@ -2498,8 +2498,8 @@ std::string NMD::AND_16_(uint64 instruction)\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"AND %s, %s\", rs3, rt3);\n }\n@@ -2544,8 +2544,8 @@ std::string NMD::ANDI_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 eu_value = extract_eu_3_2_1_0(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n     std::string eu = IMMEDIATE(encode_eu_from_u_andi16(eu_value));\n \n     return img::format(\"ANDI %s, %s, %s\", rt3, rs3, eu);\n@@ -2879,7 +2879,7 @@ std::string NMD::BEQC_16_(uint64 instruction)\n     uint64 u_value = extract_u_3_2_1_0__s1(instruction);\n \n     std::string rs3 = GPR(encode_rs3_and_check_rs3_lt_rt3(rs3_value));\n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = ADDRESS(encode_u_from_address(u_value), 2);\n \n     return img::format(\"BEQC %s, %s, %s\", rs3, rt3, u);\n@@ -2949,7 +2949,7 @@ std::string NMD::BEQZC_16_(uint64 instruction)\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n     int64 s_value = extract_s__se7_0_6_5_4_3_2_1_s1(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string s = ADDRESS(encode_s_from_address(s_value), 2);\n \n     return img::format(\"BEQZC %s, %s\", rt3, s);\n@@ -3165,7 +3165,7 @@ std::string NMD::BNEC_16_(uint64 instruction)\n     uint64 u_value = extract_u_3_2_1_0__s1(instruction);\n \n     std::string rs3 = GPR(encode_rs3_and_check_rs3_ge_rt3(rs3_value));\n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = ADDRESS(encode_u_from_address(u_value), 2);\n \n     return img::format(\"BNEC %s, %s, %s\", rs3, rt3, u);\n@@ -3235,7 +3235,7 @@ std::string NMD::BNEZC_16_(uint64 instruction)\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n     int64 s_value = extract_s__se7_0_6_5_4_3_2_1_s1(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string s = ADDRESS(encode_s_from_address(s_value), 2);\n \n     return img::format(\"BNEZC %s, %s\", rt3, s);\n@@ -7785,9 +7785,9 @@ std::string NMD::LB_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 u_value = extract_u_1_0(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"LB %s, %s(%s)\", rt3, u, rs3);\n }\n@@ -7903,9 +7903,9 @@ std::string NMD::LBU_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 u_value = extract_u_1_0(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"LBU %s, %s(%s)\", rt3, u, rs3);\n }\n@@ -8377,9 +8377,9 @@ std::string NMD::LH_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 u_value = extract_u_2_1__s1(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"LH %s, %s(%s)\", rt3, u, rs3);\n }\n@@ -8495,9 +8495,9 @@ std::string NMD::LHU_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 u_value = extract_u_2_1__s1(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"LHU %s, %s(%s)\", rt3, u, rs3);\n }\n@@ -8708,7 +8708,7 @@ std::string NMD::LI_16_(uint64 instruction)\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n     uint64 eu_value = extract_eu_6_5_4_3_2_1_0(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string eu = IMMEDIATE(encode_eu_from_s_li16(eu_value));\n \n     return img::format(\"LI %s, %s\", rt3, eu);\n@@ -8945,9 +8945,9 @@ std::string NMD::LW_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 u_value = extract_u_3_2_1_0__s2(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"LW %s, %s(%s)\", rt3, u, rs3);\n }\n@@ -9014,7 +9014,7 @@ std::string NMD::LW_GP16_(uint64 instruction)\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n     uint64 u_value = extract_u_6_5_4_3_2_1_0__s2(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n \n     return img::format(\"LW %s, %s($%d)\", rt3, u, 28);\n@@ -9463,9 +9463,9 @@ std::string NMD::LWXS_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 rd3_value = extract_rd3_3_2_1(instruction);\n \n-    std::string rd3 = GPR(encode_gpr3(rd3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n-    std::string rt3 = IMMEDIATE(encode_gpr3(rt3_value));\n+    std::string rd3 = GPR(decode_gpr_gpr3(rd3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n+    std::string rt3 = IMMEDIATE(decode_gpr_gpr3(rt3_value));\n \n     return img::format(\"LWXS %s, %s(%s)\", rd3, rs3, rt3);\n }\n@@ -11442,8 +11442,8 @@ std::string NMD::NOT_16_(uint64 instruction)\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"NOT %s, %s\", rt3, rs3);\n }\n@@ -11464,8 +11464,8 @@ std::string NMD::OR_16_(uint64 instruction)\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n \n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n \n     return img::format(\"OR %s, %s\", rs3, rt3);\n }\n@@ -12743,7 +12743,7 @@ std::string NMD::SB_16_(uint64 instruction)\n \n     std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"SB %s, %s(%s)\", rtz3, u, rs3);\n }\n@@ -13589,7 +13589,7 @@ std::string NMD::SH_16_(uint64 instruction)\n \n     std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"SH %s, %s(%s)\", rtz3, u, rs3);\n }\n@@ -14345,8 +14345,8 @@ std::string NMD::SLL_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 shift3_value = extract_shift3_2_1_0(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n     std::string shift3 = IMMEDIATE(encode_shift3_from_shift(shift3_value));\n \n     return img::format(\"SLL %s, %s, %s\", rt3, rs3, shift3);\n@@ -14649,8 +14649,8 @@ std::string NMD::SRL_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 shift3_value = extract_shift3_2_1_0(instruction);\n \n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n     std::string shift3 = IMMEDIATE(encode_shift3_from_shift(shift3_value));\n \n     return img::format(\"SRL %s, %s, %s\", rt3, rs3, shift3);\n@@ -14967,9 +14967,9 @@ std::string NMD::SUBU_16_(uint64 instruction)\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n     uint64 rd3_value = extract_rd3_3_2_1(instruction);\n \n-    std::string rd3 = GPR(encode_gpr3(rd3_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rd3 = GPR(decode_gpr_gpr3(rd3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n \n     return img::format(\"SUBU %s, %s, %s\", rd3, rs3, rt3);\n }\n@@ -15163,7 +15163,7 @@ std::string NMD::SW_16_(uint64 instruction)\n \n     std::string rtz3 = GPR(encode_gpr3_store(rtz3_value));\n     std::string u = IMMEDIATE(copy(u_value));\n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n \n     return img::format(\"SW %s, %s(%s)\", rtz3, u, rs3);\n }\n@@ -16267,8 +16267,8 @@ std::string NMD::XOR_16_(uint64 instruction)\n     uint64 rt3_value = extract_rt3_9_8_7(instruction);\n     uint64 rs3_value = extract_rs3_6_5_4(instruction);\n \n-    std::string rs3 = GPR(encode_gpr3(rs3_value));\n-    std::string rt3 = GPR(encode_gpr3(rt3_value));\n+    std::string rs3 = GPR(decode_gpr_gpr3(rs3_value));\n+    std::string rt3 = GPR(decode_gpr_gpr3(rt3_value));\n \n     return img::format(\"XOR %s, %s\", rs3, rt3);\n }\ndiff --git a/disas/nanomips.h b/disas/nanomips.h\nindex 86f673c..78f8f9b 100644\n--- a/disas/nanomips.h\n+++ b/disas/nanomips.h\n@@ -105,7 +105,7 @@ private:\n \n     uint64 renumber_registers(uint64 index, uint64 *register_list,\n                               size_t register_list_size);\n-    uint64 encode_gpr3(uint64 d);\n+    uint64 decode_gpr_gpr3(uint64 d);\n     uint64 encode_gpr3_store(uint64 d);\n     uint64 encode_rd1_from_rd(uint64 d);\n     uint64 encode_gpr4_zero(uint64 d);\n","prefixes":["PULL","22/41"]}