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+).
---
gas/testsuite/gas/aarch64/clrbhb-1.d | 9 +++++++++
gas/testsuite/gas/aarch64/clrbhb-1.s | 2 ++
gas/testsuite/gas/aarch64/system.d | 4 ++--
opcodes/aarch64-tbl.h | 4 ++++
4 files changed, 17 insertions(+), 2 deletions(-)
create mode 100644 gas/testsuite/gas/aarch64/clrbhb-1.d
create mode 100644 gas/testsuite/gas/aarch64/clrbhb-1.s
new file mode 100644
@@ -0,0 +1,9 @@
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+ 0: d50322df clrbhb
+
new file mode 100644
@@ -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)
@@ -6101,6 +6101,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},
};