diff options
author | Victor Do Nascimento <victor.donascimento@arm.com> | 2024-01-05 17:27:04 +0000 |
---|---|---|
committer | Victor Do Nascimento <victor.donascimento@arm.com> | 2024-01-15 13:11:48 +0000 |
commit | c35460087723932ba7300072099bd0d65d9ce6d2 (patch) | |
tree | 63de650feaf214b78cfe9f4be4425d7b79729ac6 /opcodes/aarch64-dis.h | |
parent | 2f8890efc521d0477728ade637cb1d03a4aa799d (diff) | |
download | fsf-binutils-gdb-c35460087723932ba7300072099bd0d65d9ce6d2.zip fsf-binutils-gdb-c35460087723932ba7300072099bd0d65d9ce6d2.tar.gz fsf-binutils-gdb-c35460087723932ba7300072099bd0d65d9ce6d2.tar.bz2 |
aarch64: rcpc3: Define address operand fields and inserter/extractors
Beyond the need to encode any registers involved in data transfer and
the address base register for load/stores, it is necessary to specify
the data register addressing mode and whether the address register is
to be pre/post-indexed, whereby loads may be post-indexed and stores
pre-indexed with write-back.
The use of a single bit to specify both the indexing mode and indexing
value requires a novel function be written to accommodate this for
address operand insertion in assembly and another for extraction in
disassembly, along with the definition of two insn fields for use with
these instructions.
This therefore defines the following functions:
- aarch64_ins_rcpc3_addr_opt_offset
- aarch64_ins_rcpc3_addr_offset
- aarch64_ext_rcpc3_addr_opt_offset
- aarch64_ext_rcpc3_addr_offset
It extends the `do_special_{encoding|decoding}' functions and defines
two rcpc3 instruction fields:
- FLD_opc2
- FLD_rcpc3_size
Diffstat (limited to 'opcodes/aarch64-dis.h')
-rw-r--r-- | opcodes/aarch64-dis.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/opcodes/aarch64-dis.h b/opcodes/aarch64-dis.h index 48bebfe..6ed6776 100644 --- a/opcodes/aarch64-dis.h +++ b/opcodes/aarch64-dis.h @@ -140,6 +140,9 @@ AARCH64_DECL_OPD_EXTRACTOR (ext_x0_to_x30); AARCH64_DECL_OPD_EXTRACTOR (ext_simple_index); AARCH64_DECL_OPD_EXTRACTOR (ext_plain_shrimm); AARCH64_DECL_OPD_EXTRACTOR (ext_sve_reglist_zt); +AARCH64_DECL_OPD_EXTRACTOR (ext_rcpc3_addr_opt_offset); +AARCH64_DECL_OPD_EXTRACTOR (ext_rcpc3_addr_offset); + #undef AARCH64_DECL_OPD_EXTRACTOR |