[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 12/20] disas: nanoMIPS: Clean up handling of 16-b
From: |
Aleksandar Markovic |
Subject: |
[Qemu-devel] [PATCH v5 12/20] disas: nanoMIPS: Clean up handling of 16-bit logic instructions |
Date: |
Wed, 26 Dec 2018 12:06:20 +0100 |
From: Aleksandar Markovic <address@hidden>
Clean up handling of 16-bit logic nanoMIPS instructions:
- AND[16]
- ANDI[16]
- NOR[16]
- NOT[16]
- OR[16]
- XOR[16]
Signed-off-by: Aleksandar Markovic <address@hidden>
---
disas/nanomips.cpp | 55 ++++++++++++++++++++++++------------------------------
1 file changed, 24 insertions(+), 31 deletions(-)
diff --git a/disas/nanomips.cpp b/disas/nanomips.cpp
index 72e2266..115c347 100644
--- a/disas/nanomips.cpp
+++ b/disas/nanomips.cpp
@@ -2483,13 +2483,12 @@ std::string NMD::ALUIPC(uint64 instruction)
/*
- * AND[16] rt3, rs3 -
+ * AND[16] rt3, rs3 - Write logical OR of registers rs3 and rt3 to register rt3
*
* 5432109876543210
- * 101100
+ * 010100 1000
* rt3 ---
* rs3 ---
- * eu ----
*/
std::string NMD::AND_16_(uint64 instruction)
{
@@ -2499,7 +2498,7 @@ std::string NMD::AND_16_(uint64 instruction)
std::string rt3 = GPR(encode_gpr3(rt3_value));
std::string rs3 = GPR(encode_gpr3(rs3_value));
- return img::format("AND %s, %s", rs3, rt3);
+ return img::format("AND[16] %s, %s", rs3, rt3);
}
@@ -2528,10 +2527,10 @@ std::string NMD::AND_32_(uint64 instruction)
/*
- * ANDI rt, rs, u -
+ * ANDI rt, rs, u - Write logical AND of register rs3 and immediate eu to rt3
*
* 5432109876543210
- * 101100
+ * 111100
* rt3 ---
* rs3 ---
* eu ----
@@ -2546,7 +2545,7 @@ std::string NMD::ANDI_16_(uint64 instruction)
std::string rs3 = GPR(encode_gpr3(rs3_value));
std::string eu = IMMEDIATE(encode_eu_from_u_andi16(eu_value));
- return img::format("ANDI %s, %s, %s", rt3, rs3, eu);
+ return img::format("ANDI[16] %s, %s, %s", rt3, rs3, eu);
}
@@ -11426,14 +11425,12 @@ std::string NMD::NOR(uint64 instruction)
/*
- * ADDQH_R.W rd, rt, rs - Add Fractional Words And Shift Right to Halve Results
+ * NOT[16] rt3, rs3 - Write logical inversion of register rs3 to register rt3
*
- * 3 2 1
- * 10987654321098765432109876543210
- * 001000 00010001101
- * rt -----
- * rs -----
- * rd -----
+ * 5432109876543210
+ * 010100 0000
+ * rt3 ---
+ * rs3 ---
*/
std::string NMD::NOT_16_(uint64 instruction)
{
@@ -11443,19 +11440,17 @@ std::string NMD::NOT_16_(uint64 instruction)
std::string rt3 = GPR(encode_gpr3(rt3_value));
std::string rs3 = GPR(encode_gpr3(rs3_value));
- return img::format("NOT %s, %s", rt3, rs3);
+ return img::format("NOT[16] %s, %s", rt3, rs3);
}
/*
- * ADDQH_R.W rd, rt, rs - Add Fractional Words And Shift Right to Halve Results
+ * OR[16] rs3, rt3 - Write logical OR of registers rs3 and rt3 to register rt3
*
- * 3 2 1
- * 10987654321098765432109876543210
- * 001000 00010001101
- * rt -----
- * rs -----
- * rd -----
+ * 5432109876543210
+ * 010100 1100
+ * rt3 ---
+ * rs3 ---
*/
std::string NMD::OR_16_(uint64 instruction)
{
@@ -11465,7 +11460,7 @@ std::string NMD::OR_16_(uint64 instruction)
std::string rs3 = GPR(encode_gpr3(rs3_value));
std::string rt3 = GPR(encode_gpr3(rt3_value));
- return img::format("OR %s, %s", rs3, rt3);
+ return img::format("OR[16] %s, %s", rs3, rt3);
}
@@ -16251,14 +16246,12 @@ std::string NMD::WRPGPR(uint64 instruction)
/*
- * ADDQH_R.W rd, rt, rs - Add Fractional Words And Shift Right to Halve Results
+ * XOR[16] rs3, rt3 - Write logical XOR of registers rs3 and rt3 to register
rt3
*
- * 3 2 1
- * 10987654321098765432109876543210
- * 001000 00010001101
- * rt -----
- * rs -----
- * rd -----
+ * 5432109876543210
+ * 010100 0100
+ * rt3 ---
+ * rs3 ---
*/
std::string NMD::XOR_16_(uint64 instruction)
{
@@ -16268,7 +16261,7 @@ std::string NMD::XOR_16_(uint64 instruction)
std::string rs3 = GPR(encode_gpr3(rs3_value));
std::string rt3 = GPR(encode_gpr3(rt3_value));
- return img::format("XOR %s, %s", rs3, rt3);
+ return img::format("XOR[16] %s, %s", rs3, rt3);
}
--
2.7.4
- [Qemu-devel] [PATCH v5 00/20] disas: nanoMIPS: Clean up several issues, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 01/20] disas: nanoMIPS: Fix preamble text in nanomips.* files, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 09/20] disas: nanoMIPS: Name more functions in a more descriptive way, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 07/20] disas: nanoMIPS: Fix an FP-related misnomer 2, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 12/20] disas: nanoMIPS: Clean up handling of 16-bit logic instructions,
Aleksandar Markovic <=
- [Qemu-devel] [PATCH v5 05/20] disas: nanoMIPS: Name some functions in a more descriptive way, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 11/20] disas: nanoMIPS: Clean up handling of 48-bit instructions, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 06/20] disas: nanoMIPS: Fix an FP-related misnomer 1, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 08/20] disas: nanoMIPS: Fix an FP-related misnomer 3, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 10/20] disas: nanoMIPS: Fix order of more invocations, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 02/20] disas: nanoMIPS: Remove functions that are not used, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 19/20] disas: nanoMIPS: Rename the decoder of 'gpr4.zero' gpr encoding type, Aleksandar Markovic, 2018/12/26
- [Qemu-devel] [PATCH v5 18/20] disas: nanoMIPS: Comment the decoder of 'gpr4' gpr encoding type, Aleksandar Markovic, 2018/12/26