git: bf64c283250a - stable/13 - arm64/disassem.c: Add support str/strb/strh instructions
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 09 Jun 2023 19:57:55 UTC
The branch stable/13 has been updated by mhorne:
URL: https://cgit.FreeBSD.org/src/commit/?id=bf64c283250a1ac7023e497a09ed2e36be3cae33
commit bf64c283250a1ac7023e497a09ed2e36be3cae33
Author: Mykola Hohsadze <koliagogsadze@gmail.com>
AuthorDate: 2023-04-18 15:51:15 +0000
Commit: Mitchell Horne <mhorne@FreeBSD.org>
CommitDate: 2023-06-09 18:14:58 +0000
arm64/disassem.c: Add support str/strb/strh instructions
Added disassembly support for each type of str/strb/strh instruction
encoding.
Reviewed by: mhorne
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D39336
(cherry picked from commit 7edb7adf8c8b0615c6d845ca789d4f527f8b18a3)
---
sys/arm64/arm64/disassem.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/sys/arm64/arm64/disassem.c b/sys/arm64/arm64/disassem.c
index 681164011b40..ea6193655a5f 100644
--- a/sys/arm64/arm64/disassem.c
+++ b/sys/arm64/arm64/disassem.c
@@ -187,6 +187,24 @@ static struct arm64_insn arm64_i[] = {
TYPE_02, 0 }, /* ldrsw register */
{ "ldrsw", "10011000|IMM(19)|RT(5)",
TYPE_03, OP_SIGN_EXT | OP_LITERAL | OP_MULT_4 }, /* ldr literal */
+ { "str", "1|SF(1)|111000000|IMM(9)|OPTION(2)|RN(5)|RT(5)",
+ TYPE_02, OP_SIGN_EXT }, /* str immediate post/pre index */
+ { "str", "1|SF(1)|11100100|IMM(12)|RN(5)|RT(5)",
+ TYPE_02, 0 }, /* str immediate unsigned */
+ { "str", "1|SF(1)|111000001|RM(5)|OPTION(3)|SCALE(1)|10|RN(5)|RT(5)",
+ TYPE_02, 0 }, /* str register */
+ { "strb", "00111000000|IMM(9)|OPTION(2)|RN(5)|RT(5)",
+ TYPE_02, OP_SIGN_EXT | OP_SF32 }, /* strb immediate post/pre index */
+ { "strb", "0011100100|IMM(12)|RN(5)|RT(5)",
+ TYPE_02, OP_SF32 }, /* strb immediate unsigned */
+ { "strb", "00111000001|RM(5)|OPTION(3)|SCALE(1)|10|RN(5)|RT(5)",
+ TYPE_02, OP_SF32 }, /* strb register */
+ { "strh", "01111000000|IMM(9)|OPTION(2)|RN(5)|RT(5)",
+ TYPE_02, OP_SF32 | OP_SIGN_EXT }, /* strh immediate post/pre index */
+ { "strh", "0111100100|IMM(12)|RN(5)|RT(5)",
+ TYPE_02, OP_SF32 }, /* immediate unsigned */
+ { "strh", "01111000001|RM(5)|OPTION(3)|SCALE(1)|10|RN(5)|RT(5)",
+ TYPE_02, OP_SF32 }, /* strh register */
{ NULL, NULL }
};