Allow use of the arm64 unnamed register form

On arm64 all registers have a name that encodes op0, op1, CRn, CRm, and
op2 that are used to encode the register in the instruction. As some
registers we need to access may not be supportedby older compilers, or
are only supported when specific extensions are enabled support this
alternative form.

Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Andrew Turner 2022-06-29 17:34:41 +01:00
parent 48a55bbfe9
commit 66ba742d2e

View File

@ -57,6 +57,12 @@
#define MRS_REG(reg) \
__MRS_REG(reg##_op0, reg##_op1, reg##_CRn, reg##_CRm, reg##_op2)
#define __MRS_REG_ALT_NAME(op0, op1, crn, crm, op2) \
S##op0##_##op1##_C##crn##_C##crm##_##op2
#define _MRS_REG_ALT_NAME(op0, op1, crn, crm, op2) \
__MRS_REG_ALT_NAME(op0, op1, crn, crm, op2)
#define MRS_REG_ALT_NAME(reg) \
_MRS_REG_ALT_NAME(reg##_op0, reg##_op1, reg##_CRn, reg##_CRm, reg##_op2)
#define READ_SPECIALREG(reg) \