diff options
author | Ezra Sitorus <ezra.sitorus@arm.com> | 2025-06-04 20:42:53 +0100 |
---|---|---|
committer | Alice Carlotti <alice.carlotti@arm.com> | 2025-06-19 14:30:34 +0100 |
commit | a1f853de0ffdd4b9141479033f96cf56ca306b1b (patch) | |
tree | 3c77995cb1bcd8b23f0a6734e3600ea7b870edc0 /include | |
parent | 78155cbb35f4c7806293d3bc04ccc802b66eadca (diff) | |
download | binutils-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.h | 5 |
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. */ |