aarch64: Apply narrowing of allowed immediate values for SYSP
authorVictor Do Nascimento <victor.donascimento@arm.com>
Mon, 20 Nov 2023 15:32:15 +0000 (15:32 +0000)
committerVictor Do Nascimento <victor.donascimento@arm.com>
Tue, 9 Jan 2024 10:16:40 +0000 (10:16 +0000)
commit5517af829887ba3b19a3f372b6b60e8098bdfa29
tree920b57119a6b6b1662da63f8916550a5ba35adfe
parent3521a28f10900ed893f53fcceec2f66c335cb154
aarch64: Apply narrowing of allowed immediate values for SYSP

While CRn and CRm fields in the SYSP instruction are 4-bit wide and
are thus able to accommodate values in the range 0-15, the
specifications for the SYSP instructions limit their ranges to 8-9 for
CRm and 0-7 in the case of CRn.

This led to the need to signal in some way to the operand parser that
a given operand is under special restrictions regarding its use.  This
is done via the new `F_OPD_NARROW' flag, indicating a narrowing in the
range of operand values for fields in the instruction tagged with the
flag.

The flag is then used in `parse_operands' when the instruction is
assembled, but needs not be taken into consideration during
disassembly.
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/illegal-sys128.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sysp.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sysp.s [new file with mode: 0644]
include/opcode/aarch64.h
opcodes/aarch64-tbl.h