aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorEzra Sitorus <ezra.sitorus@arm.com>2025-06-04 20:42:53 +0100
committerAlice Carlotti <alice.carlotti@arm.com>2025-06-19 14:30:34 +0100
commita1f853de0ffdd4b9141479033f96cf56ca306b1b (patch)
tree3c77995cb1bcd8b23f0a6734e3600ea7b870edc0 /include
parent78155cbb35f4c7806293d3bc04ccc802b66eadca (diff)
downloadbinutils-a1f853de0ffdd4b9141479033f96cf56ca306b1b.zip
binutils-a1f853de0ffdd4b9141479033f96cf56ca306b1b.tar.gz
binutils-a1f853de0ffdd4b9141479033f96cf56ca306b1b.tar.bz2
aarch64: Support for FEAT_CMPBR
FEAT_CMPBR - Compare and branch instructions. This patch adds these instructions: - CB<CC> (register) - CB<CC> (immediate) - CBH<CC> - CBB<CC> where CC is one of the following: - EQ - NE - GT - GE - LT - LE - HI - HS - LO - LS
Diffstat (limited to 'include')
-rw-r--r--include/opcode/aarch64.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 1c7d6f1..a2cc97a 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -135,6 +135,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_ID_PFR2,
/* SSBS mechanism enabled. */
AARCH64_FEATURE_SSBS,
+ /* Compare and branch instructions. */
+ AARCH64_FEATURE_CMPBR,
/* Memory Tagging Extension. */
AARCH64_FEATURE_MEMTAG,
/* Outer Cacheable Cache Maintenance Operation. */
@@ -690,6 +692,8 @@ enum aarch64_opnd
AARCH64_OPND_WIDTH, /* Immediate #<width> in e.g. BFI. */
AARCH64_OPND_IMM, /* Immediate. */
AARCH64_OPND_IMM_2, /* Immediate. */
+ AARCH64_OPND_IMMP1_2, /* Immediate plus 1. */
+ AARCH64_OPND_IMMS1_2, /* Immediate minus 1. */
AARCH64_OPND_UIMM3_OP1,/* Unsigned 3-bit immediate in the op1 field. */
AARCH64_OPND_UIMM3_OP2,/* Unsigned 3-bit immediate in the op2 field. */
AARCH64_OPND_UIMM4, /* Unsigned 4-bit immediate in the CRm field. */
@@ -717,6 +721,7 @@ enum aarch64_opnd
AARCH64_OPND_COND1, /* Same as the above, but excluding AL and NV. */
AARCH64_OPND_ADDR_ADRP, /* Memory address for ADRP */
+ AARCH64_OPND_ADDR_PCREL9, /* 9-bit PC-relative address for e.g. CB<cc>. */
AARCH64_OPND_ADDR_PCREL14, /* 14-bit PC-relative address for e.g. TBZ. */
AARCH64_OPND_ADDR_PCREL19, /* 19-bit PC-relative address for e.g. LDR. */
AARCH64_OPND_ADDR_PCREL21, /* 21-bit PC-relative address for e.g. ADR. */