mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:54:41 +08:00
aarch64: Add FEAT_ECBHB support
This patch add support for FEAT_ECBHB "Exploitative control using branch history information" adding the "clrbhb" instruction. AFAIU the same alias was originally added as "clearbhb" before the architecture was finalized (Mandatory v8.9-a/v9.4-a; Optional v8.0-a+/v9.0-a+).
This commit is contained in:
parent
88b5a8ae13
commit
db168da2e0
9
gas/testsuite/gas/aarch64/clrbhb-1.d
Normal file
9
gas/testsuite/gas/aarch64/clrbhb-1.d
Normal file
@ -0,0 +1,9 @@
|
||||
#objdump: -dr
|
||||
|
||||
.*: file format .*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
0+ <.*>:
|
||||
0: d50322df clrbhb
|
||||
|
2
gas/testsuite/gas/aarch64/clrbhb-1.s
Normal file
2
gas/testsuite/gas/aarch64/clrbhb-1.s
Normal file
@ -0,0 +1,2 @@
|
||||
clrbhb
|
||||
|
@ -14,7 +14,7 @@ Disassembly of section \.text:
|
||||
.*: d503207f wfi
|
||||
.*: d503209f sev
|
||||
.*: d50320bf sevl
|
||||
.*: d50322df clearbhb
|
||||
.*: d50322df clrbhb
|
||||
.*: d503201f nop
|
||||
.*: d503203f yield
|
||||
.*: d503205f wfe
|
||||
@ -37,7 +37,7 @@ Disassembly of section \.text:
|
||||
.*: d503227f (hint #0x13|gcsb dsync)
|
||||
.*: d503229f (hint #0x14|csdb)
|
||||
.*: d50322bf hint #0x15
|
||||
.*: d50322df (hint #0x16|clearbhb)
|
||||
.*: d50322df (hint #0x16|clrbhb)
|
||||
.*: d50322ff hint #0x17
|
||||
.*: d503231f (hint #0x18|paciaz)
|
||||
.*: d503233f (hint #0x19|paciasp)
|
||||
|
@ -426,6 +426,7 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
|
||||
case 1200: /* movz */
|
||||
value = 1200; /* --> movz. */
|
||||
break;
|
||||
case 3193: /* clrbhb */
|
||||
case 1276: /* autibsp */
|
||||
case 1275: /* autibz */
|
||||
case 1274: /* autiasp */
|
||||
|
@ -31321,7 +31321,7 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode)
|
||||
case 1136: value = 1185; break; /* lduminl --> stuminl. */
|
||||
case 1198: value = 1199; break; /* movn --> mov. */
|
||||
case 1200: value = 1201; break; /* movz --> mov. */
|
||||
case 1215: value = 1276; break; /* hint --> autibsp. */
|
||||
case 1215: value = 3193; break; /* hint --> clrbhb. */
|
||||
case 1235: value = 1239; break; /* dsb --> pssbb. */
|
||||
case 1236: value = 1236; break; /* dsb --> dsb. */
|
||||
case 1254: value = 1264; break; /* sys --> cosp. */
|
||||
@ -31481,6 +31481,7 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
|
||||
case 1185: value = 1136; break; /* stuminl --> lduminl. */
|
||||
case 1199: value = 1198; break; /* mov --> movn. */
|
||||
case 1201: value = 1200; break; /* mov --> movz. */
|
||||
case 3193: value = 1276; break; /* clrbhb --> autibsp. */
|
||||
case 1276: value = 1275; break; /* autibsp --> autibz. */
|
||||
case 1275: value = 1274; break; /* autibz --> autiasp. */
|
||||
case 1274: value = 1273; break; /* autiasp --> autiaz. */
|
||||
|
@ -6113,6 +6113,10 @@ const struct aarch64_opcode aarch64_opcode_table[] =
|
||||
CSSC_INSN ("smin", 0x1ac06800, 0x7fe0fc00, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
|
||||
CSSC_INSN ("umin", 0x1ac06c00, 0x7fe0fc00, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
|
||||
|
||||
/* FEAT_CLRBHB part of the hint space and available without special
|
||||
command-line flags. */
|
||||
CORE_INSN ("clrbhb", 0xd50322df, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
|
||||
|
||||
{0, 0, 0, 0, 0, 0, {}, {}, 0, 0, 0, NULL},
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user