mirror of
https://github.com/yuzu-emu/unicorn
synced 2024-11-25 11:28:57 +00:00
target/arm: Add predicate registers for SVE
Backports commit 3c7d30866fd1f56e5945726221410e0d8d535033 from qemu
This commit is contained in:
parent
834e3a1d04
commit
a47fb718bc
1 changed files with 12 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue