This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] [AArch64] Add ARMv8.3 weaker release consistency load instructions
- From: Szabolcs Nagy <nsz at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 18 Nov 2016 09:59:44 -0000
- Subject: [binutils-gdb] [AArch64] Add ARMv8.3 weaker release consistency load instructions
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=28617675c264213180a599bb4327bf162029636a
commit 28617675c264213180a599bb4327bf162029636a
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date: Fri Nov 18 09:58:38 2016 +0000
[AArch64] Add ARMv8.3 weaker release consistency load instructions
Add support for ARMv8.3 LDAPRB, LDAPRH and LDAPR weak release
consistency load instructions. (They are equivalent to LDARB,
LDARH and LDAR instructions other than the weaker memory ordering
requirement.)
For more details about weak release consistency see
https://community.arm.com/groups/processors/blog/2016/10/27/armv8-a-architecture-2016-additions
opcodes/
2016-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
* aarch64-tbl.h (arch64_opcode_table): Add ldaprb, ldaprh, ldapr.
* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-opc-2.c: Regenerate.
gas/
2016-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
* testsuite/gas/aarch64/ldst-exclusive-armv8_3.s: Add ldaprb, ldaprh, ldapr tests.
* testsuite/gas/aarch64/ldst-exclusive-armv8_3.d: Likewise.
* testsuite/gas/aarch64/illegal-ldapr.s: Likewise.
* testsuite/gas/aarch64/illegal-ldapr.d: Likewise.
* testsuite/gas/aarch64/illegal-ldapr.l: Likewise.
Diff:
---
gas/ChangeLog | 8 +
gas/testsuite/gas/aarch64/illegal-ldapr.d | 2 +
gas/testsuite/gas/aarch64/illegal-ldapr.l | 16 +
gas/testsuite/gas/aarch64/illegal-ldapr.s | 25 +
gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.d | 20 +
gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.s | 22 +
opcodes/ChangeLog | 7 +
opcodes/aarch64-asm-2.c | 636 +++---
opcodes/aarch64-dis-2.c | 2335 ++++++++++----------
opcodes/aarch64-opc-2.c | 36 +-
opcodes/aarch64-tbl.h | 3 +
11 files changed, 1623 insertions(+), 1487 deletions(-)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 7aafe4e..560a7bf 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,13 @@
2016-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
+ * testsuite/gas/aarch64/ldst-exclusive-armv8_3.s: Add ldaprb, ldaprh, ldapr tests.
+ * testsuite/gas/aarch64/ldst-exclusive-armv8_3.d: Likewise.
+ * testsuite/gas/aarch64/illegal-ldapr.s: Likewise.
+ * testsuite/gas/aarch64/illegal-ldapr.d: Likewise.
+ * testsuite/gas/aarch64/illegal-ldapr.l: Likewise.
+
+2016-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
* testsuite/gas/aarch64/fp-armv8_3.s: Add fjcvtzs test.
* testsuite/gas/aarch64/fp-armv8_3.d: Likewise.
* testsuite/gas/aarch64/illegal-fjcvtzs.s: Likewise.
diff --git a/gas/testsuite/gas/aarch64/illegal-ldapr.d b/gas/testsuite/gas/aarch64/illegal-ldapr.d
new file mode 100644
index 0000000..36e94df
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/illegal-ldapr.d
@@ -0,0 +1,2 @@
+#as: -march=armv8.3-a -mno-verbose-error
+#error-output: illegal-ldapr.l
diff --git a/gas/testsuite/gas/aarch64/illegal-ldapr.l b/gas/testsuite/gas/aarch64/illegal-ldapr.l
new file mode 100644
index 0000000..f5d85f0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/illegal-ldapr.l
@@ -0,0 +1,16 @@
+[^:]+: Assembler messages:
+[^:]+:18: Error: operand mismatch -- `ldaprb x0,\[x1\]'
+[^:]+:19: Error: operand mismatch -- `ldaprh x0,\[x1\]'
+[^:]+:20: Error: the optional immediate offset can only be 0 at operand 2 -- `ldapr x0,\[x1,#8\]'
+[^:]+:24: Error: 64-bit integer or SP register expected at operand 2 -- `ldaprb w1,\[xz\]'
+[^:]+:24: Error: the optional immediate offset can only be 0 at operand 2 -- `ldaprb w1,\[x7,#8\]'
+[^:]+:24: Error: invalid addressing mode at operand 2 -- `ldaprb w1,\[x7,#8\]!'
+[^:]+:24: Error: invalid addressing mode at operand 2 -- `ldaprb w1,\[x7\],#8'
+[^:]+:24: Error: 64-bit integer or SP register expected at operand 2 -- `ldaprh w1,\[xz\]'
+[^:]+:24: Error: the optional immediate offset can only be 0 at operand 2 -- `ldaprh w1,\[x7,#8\]'
+[^:]+:24: Error: invalid addressing mode at operand 2 -- `ldaprh w1,\[x7,#8\]!'
+[^:]+:24: Error: invalid addressing mode at operand 2 -- `ldaprh w1,\[x7\],#8'
+[^:]+:24: Error: 64-bit integer or SP register expected at operand 2 -- `ldapr w1,\[xz\]'
+[^:]+:24: Error: the optional immediate offset can only be 0 at operand 2 -- `ldapr w1,\[x7,#8\]'
+[^:]+:24: Error: invalid addressing mode at operand 2 -- `ldapr w1,\[x7,#8\]!'
+[^:]+:24: Error: invalid addressing mode at operand 2 -- `ldapr w1,\[x7\],#8'
diff --git a/gas/testsuite/gas/aarch64/illegal-ldapr.s b/gas/testsuite/gas/aarch64/illegal-ldapr.s
new file mode 100644
index 0000000..5943f8b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/illegal-ldapr.s
@@ -0,0 +1,25 @@
+/* Test illegal ARMv8.3 weaker release consistency load instructions. */
+
+ /* <mnemonic> <Wt>, [<Xn|SP>{,#0}] */
+ .macro LR32 op
+ \op w1, [xz]
+ \op w1, [x7, #8]
+ \op w1, [x7, #8]!
+ \op w1, [x7], #8
+ .endm
+
+.text
+ /* Good. */
+ ldaprb w0, [x1]
+ ldaprh w0, [x1]
+ ldapr x0, [x1]
+
+ /* Bad. */
+ ldaprb x0, [x1]
+ ldaprh x0, [x1]
+ ldapr x0, [x1,#8]
+
+ .irp op, ldaprb, ldaprh, ldapr
+ LR32 \op
+ .endr
+
diff --git a/gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.d b/gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.d
new file mode 100644
index 0000000..b0de88a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.d
@@ -0,0 +1,20 @@
+#objdump: -dr
+#as: -march=armv8.3-a
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0000000000000000 <.*>:
+ 0: 38bfc0e1 ldaprb w1, \[x7\]
+ 4: 38bfc0e1 ldaprb w1, \[x7\]
+ 8: 38bfc0e1 ldaprb w1, \[x7\]
+ c: 78bfc0e1 ldaprh w1, \[x7\]
+ 10: 78bfc0e1 ldaprh w1, \[x7\]
+ 14: 78bfc0e1 ldaprh w1, \[x7\]
+ 18: b8bfc0e1 ldapr w1, \[x7\]
+ 1c: b8bfc0e1 ldapr w1, \[x7\]
+ 20: b8bfc0e1 ldapr w1, \[x7\]
+ 24: f8bfc0e1 ldapr x1, \[x7\]
+ 28: f8bfc0e1 ldapr x1, \[x7\]
+ 2c: f8bfc0e1 ldapr x1, \[x7\]
diff --git a/gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.s b/gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.s
new file mode 100644
index 0000000..bfa41e0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.s
@@ -0,0 +1,22 @@
+ /* ARMv8.3 weaker release consistency load instructions. */
+
+ /* <mnemonic> <Wt>, [<Xn|SP>{,#0}] */
+ .macro LR32 op
+ \op w1, [x7]
+ \op w1, [x7, #0]
+ \op w1, [x7, 0]
+ .endm
+
+ /* <mnemonic> <Xt>, [<Xn|SP>{,#0}] */
+ .macro LR64 op
+ \op x1, [x7]
+ \op x1, [x7, #0]
+ \op x1, [x7, 0]
+ .endm
+
+func:
+ .irp op, ldaprb, ldaprh, ldapr
+ LR32 \op
+ .endr
+
+ LR64 ldapr
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 6a92b75..e7911b1 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,12 @@
2016-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
+ * aarch64-tbl.h (arch64_opcode_table): Add ldaprb, ldaprh, ldapr.
+ * aarch64-asm-2.c: Regenerate.
+ * aarch64-dis-2.c: Regenerate.
+ * aarch64-opc-2.c: Regenerate.
+
+2016-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
* aarch64-tbl.h (arch64_opcode_table): Add fjcvtzs.
(QL_FP2INT_W_D, aarch64_feature_fp_v8_3, FP_V8_3): Define.
* aarch64-asm-2.c: Regenerate.
diff --git a/opcodes/aarch64-asm-2.c b/opcodes/aarch64-asm-2.c
index 1e8ca59..d0358f9 100644
--- a/opcodes/aarch64-asm-2.c
+++ b/opcodes/aarch64-asm-2.c
@@ -197,380 +197,380 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
case 743: /* extr */
value = 743; /* --> extr. */
break;
- case 954: /* bic */
- case 953: /* and */
- value = 953; /* --> and. */
- break;
- case 956: /* mov */
- case 955: /* orr */
- value = 955; /* --> orr. */
- break;
- case 959: /* tst */
- case 958: /* ands */
- value = 958; /* --> ands. */
- break;
- case 964: /* uxtw */
- case 963: /* mov */
- case 962: /* orr */
- value = 962; /* --> orr. */
+ case 957: /* bic */
+ case 956: /* and */
+ value = 956; /* --> and. */
+ break;
+ case 959: /* mov */
+ case 958: /* orr */
+ value = 958; /* --> orr. */
+ break;
+ case 962: /* tst */
+ case 961: /* ands */
+ value = 961; /* --> ands. */
+ break;
+ case 967: /* uxtw */
+ case 966: /* mov */
+ case 965: /* orr */
+ value = 965; /* --> orr. */
break;
- case 966: /* mvn */
- case 965: /* orn */
- value = 965; /* --> orn. */
+ case 969: /* mvn */
+ case 968: /* orn */
+ value = 968; /* --> orn. */
break;
- case 970: /* tst */
- case 969: /* ands */
- value = 969; /* --> ands. */
+ case 973: /* tst */
+ case 972: /* ands */
+ value = 972; /* --> ands. */
break;
- case 1096: /* staddb */
- case 1000: /* ldaddb */
- value = 1000; /* --> ldaddb. */
+ case 1099: /* staddb */
+ case 1003: /* ldaddb */
+ value = 1003; /* --> ldaddb. */
break;
- case 1097: /* staddh */
- case 1001: /* ldaddh */
- value = 1001; /* --> ldaddh. */
+ case 1100: /* staddh */
+ case 1004: /* ldaddh */
+ value = 1004; /* --> ldaddh. */
break;
- case 1098: /* stadd */
- case 1002: /* ldadd */
- value = 1002; /* --> ldadd. */
+ case 1101: /* stadd */
+ case 1005: /* ldadd */
+ value = 1005; /* --> ldadd. */
break;
- case 1099: /* staddlb */
- case 1004: /* ldaddlb */
- value = 1004; /* --> ldaddlb. */
+ case 1102: /* staddlb */
+ case 1007: /* ldaddlb */
+ value = 1007; /* --> ldaddlb. */
break;
- case 1100: /* staddlh */
- case 1007: /* ldaddlh */
- value = 1007; /* --> ldaddlh. */
+ case 1103: /* staddlh */
+ case 1010: /* ldaddlh */
+ value = 1010; /* --> ldaddlh. */
break;
- case 1101: /* staddl */
- case 1010: /* ldaddl */
- value = 1010; /* --> ldaddl. */
+ case 1104: /* staddl */
+ case 1013: /* ldaddl */
+ value = 1013; /* --> ldaddl. */
break;
- case 1102: /* stclrb */
- case 1012: /* ldclrb */
- value = 1012; /* --> ldclrb. */
+ case 1105: /* stclrb */
+ case 1015: /* ldclrb */
+ value = 1015; /* --> ldclrb. */
break;
- case 1103: /* stclrh */
- case 1013: /* ldclrh */
- value = 1013; /* --> ldclrh. */
+ case 1106: /* stclrh */
+ case 1016: /* ldclrh */
+ value = 1016; /* --> ldclrh. */
break;
- case 1104: /* stclr */
- case 1014: /* ldclr */
- value = 1014; /* --> ldclr. */
+ case 1107: /* stclr */
+ case 1017: /* ldclr */
+ value = 1017; /* --> ldclr. */
break;
- case 1105: /* stclrlb */
- case 1016: /* ldclrlb */
- value = 1016; /* --> ldclrlb. */
+ case 1108: /* stclrlb */
+ case 1019: /* ldclrlb */
+ value = 1019; /* --> ldclrlb. */
break;
- case 1106: /* stclrlh */
- case 1019: /* ldclrlh */
- value = 1019; /* --> ldclrlh. */
+ case 1109: /* stclrlh */
+ case 1022: /* ldclrlh */
+ value = 1022; /* --> ldclrlh. */
break;
- case 1107: /* stclrl */
- case 1022: /* ldclrl */
- value = 1022; /* --> ldclrl. */
+ case 1110: /* stclrl */
+ case 1025: /* ldclrl */
+ value = 1025; /* --> ldclrl. */
break;
- case 1108: /* steorb */
- case 1024: /* ldeorb */
- value = 1024; /* --> ldeorb. */
+ case 1111: /* steorb */
+ case 1027: /* ldeorb */
+ value = 1027; /* --> ldeorb. */
break;
- case 1109: /* steorh */
- case 1025: /* ldeorh */
- value = 1025; /* --> ldeorh. */
+ case 1112: /* steorh */
+ case 1028: /* ldeorh */
+ value = 1028; /* --> ldeorh. */
break;
- case 1110: /* steor */
- case 1026: /* ldeor */
- value = 1026; /* --> ldeor. */
+ case 1113: /* steor */
+ case 1029: /* ldeor */
+ value = 1029; /* --> ldeor. */
break;
- case 1111: /* steorlb */
- case 1028: /* ldeorlb */
- value = 1028; /* --> ldeorlb. */
+ case 1114: /* steorlb */
+ case 1031: /* ldeorlb */
+ value = 1031; /* --> ldeorlb. */
break;
- case 1112: /* steorlh */
- case 1031: /* ldeorlh */
- value = 1031; /* --> ldeorlh. */
+ case 1115: /* steorlh */
+ case 1034: /* ldeorlh */
+ value = 1034; /* --> ldeorlh. */
break;
- case 1113: /* steorl */
- case 1034: /* ldeorl */
- value = 1034; /* --> ldeorl. */
+ case 1116: /* steorl */
+ case 1037: /* ldeorl */
+ value = 1037; /* --> ldeorl. */
break;
- case 1114: /* stsetb */
- case 1036: /* ldsetb */
- value = 1036; /* --> ldsetb. */
+ case 1117: /* stsetb */
+ case 1039: /* ldsetb */
+ value = 1039; /* --> ldsetb. */
break;
- case 1115: /* stseth */
- case 1037: /* ldseth */
- value = 1037; /* --> ldseth. */
+ case 1118: /* stseth */
+ case 1040: /* ldseth */
+ value = 1040; /* --> ldseth. */
break;
- case 1116: /* stset */
- case 1038: /* ldset */
- value = 1038; /* --> ldset. */
+ case 1119: /* stset */
+ case 1041: /* ldset */
+ value = 1041; /* --> ldset. */
break;
- case 1117: /* stsetlb */
- case 1040: /* ldsetlb */
- value = 1040; /* --> ldsetlb. */
+ case 1120: /* stsetlb */
+ case 1043: /* ldsetlb */
+ value = 1043; /* --> ldsetlb. */
break;
- case 1118: /* stsetlh */
- case 1043: /* ldsetlh */
- value = 1043; /* --> ldsetlh. */
+ case 1121: /* stsetlh */
+ case 1046: /* ldsetlh */
+ value = 1046; /* --> ldsetlh. */
break;
- case 1119: /* stsetl */
- case 1046: /* ldsetl */
- value = 1046; /* --> ldsetl. */
+ case 1122: /* stsetl */
+ case 1049: /* ldsetl */
+ value = 1049; /* --> ldsetl. */
break;
- case 1120: /* stsmaxb */
- case 1048: /* ldsmaxb */
- value = 1048; /* --> ldsmaxb. */
+ case 1123: /* stsmaxb */
+ case 1051: /* ldsmaxb */
+ value = 1051; /* --> ldsmaxb. */
break;
- case 1121: /* stsmaxh */
- case 1049: /* ldsmaxh */
- value = 1049; /* --> ldsmaxh. */
+ case 1124: /* stsmaxh */
+ case 1052: /* ldsmaxh */
+ value = 1052; /* --> ldsmaxh. */
break;
- case 1122: /* stsmax */
- case 1050: /* ldsmax */
- value = 1050; /* --> ldsmax. */
- break;
- case 1123: /* stsmaxlb */
- case 1052: /* ldsmaxlb */
- value = 1052; /* --> ldsmaxlb. */
- break;
- case 1124: /* stsmaxlh */
- case 1055: /* ldsmaxlh */
- value = 1055; /* --> ldsmaxlh. */
- break;
- case 1125: /* stsmaxl */
- case 1058: /* ldsmaxl */
- value = 1058; /* --> ldsmaxl. */
- break;
- case 1126: /* stsminb */
- case 1060: /* ldsminb */
- value = 1060; /* --> ldsminb. */
- break;
- case 1127: /* stsminh */
- case 1061: /* ldsminh */
- value = 1061; /* --> ldsminh. */
- break;
- case 1128: /* stsmin */
- case 1062: /* ldsmin */
- value = 1062; /* --> ldsmin. */
- break;
- case 1129: /* stsminlb */
- case 1064: /* ldsminlb */
- value = 1064; /* --> ldsminlb. */
- break;
- case 1130: /* stsminlh */
- case 1067: /* ldsminlh */
- value = 1067; /* --> ldsminlh. */
- break;
- case 1131: /* stsminl */
- case 1070: /* ldsminl */
- value = 1070; /* --> ldsminl. */
- break;
- case 1132: /* stumaxb */
- case 1072: /* ldumaxb */
- value = 1072; /* --> ldumaxb. */
- break;
- case 1133: /* stumaxh */
- case 1073: /* ldumaxh */
- value = 1073; /* --> ldumaxh. */
- break;
- case 1134: /* stumax */
- case 1074: /* ldumax */
- value = 1074; /* --> ldumax. */
- break;
- case 1135: /* stumaxlb */
- case 1076: /* ldumaxlb */
- value = 1076; /* --> ldumaxlb. */
- break;
- case 1136: /* stumaxlh */
- case 1079: /* ldumaxlh */
- value = 1079; /* --> ldumaxlh. */
- break;
- case 1137: /* stumaxl */
- case 1082: /* ldumaxl */
- value = 1082; /* --> ldumaxl. */
- break;
- case 1138: /* stuminb */
- case 1084: /* lduminb */
- value = 1084; /* --> lduminb. */
- break;
- case 1139: /* stuminh */
- case 1085: /* lduminh */
- value = 1085; /* --> lduminh. */
- break;
- case 1140: /* stumin */
- case 1086: /* ldumin */
- value = 1086; /* --> ldumin. */
- break;
- case 1141: /* stuminlb */
- case 1088: /* lduminlb */
- value = 1088; /* --> lduminlb. */
- break;
- case 1142: /* stuminlh */
- case 1091: /* lduminlh */
- value = 1091; /* --> lduminlh. */
- break;
- case 1143: /* stuminl */
- case 1094: /* lduminl */
- value = 1094; /* --> lduminl. */
- break;
- case 1145: /* mov */
- case 1144: /* movn */
- value = 1144; /* --> movn. */
- break;
- case 1147: /* mov */
- case 1146: /* movz */
- value = 1146; /* --> movz. */
- break;
- case 1185: /* autibsp */
- case 1184: /* autibz */
- case 1183: /* autiasp */
- case 1182: /* autiaz */
- case 1181: /* pacibsp */
- case 1180: /* pacibz */
- case 1179: /* paciasp */
- case 1178: /* paciaz */
- case 1165: /* psb */
- case 1164: /* esb */
- case 1163: /* autib1716 */
- case 1162: /* autia1716 */
- case 1161: /* pacib1716 */
- case 1160: /* pacia1716 */
- case 1159: /* xpaclri */
- case 1158: /* sevl */
- case 1157: /* sev */
- case 1156: /* wfi */
- case 1155: /* wfe */
- case 1154: /* yield */
- case 1153: /* nop */
- case 1152: /* hint */
- value = 1152; /* --> hint. */
- break;
- case 1174: /* tlbi */
- case 1173: /* ic */
- case 1172: /* dc */
- case 1171: /* at */
- case 1170: /* sys */
- value = 1170; /* --> sys. */
- break;
- case 1928: /* bic */
- case 1233: /* and */
- value = 1233; /* --> and. */
+ case 1125: /* stsmax */
+ case 1053: /* ldsmax */
+ value = 1053; /* --> ldsmax. */
+ break;
+ case 1126: /* stsmaxlb */
+ case 1055: /* ldsmaxlb */
+ value = 1055; /* --> ldsmaxlb. */
+ break;
+ case 1127: /* stsmaxlh */
+ case 1058: /* ldsmaxlh */
+ value = 1058; /* --> ldsmaxlh. */
+ break;
+ case 1128: /* stsmaxl */
+ case 1061: /* ldsmaxl */
+ value = 1061; /* --> ldsmaxl. */
+ break;
+ case 1129: /* stsminb */
+ case 1063: /* ldsminb */
+ value = 1063; /* --> ldsminb. */
+ break;
+ case 1130: /* stsminh */
+ case 1064: /* ldsminh */
+ value = 1064; /* --> ldsminh. */
+ break;
+ case 1131: /* stsmin */
+ case 1065: /* ldsmin */
+ value = 1065; /* --> ldsmin. */
+ break;
+ case 1132: /* stsminlb */
+ case 1067: /* ldsminlb */
+ value = 1067; /* --> ldsminlb. */
+ break;
+ case 1133: /* stsminlh */
+ case 1070: /* ldsminlh */
+ value = 1070; /* --> ldsminlh. */
+ break;
+ case 1134: /* stsminl */
+ case 1073: /* ldsminl */
+ value = 1073; /* --> ldsminl. */
+ break;
+ case 1135: /* stumaxb */
+ case 1075: /* ldumaxb */
+ value = 1075; /* --> ldumaxb. */
+ break;
+ case 1136: /* stumaxh */
+ case 1076: /* ldumaxh */
+ value = 1076; /* --> ldumaxh. */
+ break;
+ case 1137: /* stumax */
+ case 1077: /* ldumax */
+ value = 1077; /* --> ldumax. */
+ break;
+ case 1138: /* stumaxlb */
+ case 1079: /* ldumaxlb */
+ value = 1079; /* --> ldumaxlb. */
+ break;
+ case 1139: /* stumaxlh */
+ case 1082: /* ldumaxlh */
+ value = 1082; /* --> ldumaxlh. */
+ break;
+ case 1140: /* stumaxl */
+ case 1085: /* ldumaxl */
+ value = 1085; /* --> ldumaxl. */
+ break;
+ case 1141: /* stuminb */
+ case 1087: /* lduminb */
+ value = 1087; /* --> lduminb. */
+ break;
+ case 1142: /* stuminh */
+ case 1088: /* lduminh */
+ value = 1088; /* --> lduminh. */
+ break;
+ case 1143: /* stumin */
+ case 1089: /* ldumin */
+ value = 1089; /* --> ldumin. */
+ break;
+ case 1144: /* stuminlb */
+ case 1091: /* lduminlb */
+ value = 1091; /* --> lduminlb. */
+ break;
+ case 1145: /* stuminlh */
+ case 1094: /* lduminlh */
+ value = 1094; /* --> lduminlh. */
+ break;
+ case 1146: /* stuminl */
+ case 1097: /* lduminl */
+ value = 1097; /* --> lduminl. */
+ break;
+ case 1148: /* mov */
+ case 1147: /* movn */
+ value = 1147; /* --> movn. */
+ break;
+ case 1150: /* mov */
+ case 1149: /* movz */
+ value = 1149; /* --> movz. */
+ break;
+ case 1188: /* autibsp */
+ case 1187: /* autibz */
+ case 1186: /* autiasp */
+ case 1185: /* autiaz */
+ case 1184: /* pacibsp */
+ case 1183: /* pacibz */
+ case 1182: /* paciasp */
+ case 1181: /* paciaz */
+ case 1168: /* psb */
+ case 1167: /* esb */
+ case 1166: /* autib1716 */
+ case 1165: /* autia1716 */
+ case 1164: /* pacib1716 */
+ case 1163: /* pacia1716 */
+ case 1162: /* xpaclri */
+ case 1161: /* sevl */
+ case 1160: /* sev */
+ case 1159: /* wfi */
+ case 1158: /* wfe */
+ case 1157: /* yield */
+ case 1156: /* nop */
+ case 1155: /* hint */
+ value = 1155; /* --> hint. */
+ break;
+ case 1177: /* tlbi */
+ case 1176: /* ic */
+ case 1175: /* dc */
+ case 1174: /* at */
+ case 1173: /* sys */
+ value = 1173; /* --> sys. */
+ break;
+ case 1931: /* bic */
+ case 1236: /* and */
+ value = 1236; /* --> and. */
+ break;
+ case 1219: /* mov */
+ case 1238: /* and */
+ value = 1238; /* --> and. */
+ break;
+ case 1223: /* movs */
+ case 1239: /* ands */
+ value = 1239; /* --> ands. */
+ break;
+ case 1932: /* cmple */
+ case 1274: /* cmpge */
+ value = 1274; /* --> cmpge. */
+ break;
+ case 1935: /* cmplt */
+ case 1277: /* cmpgt */
+ value = 1277; /* --> cmpgt. */
+ break;
+ case 1933: /* cmplo */
+ case 1279: /* cmphi */
+ value = 1279; /* --> cmphi. */
+ break;
+ case 1934: /* cmpls */
+ case 1282: /* cmphs */
+ value = 1282; /* --> cmphs. */
break;
case 1216: /* mov */
- case 1235: /* and */
- value = 1235; /* --> and. */
+ case 1304: /* cpy */
+ value = 1304; /* --> cpy. */
break;
- case 1220: /* movs */
- case 1236: /* ands */
- value = 1236; /* --> ands. */
- break;
- case 1929: /* cmple */
- case 1271: /* cmpge */
- value = 1271; /* --> cmpge. */
- break;
- case 1932: /* cmplt */
- case 1274: /* cmpgt */
- value = 1274; /* --> cmpgt. */
+ case 1218: /* mov */
+ case 1305: /* cpy */
+ value = 1305; /* --> cpy. */
break;
- case 1930: /* cmplo */
- case 1276: /* cmphi */
- value = 1276; /* --> cmphi. */
+ case 1942: /* fmov */
+ case 1221: /* mov */
+ case 1306: /* cpy */
+ value = 1306; /* --> cpy. */
break;
- case 1931: /* cmpls */
- case 1279: /* cmphs */
- value = 1279; /* --> cmphs. */
+ case 1211: /* mov */
+ case 1318: /* dup */
+ value = 1318; /* --> dup. */
break;
case 1213: /* mov */
- case 1301: /* cpy */
- value = 1301; /* --> cpy. */
- break;
- case 1215: /* mov */
- case 1302: /* cpy */
- value = 1302; /* --> cpy. */
- break;
- case 1939: /* fmov */
- case 1218: /* mov */
- case 1303: /* cpy */
- value = 1303; /* --> cpy. */
- break;
- case 1208: /* mov */
- case 1315: /* dup */
- value = 1315; /* --> dup. */
- break;
case 1210: /* mov */
- case 1207: /* mov */
- case 1316: /* dup */
- value = 1316; /* --> dup. */
+ case 1319: /* dup */
+ value = 1319; /* --> dup. */
break;
- case 1938: /* fmov */
- case 1212: /* mov */
- case 1317: /* dup */
- value = 1317; /* --> dup. */
- break;
- case 1211: /* mov */
- case 1318: /* dupm */
- value = 1318; /* --> dupm. */
- break;
- case 1933: /* eon */
- case 1320: /* eor */
- value = 1320; /* --> eor. */
+ case 1941: /* fmov */
+ case 1215: /* mov */
+ case 1320: /* dup */
+ value = 1320; /* --> dup. */
break;
- case 1221: /* not */
- case 1322: /* eor */
- value = 1322; /* --> eor. */
+ case 1214: /* mov */
+ case 1321: /* dupm */
+ value = 1321; /* --> dupm. */
break;
- case 1222: /* nots */
- case 1323: /* eors */
- value = 1323; /* --> eors. */
+ case 1936: /* eon */
+ case 1323: /* eor */
+ value = 1323; /* --> eor. */
break;
- case 1934: /* facle */
- case 1328: /* facge */
- value = 1328; /* --> facge. */
+ case 1224: /* not */
+ case 1325: /* eor */
+ value = 1325; /* --> eor. */
break;
- case 1935: /* faclt */
- case 1329: /* facgt */
- value = 1329; /* --> facgt. */
+ case 1225: /* nots */
+ case 1326: /* eors */
+ value = 1326; /* --> eors. */
break;
- case 1936: /* fcmle */
- case 1338: /* fcmge */
- value = 1338; /* --> fcmge. */
+ case 1937: /* facle */
+ case 1331: /* facge */
+ value = 1331; /* --> facge. */
break;
- case 1937: /* fcmlt */
- case 1340: /* fcmgt */
- value = 1340; /* --> fcmgt. */
+ case 1938: /* faclt */
+ case 1332: /* facgt */
+ value = 1332; /* --> facgt. */
break;
- case 1205: /* fmov */
- case 1346: /* fcpy */
- value = 1346; /* --> fcpy. */
+ case 1939: /* fcmle */
+ case 1341: /* fcmge */
+ value = 1341; /* --> fcmge. */
break;
- case 1204: /* fmov */
- case 1363: /* fdup */
- value = 1363; /* --> fdup. */
+ case 1940: /* fcmlt */
+ case 1343: /* fcmgt */
+ value = 1343; /* --> fcmgt. */
break;
- case 1206: /* mov */
- case 1661: /* orr */
- value = 1661; /* --> orr. */
+ case 1208: /* fmov */
+ case 1349: /* fcpy */
+ value = 1349; /* --> fcpy. */
break;
- case 1940: /* orn */
- case 1662: /* orr */
- value = 1662; /* --> orr. */
+ case 1207: /* fmov */
+ case 1366: /* fdup */
+ value = 1366; /* --> fdup. */
break;
case 1209: /* mov */
case 1664: /* orr */
value = 1664; /* --> orr. */
break;
- case 1219: /* movs */
- case 1665: /* orrs */
- value = 1665; /* --> orrs. */
+ case 1943: /* orn */
+ case 1665: /* orr */
+ value = 1665; /* --> orr. */
break;
- case 1214: /* mov */
- case 1721: /* sel */
- value = 1721; /* --> sel. */
+ case 1212: /* mov */
+ case 1667: /* orr */
+ value = 1667; /* --> orr. */
+ break;
+ case 1222: /* movs */
+ case 1668: /* orrs */
+ value = 1668; /* --> orrs. */
break;
case 1217: /* mov */
- case 1722: /* sel */
- value = 1722; /* --> sel. */
+ case 1724: /* sel */
+ value = 1724; /* --> sel. */
+ break;
+ case 1220: /* mov */
+ case 1725: /* sel */
+ value = 1725; /* --> sel. */
break;
default: return NULL;
}
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index 2ce214d..a6391b0 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -40,7 +40,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0
adr. */
- return 1149;
+ return 1152;
}
else
{
@@ -48,7 +48,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1
adrp. */
- return 1150;
+ return 1153;
}
}
else
@@ -143,7 +143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx100x00100x0
casp. */
- return 984;
+ return 987;
}
else
{
@@ -195,7 +195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx100x00100x0
caspl. */
- return 986;
+ return 989;
}
else
{
@@ -214,7 +214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx00x00101xx
stnp. */
- return 935;
+ return 938;
}
}
else
@@ -231,7 +231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx001x00100x0
stllrb. */
- return 933;
+ return 936;
}
else
{
@@ -239,7 +239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx001x00100x1
stllr. */
- return 932;
+ return 935;
}
}
else
@@ -252,7 +252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx101x0010000
casb. */
- return 972;
+ return 975;
}
else
{
@@ -260,7 +260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx101x0010010
cash. */
- return 973;
+ return 976;
}
}
else
@@ -269,7 +269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx101x00100x1
cas. */
- return 974;
+ return 977;
}
}
}
@@ -315,7 +315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx101x0010000
caslb. */
- return 976;
+ return 979;
}
else
{
@@ -323,7 +323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx101x0010010
caslh. */
- return 979;
+ return 982;
}
}
else
@@ -332,7 +332,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx101x00100x1
casl. */
- return 982;
+ return 985;
}
}
}
@@ -343,7 +343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx01x00101xx
stp. */
- return 944;
+ return 947;
}
}
}
@@ -393,7 +393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx110x00100x0
caspa. */
- return 985;
+ return 988;
}
else
{
@@ -445,7 +445,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx110x00100x0
caspal. */
- return 987;
+ return 990;
}
else
{
@@ -466,7 +466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx10x001010x
ldnp. */
- return 936;
+ return 939;
}
else
{
@@ -474,7 +474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx10x001011x
ldpsw. */
- return 943;
+ return 946;
}
}
}
@@ -494,7 +494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx011x0010000
ldlarb. */
- return 930;
+ return 933;
}
else
{
@@ -502,7 +502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx011x0010010
ldlarh. */
- return 931;
+ return 934;
}
}
else
@@ -511,7 +511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx011x00100x1
ldlar. */
- return 929;
+ return 932;
}
}
else
@@ -524,7 +524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx111x0010000
casab. */
- return 975;
+ return 978;
}
else
{
@@ -532,7 +532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx111x0010010
casah. */
- return 978;
+ return 981;
}
}
else
@@ -541,7 +541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx111x00100x1
casa. */
- return 981;
+ return 984;
}
}
}
@@ -587,7 +587,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx111x0010000
casalb. */
- return 977;
+ return 980;
}
else
{
@@ -595,7 +595,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx111x0010010
casalh. */
- return 980;
+ return 983;
}
}
else
@@ -604,7 +604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx111x00100x1
casal. */
- return 983;
+ return 986;
}
}
}
@@ -617,7 +617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx11x001010x
ldp. */
- return 945;
+ return 948;
}
else
{
@@ -625,7 +625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx11x001011x
ldpsw. */
- return 948;
+ return 951;
}
}
}
@@ -643,7 +643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx000110x0
ldr. */
- return 949;
+ return 952;
}
else
{
@@ -653,7 +653,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx00011001
ldrsw. */
- return 951;
+ return 954;
}
else
{
@@ -661,7 +661,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx00011011
prfm. */
- return 952;
+ return 955;
}
}
}
@@ -800,7 +800,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx10000011100
ldaddb. */
- return 1000;
+ return 1003;
}
else
{
@@ -808,7 +808,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx10000011110
ldaddh. */
- return 1001;
+ return 1004;
}
}
else
@@ -817,7 +817,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx100000111x1
ldadd. */
- return 1002;
+ return 1005;
}
}
else
@@ -830,7 +830,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx10100011100
ldaddab. */
- return 1003;
+ return 1006;
}
else
{
@@ -838,7 +838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx10100011110
ldaddah. */
- return 1006;
+ return 1009;
}
}
else
@@ -847,7 +847,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx101000111x1
ldadda. */
- return 1009;
+ return 1012;
}
}
}
@@ -863,7 +863,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx11000011100
ldaddlb. */
- return 1004;
+ return 1007;
}
else
{
@@ -871,7 +871,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx11000011110
ldaddlh. */
- return 1007;
+ return 1010;
}
}
else
@@ -880,7 +880,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx110000111x1
ldaddl. */
- return 1010;
+ return 1013;
}
}
else
@@ -893,7 +893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx11100011100
ldaddalb. */
- return 1005;
+ return 1008;
}
else
{
@@ -901,7 +901,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx11100011110
ldaddalh. */
- return 1008;
+ return 1011;
}
}
else
@@ -910,7 +910,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx111000111x1
ldaddal. */
- return 1011;
+ return 1014;
}
}
}
@@ -929,7 +929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx10000011100
swpb. */
- return 988;
+ return 991;
}
else
{
@@ -937,7 +937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx10000011110
swph. */
- return 989;
+ return 992;
}
}
else
@@ -946,7 +946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx100000111x1
swp. */
- return 990;
+ return 993;
}
}
else
@@ -959,7 +959,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx10100011100
swpab. */
- return 991;
+ return 994;
}
else
{
@@ -967,7 +967,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx10100011110
swpah. */
- return 994;
+ return 997;
}
}
else
@@ -976,7 +976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx101000111x1
swpa. */
- return 997;
+ return 1000;
}
}
}
@@ -992,7 +992,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx11000011100
swplb. */
- return 992;
+ return 995;
}
else
{
@@ -1000,7 +1000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx11000011110
swplh. */
- return 995;
+ return 998;
}
}
else
@@ -1009,7 +1009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx110000111x1
swpl. */
- return 998;
+ return 1001;
}
}
else
@@ -1022,7 +1022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx11100011100
swpalb. */
- return 993;
+ return 996;
}
else
{
@@ -1030,7 +1030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx11100011110
swpalh. */
- return 996;
+ return 999;
}
}
else
@@ -1039,7 +1039,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx111000111x1
swpal. */
- return 999;
+ return 1002;
}
}
}
@@ -1047,131 +1047,164 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 15) & 0x1) == 0)
{
- if (((word >> 23) & 0x1) == 0)
+ if (((word >> 22) & 0x1) == 0)
{
- if (((word >> 31) & 0x1) == 0)
+ if (((word >> 23) & 0x1) == 0)
{
- if (((word >> 30) & 0x1) == 0)
+ if (((word >> 31) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx10000011100
- ldsmaxb. */
- return 1048;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000010xxxxx10000011100
+ ldsmaxb. */
+ return 1051;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000010xxxxx10000011110
+ ldsmaxh. */
+ return 1052;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx10000011110
- ldsmaxh. */
- return 1049;
+ xxxxxxxxxx000010xxxxx100000111x1
+ ldsmax. */
+ return 1053;
}
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx100000111x1
- ldsmax. */
- return 1050;
- }
- }
- else
- {
- if (((word >> 31) & 0x1) == 0)
- {
- if (((word >> 30) & 0x1) == 0)
+ if (((word >> 31) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx10100011100
- ldsmaxab. */
- return 1051;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000010xxxxx10100011100
+ ldsmaxab. */
+ return 1054;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000010xxxxx10100011110
+ ldsmaxah. */
+ return 1057;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx10100011110
- ldsmaxah. */
- return 1054;
+ xxxxxxxxxx000010xxxxx101000111x1
+ ldsmaxa. */
+ return 1060;
}
}
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx101000111x1
- ldsmaxa. */
- return 1057;
- }
}
- }
- else
- {
- if (((word >> 23) & 0x1) == 0)
+ else
{
- if (((word >> 31) & 0x1) == 0)
+ if (((word >> 23) & 0x1) == 0)
{
- if (((word >> 30) & 0x1) == 0)
+ if (((word >> 31) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx11000011100
- ldsmaxlb. */
- return 1052;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000010xxxxx11000011100
+ ldsmaxlb. */
+ return 1055;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000010xxxxx11000011110
+ ldsmaxlh. */
+ return 1058;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx11000011110
- ldsmaxlh. */
- return 1055;
+ xxxxxxxxxx000010xxxxx110000111x1
+ ldsmaxl. */
+ return 1061;
}
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx110000111x1
- ldsmaxl. */
- return 1058;
- }
- }
- else
- {
- if (((word >> 31) & 0x1) == 0)
- {
- if (((word >> 30) & 0x1) == 0)
+ if (((word >> 31) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx11100011100
- ldsmaxalb. */
- return 1053;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000010xxxxx11100011100
+ ldsmaxalb. */
+ return 1056;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000010xxxxx11100011110
+ ldsmaxalh. */
+ return 1059;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx11100011110
- ldsmaxalh. */
- return 1056;
+ xxxxxxxxxx000010xxxxx111000111x1
+ ldsmaxal. */
+ return 1062;
}
}
+ }
+ }
+ else
+ {
+ if (((word >> 31) & 0x1) == 0)
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000011xxxxx1xx00011100
+ ldaprb. */
+ return 929;
+ }
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- xxxxxxxxxx00001xxxxxx111000111x1
- ldsmaxal. */
- return 1059;
+ xxxxxxxxxx000011xxxxx1xx00011110
+ ldaprh. */
+ return 930;
}
}
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxxxxxxxxx000011xxxxx1xx000111x1
+ ldapr. */
+ return 931;
+ }
}
}
}
@@ -1191,7 +1224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx10000011100
ldeorb. */
- return 1024;
+ return 1027;
}
else
{
@@ -1199,7 +1232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx10000011110
ldeorh. */
- return 1025;
+ return 1028;
}
}
else
@@ -1208,7 +1241,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx100000111x1
ldeor. */
- return 1026;
+ return 1029;
}
}
else
@@ -1221,7 +1254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx10100011100
ldeorab. */
- return 1027;
+ return 1030;
}
else
{
@@ -1229,7 +1262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx10100011110
ldeorah. */
- return 1030;
+ return 1033;
}
}
else
@@ -1238,7 +1271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx101000111x1
ldeora. */
- return 1033;
+ return 1036;
}
}
}
@@ -1254,7 +1287,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx11000011100
ldeorlb. */
- return 1028;
+ return 1031;
}
else
{
@@ -1262,7 +1295,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx11000011110
ldeorlh. */
- return 1031;
+ return 1034;
}
}
else
@@ -1271,7 +1304,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx110000111x1
ldeorl. */
- return 1034;
+ return 1037;
}
}
else
@@ -1284,7 +1317,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx11100011100
ldeoralb. */
- return 1029;
+ return 1032;
}
else
{
@@ -1292,7 +1325,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx11100011110
ldeoralh. */
- return 1032;
+ return 1035;
}
}
else
@@ -1301,7 +1334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx111000111x1
ldeoral. */
- return 1035;
+ return 1038;
}
}
}
@@ -1320,7 +1353,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx10000011100
ldumaxb. */
- return 1072;
+ return 1075;
}
else
{
@@ -1328,7 +1361,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx10000011110
ldumaxh. */
- return 1073;
+ return 1076;
}
}
else
@@ -1337,7 +1370,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx100000111x1
ldumax. */
- return 1074;
+ return 1077;
}
}
else
@@ -1350,7 +1383,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx10100011100
ldumaxab. */
- return 1075;
+ return 1078;
}
else
{
@@ -1358,7 +1391,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx10100011110
ldumaxah. */
- return 1078;
+ return 1081;
}
}
else
@@ -1367,7 +1400,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx101000111x1
ldumaxa. */
- return 1081;
+ return 1084;
}
}
}
@@ -1383,7 +1416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx11000011100
ldumaxlb. */
- return 1076;
+ return 1079;
}
else
{
@@ -1391,7 +1424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx11000011110
ldumaxlh. */
- return 1079;
+ return 1082;
}
}
else
@@ -1400,7 +1433,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx110000111x1
ldumaxl. */
- return 1082;
+ return 1085;
}
}
else
@@ -1413,7 +1446,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx11100011100
ldumaxalb. */
- return 1077;
+ return 1080;
}
else
{
@@ -1421,7 +1454,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx11100011110
ldumaxalh. */
- return 1080;
+ return 1083;
}
}
else
@@ -1430,7 +1463,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx111000111x1
ldumaxal. */
- return 1083;
+ return 1086;
}
}
}
@@ -1455,7 +1488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00100xxxxxx10000011100
ldclrb. */
- return 1012;
+ return 1015;
}
else
{
@@ -1463,7 +1496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00100xxxxxx10000011110
ldclrh. */
- return 1013;
+ return 1016;
}
}
else
@@ -1472,7 +1505,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00100xxxxxx100000111x1
ldclr. */
- return 1014;
+ return 1017;
}
}
else
@@ -1485,7 +1518,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00100xxxxxx10100011100
ldclrab. */
- return 1015;
+ return 1018;
}
else
{
@@ -1493,7 +1526,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00100xxxxxx10100011110
ldclrah. */
- return 1018;
+ return 1021;
}
}
else
@@ -1502,7 +1535,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00100xxxxxx101000111x1
ldclra. */
- return 1021;
+ return 1024;
}
}
}
@@ -1518,7 +1551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
[...]
[diff truncated at 100000 bytes]