Skip to contentSkip to conversation

Incorrect arm vfp condition codes

PATCH New Paul Brook 1 participant 1 message Apr 23, 2005

lore
Share & tools
lore

Paul Brook

author
#0 lore raw

PATCH 1/1 Incorrect arm vfp condition codes

The arm vfp fcmp and fcmpe instructions set the condition code incorrectly. Patch below fixes this.

Paul

Index: target-arm/op_helper.c
===================================================================
RCS file: /cvsroot/qemu/qemu/target-arm/op_helper.c,v retrieving revision 1.2

op_helper.c +0 -0
diff -u -p -r1.2 op_helper.c
@@ -67,7 +67,7 @@ void do_vfp_cmp##p(void)                
 {                                         \
     uint32_t flags;                       \
     switch(float ## size ## _compare_quiet(FT0##p, FT1##p, 

&env->vfp.fp_status)) {\
- case 0: flags = 0xc; break;\

+    case 0: flags = 0x6; break;\
     case -1: flags = 0x8; break;\
     case 1: flags = 0x2; break;\
     default: case 2: flags = 0x3; break;\
@@ -80,7 +80,7 @@ void do_vfp_cmpe##p(void)               
 {                                           \
     uint32_t flags;                       \
     switch(float ## size ## _compare(FT0##p, FT1##p, &env->vfp.fp_status)) {\
-    case 0: flags = 0xc; break;\
+    case 0: flags = 0x6; break;\
     case -1: flags = 0x8; break;\
     case 1: flags = 0x2; break;\
     default: case 2: flags = 0x3; break;\