summaryrefslogtreecommitdiffstats
path: root/target/arm/cpu.h
diff options
context:
space:
mode:
authorRichard Henderson2019-02-15 10:56:41 +0100
committerPeter Maydell2019-02-15 10:56:41 +0100
commita4d5846245c5e029e5aa3945a9bda1de1c3fedbf (patch)
tree0c2f1bfef43d253eec7def5ddea82c7d26a515a1 /target/arm/cpu.h
parenttarget/arm: Fix set of bits kept in xregs[ARM_VFP_FPSCR] (diff)
downloadqemu-a4d5846245c5e029e5aa3945a9bda1de1c3fedbf.tar.gz
qemu-a4d5846245c5e029e5aa3945a9bda1de1c3fedbf.tar.xz
qemu-a4d5846245c5e029e5aa3945a9bda1de1c3fedbf.zip
target/arm: Split out FPSCR.QC to a vector field
Change the representation of this field such that it is easy to set from vector code. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20190209033847.9014-11-richard.henderson@linaro.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/cpu.h')
-rw-r--r--target/arm/cpu.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index bfc05c796a..84ae6849c2 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cpu.h
@@ -577,11 +577,13 @@ typedef struct CPUARMState {
ARMPredicateReg preg_tmp;
#endif
- uint32_t xregs[16];
/* We store these fpcsr fields separately for convenience. */
+ uint32_t qc[4] QEMU_ALIGNED(16);
int vec_len;
int vec_stride;
+ uint32_t xregs[16];
+
/* Scratch space for aa32 neon expansion. */
uint32_t scratch[8];
@@ -1427,6 +1429,7 @@ void vfp_set_fpscr(CPUARMState *env, uint32_t val);
#define FPCR_FZ16 (1 << 19) /* ARMv8.2+, FP16 flush-to-zero */
#define FPCR_FZ (1 << 24) /* Flush-to-zero enable bit */
#define FPCR_DN (1 << 25) /* Default NaN enable bit */
+#define FPCR_QC (1 << 27) /* Cumulative saturation bit */
static inline uint32_t vfp_get_fpsr(CPUARMState *env)
{