target/arm: Add predicate registers for SVE

Backports commit 3c7d30866fd1f56e5945726221410e0d8d535033 from qemu
This commit is contained in:
Richard Henderson 2018-03-07 11:34:52 -05:00 committed by Lioncash
parent 834e3a1d04
commit a47fb718bc
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -193,6 +193,13 @@ typedef struct ARMVectorReg {
uint64_t QEMU_ALIGNED(16, d[2 * ARM_MAX_VQ]);
} ARMVectorReg;
/* In AArch32 mode, predicate registers do not exist at all. */
#ifdef TARGET_AARCH64
typedef struct ARMPredicateReg {
uint64_t QEMU_ALIGNED(16, p[2 * ARM_MAX_VQ / 8]);
} ARMPredicateReg;
#endif
typedef struct CPUARMState {
/* Regs for current mode. */
uint32_t regs[16];
@ -519,6 +526,11 @@ typedef struct CPUARMState {
struct {
ARMVectorReg zregs[32];
#ifdef TARGET_AARCH64
/* Store FFR as pregs[16] to make it easier to treat as any other. */
ARMPredicateReg pregs[17];
#endif
uint32_t xregs[16];
/* We store these fpcsr fields separately for convenience. */
int vec_len;