forked from Imagelibrary/binutils-gdb
aarch64: Limit Rt register number for LS64 load/store instructions
Atomic 64-byte load/store instructions limit Rt register number to
values matching below condition (register <Xt> number must be even
and <= 22):
if Rt<4:3> == '11' || Rt<0> == '1' then UNDEFINED;
This patch adds check if Rt fulfills above requirement.
For more details regarding atomic 64-byte load/store instruction for
Armv8.7 please refer to Arm A64 Instruction set documentation for
Armv8-A architecture profile, see document page 157 for load
instruction, and pages 414-418 for store instructions of [0].
[0]: https://developer.arm.com/docs/ddi0596/i
This commit is contained in:
@@ -201,6 +201,7 @@ enum aarch64_opnd
|
||||
AARCH64_OPND_Rm, /* Integer register as source. */
|
||||
AARCH64_OPND_Rt, /* Integer register used in ld/st instructions. */
|
||||
AARCH64_OPND_Rt2, /* Integer register used in ld/st pair instructions. */
|
||||
AARCH64_OPND_Rt_LS64, /* Integer register used in LS64 instructions. */
|
||||
AARCH64_OPND_Rt_SP, /* Integer Rt or SP used in STG instructions. */
|
||||
AARCH64_OPND_Rs, /* Integer register used in ld/st exclusive. */
|
||||
AARCH64_OPND_Ra, /* Integer register used in ddp_3src instructions. */
|
||||
|
||||
Reference in New Issue
Block a user