target-arm: When setting FPSCR.QC, don't clear other FPSCR bits
authorMatt Craighead <mjcraighead@gmail.com>
Thu, 10 May 2012 12:56:08 +0000 (12:56 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 10 May 2012 12:56:08 +0000 (12:56 +0000)
This patch fixes a bug affecting a variety of Neon instructions, such as
VQADD.

Signed-off-by: Matt Craighead <mjcraighead@gmail.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target-arm/neon_helper.c

index 1e02d61..e0b9dbf 100644 (file)
@@ -16,7 +16,7 @@
 #define SIGNBIT (uint32_t)0x80000000
 #define SIGNBIT64 ((uint64_t)1 << 63)
 
-#define SET_QC() env->vfp.xregs[ARM_VFP_FPSCR] = CPSR_Q
+#define SET_QC() env->vfp.xregs[ARM_VFP_FPSCR] |= CPSR_Q
 
 #define NEON_TYPE1(name, type) \
 typedef struct \