[AArch64, Binutils] Make hint space instructions valid for Armv8-a
There are a few instruction in AArch64 that are in the HINT space. Any of these instructions should be accepted by the assembler/disassembler at any architecture version. This patch fixes the existing instructions that are not behaving accordingly. I have used all of the instructions mentioned in the following to make the changes: https://developer.arm.com/docs/ddi0596/f/base-instructions-alphabetic-order/ hint-hint-instruction gas/ChangeLog: 2020-04-20 Sudakshina Das <sudi.das@arm.com> * testsuite/gas/aarch64/bti.d: Update -march option. * testsuite/gas/aarch64/illegal-bti.d: Remove. * testsuite/gas/aarch64/illegal-bti.l: Remove. * testsuite/gas/aarch64/illegal-ras-1.l: Remove esb. * testsuite/gas/aarch64/illegal-ras-1.s: Remove esb. opcodes/ChangeLog: 2020-04-20 Sudakshina Das <sudi.das@arm.com> * aarch64-tbl.h (aarch64_feature_bti, BTI, BTI_INSN): Remove. (aarch64_feature_ras, RAS): Likewise. (aarch64_feature_stat_profile, STAT_PROFILE): Likewise. (aarch64_opcode_table): Update bti, xpaclri, pacia1716, pacib1716, autia1716, autib1716, esb, psb, dgh, paciaz, paciasp, pacibz, pacibsp, autiaz, autiasp, autibz, autibsp to be CORE_INSN. * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated.
This commit is contained in:
parent
3052c068aa
commit
8a6e1d1d7f
|
@ -1,3 +1,11 @@
|
|||
2020-04-20 Sudakshina Das <sudi.das@arm.com>
|
||||
|
||||
* testsuite/gas/aarch64/bti.d: Update -march option.
|
||||
* testsuite/gas/aarch64/illegal-bti.d: Remove.
|
||||
* testsuite/gas/aarch64/illegal-bti.l: Remove.
|
||||
* testsuite/gas/aarch64/illegal-ras-1.l: Remove esb.
|
||||
* testsuite/gas/aarch64/illegal-ras-1.s: Remove esb.
|
||||
|
||||
2020-04-17 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* config/tc-bfin.h (TC_EQUAL_IN_INSN): Allow assignment to dot.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#as: -march=armv8.5-a
|
||||
#as: -march=armv8-a
|
||||
#objdump: -dr
|
||||
|
||||
.*: file format .*
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
#as: -march=armv8-a
|
||||
#source: bti.s
|
||||
#error_output: illegal-bti.l
|
|
@ -1,8 +0,0 @@
|
|||
[^:]*: Assembler messages:
|
||||
[^:]*:[0-9]+: Error: selected processor does not support `bti'
|
||||
[^:]*:[0-9]+: Error: selected processor does not support `bti c'
|
||||
[^:]*:[0-9]+: Error: selected processor does not support `bti j'
|
||||
[^:]*:[0-9]+: Error: selected processor does not support `bti jc'
|
||||
[^:]*:[0-9]+: Error: selected processor does not support `bti C'
|
||||
[^:]*:[0-9]+: Error: selected processor does not support `bti J'
|
||||
[^:]*:[0-9]+: Error: selected processor does not support `bti JC'
|
|
@ -1,5 +1,4 @@
|
|||
[^:]+: Assembler messages:
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support `esb'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'erridr_el1'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'errselr_el1'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'errselr_el1'
|
||||
|
@ -18,7 +17,6 @@
|
|||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'disr_el1'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'disr_el1'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'vdisr_el2'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support `esb'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'erridr_el1'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'errselr_el1'
|
||||
^[^:]+:[0-9]+: Error: selected processor does not support system register name 'errselr_el1'
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
|
||||
/* ARMv8-A. */
|
||||
.arch armv8-a
|
||||
esb
|
||||
hint #0x10
|
||||
|
||||
rw_sys_reg sys_reg=erridr_el1 xreg=x5 r=1 w=0
|
||||
|
@ -33,7 +32,6 @@
|
|||
/* ARMv8.1-A. */
|
||||
|
||||
.arch armv8.1-a
|
||||
esb
|
||||
hint #0x10
|
||||
|
||||
rw_sys_reg sys_reg=erridr_el1 xreg=x5 r=1 w=0
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
2020-04-20 Sudakshina Das <sudi.das@arm.com>
|
||||
|
||||
* aarch64-tbl.h (aarch64_feature_bti, BTI, BTI_INSN): Remove.
|
||||
(aarch64_feature_ras, RAS): Likewise.
|
||||
(aarch64_feature_stat_profile, STAT_PROFILE): Likewise.
|
||||
(aarch64_opcode_table): Update bti, xpaclri, pacia1716, pacib1716,
|
||||
autia1716, autib1716, esb, psb, dgh, paciaz, paciasp, pacibz, pacibsp,
|
||||
autiaz, autiasp, autibz, autibsp to be CORE_INSN.
|
||||
* aarch64-asm-2.c: Regenerated.
|
||||
* aarch64-dis-2.c: Regenerated.
|
||||
* aarch64-opc-2.c: Regenerated.
|
||||
|
||||
2020-04-17 Fredrik Strupe <fredrik@strupe.net>
|
||||
|
||||
* arm-dis.c (neon_opcodes): Fix VDUP instruction masks.
|
||||
|
|
|
@ -426,21 +426,21 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
|
|||
case 1183: /* movz */
|
||||
value = 1183; /* --> movz. */
|
||||
break;
|
||||
case 1235: /* autibsp */
|
||||
case 1234: /* autibz */
|
||||
case 1233: /* autiasp */
|
||||
case 1232: /* autiaz */
|
||||
case 1231: /* pacibsp */
|
||||
case 1230: /* pacibz */
|
||||
case 1229: /* paciasp */
|
||||
case 1228: /* paciaz */
|
||||
case 1208: /* psb */
|
||||
case 1207: /* esb */
|
||||
case 1206: /* autib1716 */
|
||||
case 1205: /* autia1716 */
|
||||
case 1204: /* pacib1716 */
|
||||
case 1203: /* pacia1716 */
|
||||
case 1202: /* xpaclri */
|
||||
case 1236: /* autibsp */
|
||||
case 1235: /* autibz */
|
||||
case 1234: /* autiasp */
|
||||
case 1233: /* autiaz */
|
||||
case 1232: /* pacibsp */
|
||||
case 1231: /* pacibz */
|
||||
case 1230: /* paciasp */
|
||||
case 1229: /* paciaz */
|
||||
case 1209: /* psb */
|
||||
case 1208: /* esb */
|
||||
case 1207: /* autib1716 */
|
||||
case 1206: /* autia1716 */
|
||||
case 1205: /* pacib1716 */
|
||||
case 1204: /* pacia1716 */
|
||||
case 1203: /* xpaclri */
|
||||
case 1201: /* sevl */
|
||||
case 1200: /* sev */
|
||||
case 1199: /* wfi */
|
||||
|
@ -452,140 +452,140 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
|
|||
case 1193: /* hint */
|
||||
value = 1193; /* --> hint. */
|
||||
break;
|
||||
case 1212: /* pssbb */
|
||||
case 1211: /* ssbb */
|
||||
case 1210: /* dsb */
|
||||
value = 1210; /* --> dsb. */
|
||||
case 1213: /* pssbb */
|
||||
case 1212: /* ssbb */
|
||||
case 1211: /* dsb */
|
||||
value = 1211; /* --> dsb. */
|
||||
break;
|
||||
case 1223: /* cpp */
|
||||
case 1222: /* dvp */
|
||||
case 1221: /* cfp */
|
||||
case 1220: /* tlbi */
|
||||
case 1219: /* ic */
|
||||
case 1218: /* dc */
|
||||
case 1217: /* at */
|
||||
case 1216: /* sys */
|
||||
value = 1216; /* --> sys. */
|
||||
case 1224: /* cpp */
|
||||
case 1223: /* dvp */
|
||||
case 1222: /* cfp */
|
||||
case 1221: /* tlbi */
|
||||
case 1220: /* ic */
|
||||
case 1219: /* dc */
|
||||
case 1218: /* at */
|
||||
case 1217: /* sys */
|
||||
value = 1217; /* --> sys. */
|
||||
break;
|
||||
case 2033: /* bic */
|
||||
case 1283: /* and */
|
||||
value = 1283; /* --> and. */
|
||||
case 2034: /* bic */
|
||||
case 1284: /* and */
|
||||
value = 1284; /* --> and. */
|
||||
break;
|
||||
case 1266: /* mov */
|
||||
case 1285: /* and */
|
||||
value = 1285; /* --> and. */
|
||||
case 1267: /* mov */
|
||||
case 1286: /* and */
|
||||
value = 1286; /* --> and. */
|
||||
break;
|
||||
case 1270: /* movs */
|
||||
case 1286: /* ands */
|
||||
value = 1286; /* --> ands. */
|
||||
case 1271: /* movs */
|
||||
case 1287: /* ands */
|
||||
value = 1287; /* --> ands. */
|
||||
break;
|
||||
case 2034: /* cmple */
|
||||
case 1321: /* cmpge */
|
||||
value = 1321; /* --> cmpge. */
|
||||
case 2035: /* cmple */
|
||||
case 1322: /* cmpge */
|
||||
value = 1322; /* --> cmpge. */
|
||||
break;
|
||||
case 2037: /* cmplt */
|
||||
case 1324: /* cmpgt */
|
||||
value = 1324; /* --> cmpgt. */
|
||||
case 2038: /* cmplt */
|
||||
case 1325: /* cmpgt */
|
||||
value = 1325; /* --> cmpgt. */
|
||||
break;
|
||||
case 2035: /* cmplo */
|
||||
case 1326: /* cmphi */
|
||||
value = 1326; /* --> cmphi. */
|
||||
case 2036: /* cmplo */
|
||||
case 1327: /* cmphi */
|
||||
value = 1327; /* --> cmphi. */
|
||||
break;
|
||||
case 2036: /* cmpls */
|
||||
case 1329: /* cmphs */
|
||||
value = 1329; /* --> cmphs. */
|
||||
case 2037: /* cmpls */
|
||||
case 1330: /* cmphs */
|
||||
value = 1330; /* --> cmphs. */
|
||||
break;
|
||||
case 1263: /* mov */
|
||||
case 1351: /* cpy */
|
||||
value = 1351; /* --> cpy. */
|
||||
break;
|
||||
case 1265: /* mov */
|
||||
case 1264: /* mov */
|
||||
case 1352: /* cpy */
|
||||
value = 1352; /* --> cpy. */
|
||||
break;
|
||||
case 2044: /* fmov */
|
||||
case 1268: /* mov */
|
||||
case 1266: /* mov */
|
||||
case 1353: /* cpy */
|
||||
value = 1353; /* --> cpy. */
|
||||
break;
|
||||
case 1258: /* mov */
|
||||
case 1365: /* dup */
|
||||
value = 1365; /* --> dup. */
|
||||
case 2045: /* fmov */
|
||||
case 1269: /* mov */
|
||||
case 1354: /* cpy */
|
||||
value = 1354; /* --> cpy. */
|
||||
break;
|
||||
case 1260: /* mov */
|
||||
case 1257: /* mov */
|
||||
case 1259: /* mov */
|
||||
case 1366: /* dup */
|
||||
value = 1366; /* --> dup. */
|
||||
break;
|
||||
case 2043: /* fmov */
|
||||
case 1262: /* mov */
|
||||
case 1261: /* mov */
|
||||
case 1258: /* mov */
|
||||
case 1367: /* dup */
|
||||
value = 1367; /* --> dup. */
|
||||
break;
|
||||
case 1261: /* mov */
|
||||
case 1368: /* dupm */
|
||||
value = 1368; /* --> dupm. */
|
||||
case 2044: /* fmov */
|
||||
case 1263: /* mov */
|
||||
case 1368: /* dup */
|
||||
value = 1368; /* --> dup. */
|
||||
break;
|
||||
case 2038: /* eon */
|
||||
case 1370: /* eor */
|
||||
value = 1370; /* --> eor. */
|
||||
case 1262: /* mov */
|
||||
case 1369: /* dupm */
|
||||
value = 1369; /* --> dupm. */
|
||||
break;
|
||||
case 1271: /* not */
|
||||
case 1372: /* eor */
|
||||
value = 1372; /* --> eor. */
|
||||
case 2039: /* eon */
|
||||
case 1371: /* eor */
|
||||
value = 1371; /* --> eor. */
|
||||
break;
|
||||
case 1272: /* nots */
|
||||
case 1373: /* eors */
|
||||
value = 1373; /* --> eors. */
|
||||
case 1272: /* not */
|
||||
case 1373: /* eor */
|
||||
value = 1373; /* --> eor. */
|
||||
break;
|
||||
case 2039: /* facle */
|
||||
case 1378: /* facge */
|
||||
value = 1378; /* --> facge. */
|
||||
case 1273: /* nots */
|
||||
case 1374: /* eors */
|
||||
value = 1374; /* --> eors. */
|
||||
break;
|
||||
case 2040: /* faclt */
|
||||
case 1379: /* facgt */
|
||||
value = 1379; /* --> facgt. */
|
||||
case 2040: /* facle */
|
||||
case 1379: /* facge */
|
||||
value = 1379; /* --> facge. */
|
||||
break;
|
||||
case 2041: /* fcmle */
|
||||
case 1392: /* fcmge */
|
||||
value = 1392; /* --> fcmge. */
|
||||
case 2041: /* faclt */
|
||||
case 1380: /* facgt */
|
||||
value = 1380; /* --> facgt. */
|
||||
break;
|
||||
case 2042: /* fcmlt */
|
||||
case 1394: /* fcmgt */
|
||||
value = 1394; /* --> fcmgt. */
|
||||
case 2042: /* fcmle */
|
||||
case 1393: /* fcmge */
|
||||
value = 1393; /* --> fcmge. */
|
||||
break;
|
||||
case 2043: /* fcmlt */
|
||||
case 1395: /* fcmgt */
|
||||
value = 1395; /* --> fcmgt. */
|
||||
break;
|
||||
case 1256: /* fmov */
|
||||
case 1401: /* fcpy */
|
||||
value = 1401; /* --> fcpy. */
|
||||
break;
|
||||
case 1255: /* fmov */
|
||||
case 1400: /* fcpy */
|
||||
value = 1400; /* --> fcpy. */
|
||||
case 1424: /* fdup */
|
||||
value = 1424; /* --> fdup. */
|
||||
break;
|
||||
case 1254: /* fmov */
|
||||
case 1423: /* fdup */
|
||||
value = 1423; /* --> fdup. */
|
||||
break;
|
||||
case 1256: /* mov */
|
||||
case 1754: /* orr */
|
||||
value = 1754; /* --> orr. */
|
||||
break;
|
||||
case 2045: /* orn */
|
||||
case 1257: /* mov */
|
||||
case 1755: /* orr */
|
||||
value = 1755; /* --> orr. */
|
||||
break;
|
||||
case 1259: /* mov */
|
||||
case 1757: /* orr */
|
||||
value = 1757; /* --> orr. */
|
||||
case 2046: /* orn */
|
||||
case 1756: /* orr */
|
||||
value = 1756; /* --> orr. */
|
||||
break;
|
||||
case 1269: /* movs */
|
||||
case 1758: /* orrs */
|
||||
value = 1758; /* --> orrs. */
|
||||
case 1260: /* mov */
|
||||
case 1758: /* orr */
|
||||
value = 1758; /* --> orr. */
|
||||
break;
|
||||
case 1264: /* mov */
|
||||
case 1820: /* sel */
|
||||
value = 1820; /* --> sel. */
|
||||
case 1270: /* movs */
|
||||
case 1759: /* orrs */
|
||||
value = 1759; /* --> orrs. */
|
||||
break;
|
||||
case 1267: /* mov */
|
||||
case 1265: /* mov */
|
||||
case 1821: /* sel */
|
||||
value = 1821; /* --> sel. */
|
||||
break;
|
||||
case 1268: /* mov */
|
||||
case 1822: /* sel */
|
||||
value = 1822; /* --> sel. */
|
||||
break;
|
||||
default: return NULL;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -309,17 +309,17 @@ static const unsigned op_enum_table [] =
|
|||
391,
|
||||
413,
|
||||
415,
|
||||
1259,
|
||||
1264,
|
||||
1257,
|
||||
1256,
|
||||
1260,
|
||||
1267,
|
||||
1269,
|
||||
1265,
|
||||
1258,
|
||||
1257,
|
||||
1261,
|
||||
1268,
|
||||
1270,
|
||||
1266,
|
||||
1272,
|
||||
1271,
|
||||
1267,
|
||||
1273,
|
||||
1272,
|
||||
131,
|
||||
};
|
||||
|
||||
|
|
|
@ -2332,16 +2332,12 @@ static const aarch64_feature_set aarch64_feature_lor =
|
|||
AARCH64_FEATURE (AARCH64_FEATURE_LOR, 0);
|
||||
static const aarch64_feature_set aarch64_feature_rdma =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_RDMA, 0);
|
||||
static const aarch64_feature_set aarch64_feature_ras =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_RAS, 0);
|
||||
static const aarch64_feature_set aarch64_feature_v8_2 =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_V8_2, 0);
|
||||
static const aarch64_feature_set aarch64_feature_fp_f16 =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_F16 | AARCH64_FEATURE_FP, 0);
|
||||
static const aarch64_feature_set aarch64_feature_simd_f16 =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_F16 | AARCH64_FEATURE_SIMD, 0);
|
||||
static const aarch64_feature_set aarch64_feature_stat_profile =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_PROFILE, 0);
|
||||
static const aarch64_feature_set aarch64_feature_sve =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_SVE, 0);
|
||||
static const aarch64_feature_set aarch64_feature_v8_3 =
|
||||
|
@ -2379,8 +2375,6 @@ static const aarch64_feature_set aarch64_feature_sb =
|
|||
AARCH64_FEATURE (AARCH64_FEATURE_SB, 0);
|
||||
static const aarch64_feature_set aarch64_feature_predres =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_PREDRES, 0);
|
||||
static const aarch64_feature_set aarch64_feature_bti =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_BTI, 0);
|
||||
static const aarch64_feature_set aarch64_feature_memtag =
|
||||
AARCH64_FEATURE (AARCH64_FEATURE_V8_5 | AARCH64_FEATURE_MEMTAG, 0);
|
||||
static const aarch64_feature_set aarch64_feature_bfloat16 =
|
||||
|
@ -2423,8 +2417,6 @@ static const aarch64_feature_set aarch64_feature_f64mm_sve =
|
|||
#define RDMA &aarch64_feature_rdma
|
||||
#define FP_F16 &aarch64_feature_fp_f16
|
||||
#define SIMD_F16 &aarch64_feature_simd_f16
|
||||
#define RAS &aarch64_feature_ras
|
||||
#define STAT_PROFILE &aarch64_feature_stat_profile
|
||||
#define ARMV8_2 &aarch64_feature_v8_2
|
||||
#define SVE &aarch64_feature_sve
|
||||
#define ARMV8_3 &aarch64_feature_v8_3
|
||||
|
@ -2443,7 +2435,6 @@ static const aarch64_feature_set aarch64_feature_f64mm_sve =
|
|||
#define FRINTTS &aarch64_feature_frintts
|
||||
#define SB &aarch64_feature_sb
|
||||
#define PREDRES &aarch64_feature_predres
|
||||
#define BTI &aarch64_feature_bti
|
||||
#define MEMTAG &aarch64_feature_memtag
|
||||
#define TME &aarch64_feature_tme
|
||||
#define SVE2 &aarch64_feature_sve2
|
||||
|
@ -2518,8 +2509,6 @@ static const aarch64_feature_set aarch64_feature_f64mm_sve =
|
|||
{ NAME, OPCODE, MASK, CLASS, 0, SB, OPS, QUALS, FLAGS, 0, 0, NULL }
|
||||
#define PREDRES_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
|
||||
{ NAME, OPCODE, MASK, CLASS, 0, PREDRES, OPS, QUALS, FLAGS, 0, 0, NULL }
|
||||
#define BTI_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
|
||||
{ NAME, OPCODE, MASK, CLASS, 0, BTI, OPS, QUALS, FLAGS, 0, 0, NULL }
|
||||
#define MEMTAG_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
|
||||
{ NAME, OPCODE, MASK, CLASS, 0, MEMTAG, OPS, QUALS, FLAGS, 0, 0, NULL }
|
||||
#define _TME_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
|
||||
|
@ -3838,19 +3827,20 @@ struct aarch64_opcode aarch64_opcode_table[] =
|
|||
CORE_INSN ("hint",0xd503201f, 0xfffff01f, ic_system, 0, OP1 (UIMM7), {}, F_HAS_ALIAS),
|
||||
CORE_INSN ("nop", 0xd503201f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("csdb",0xd503229f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
BTI_INSN ("bti",0xd503241f, 0xffffff3f, ic_system, OP1 (BTI_TARGET), {}, F_ALIAS | F_OPD0_OPT | F_DEFAULT (0x0)),
|
||||
CORE_INSN ("bti",0xd503241f, 0xffffff3f, ic_system, 0, OP1 (BTI_TARGET), {}, F_ALIAS | F_OPD0_OPT | F_DEFAULT (0x0)),
|
||||
CORE_INSN ("yield", 0xd503203f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("wfe", 0xd503205f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("wfi", 0xd503207f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("sev", 0xd503209f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("sevl",0xd50320bf, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("xpaclri", 0xd50320ff, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("pacia1716", 0xd503211f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("pacib1716", 0xd503215f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("autia1716", 0xd503219f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("autib1716", 0xd50321df, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
{"esb", 0xd503221f, 0xffffffff, ic_system, 0, RAS, OP0 (), {}, F_ALIAS, 0, 0, NULL},
|
||||
{"psb", 0xd503223f, 0xffffffff, ic_system, 0, STAT_PROFILE, OP1 (BARRIER_PSB), {}, F_ALIAS, 0, 0, NULL},
|
||||
CORE_INSN ("dgh", 0xd50320df, 0xffffffff, ic_system, 0, OP0 (), {}, 0),
|
||||
CORE_INSN ("xpaclri", 0xd50320ff, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("pacia1716", 0xd503211f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("pacib1716", 0xd503215f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("autia1716", 0xd503219f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("autib1716", 0xd50321df, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("esb", 0xd503221f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("psb", 0xd503223f, 0xffffffff, ic_system, 0, OP1 (BARRIER_PSB), {}, F_ALIAS),
|
||||
CORE_INSN ("clrex", 0xd503305f, 0xfffff0ff, ic_system, 0, OP1 (UIMM4), {}, F_OPD0_OPT | F_DEFAULT (0xF)),
|
||||
CORE_INSN ("dsb", 0xd503309f, 0xfffff0ff, ic_system, 0, OP1 (BARRIER), {}, F_HAS_ALIAS),
|
||||
CORE_INSN ("ssbb", 0xd503309f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
|
@ -3877,14 +3867,14 @@ struct aarch64_opcode aarch64_opcode_table[] =
|
|||
CORE_INSN ("msr", 0xd5000000, 0xffe00000, ic_system, 0, OP2 (SYSREG, Rt), QL_SRC_X, F_SYS_WRITE),
|
||||
CORE_INSN ("sysl",0xd5280000, 0xfff80000, ic_system, 0, OP5 (Rt, UIMM3_OP1, CRn, CRm, UIMM3_OP2), QL_SYSL, 0),
|
||||
CORE_INSN ("mrs", 0xd5200000, 0xffe00000, ic_system, 0, OP2 (Rt, SYSREG), QL_DST_X, F_SYS_READ),
|
||||
V8_3_INSN ("paciaz", 0xd503231f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("paciasp", 0xd503233f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("pacibz", 0xd503235f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("pacibsp", 0xd503237f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("autiaz", 0xd503239f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("autiasp", 0xd50323bf, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("autibz", 0xd50323df, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
V8_3_INSN ("autibsp", 0xd50323ff, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("paciaz", 0xd503231f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("paciasp", 0xd503233f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("pacibz", 0xd503235f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("pacibsp", 0xd503237f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("autiaz", 0xd503239f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("autiasp", 0xd50323bf, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("autibz", 0xd50323df, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
CORE_INSN ("autibsp", 0xd50323ff, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
/* Test & branch (immediate). */
|
||||
CORE_INSN ("tbz", 0x36000000, 0x7f000000, testbranch, 0, OP3 (Rt, BIT_NUM, ADDR_PCREL14), QL_PCREL_14, 0),
|
||||
CORE_INSN ("tbnz",0x37000000, 0x7f000000, testbranch, 0, OP3 (Rt, BIT_NUM, ADDR_PCREL14), QL_PCREL_14, 0),
|
||||
|
@ -5069,9 +5059,6 @@ struct aarch64_opcode aarch64_opcode_table[] =
|
|||
V8_4_INSN ("stlur", 0xd9000000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
|
||||
V8_4_INSN ("ldapur", 0xd9400000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
|
||||
|
||||
/* V8.6 instructions */
|
||||
V8_6_INSN("dgh", 0xd50320df, 0xffffffff, aarch64_misc, OP0 (), {}, 0),
|
||||
|
||||
/* Matrix Multiply instructions. */
|
||||
INT8MATMUL_SVE_INSNC ("smmla", 0x45009800, 0xffe0fc00, sve_misc, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SBB, 0, C_SCAN_MOVPRFX, 0),
|
||||
INT8MATMUL_SVE_INSNC ("ummla", 0x45c09800, 0xffe0fc00, sve_misc, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SBB, 0, C_SCAN_MOVPRFX, 0),
|
||||
|
|
Loading…
Reference in New Issue