OSDN Git Service

Add scheduling barrier at the end of IT blocks for FP comparisons.
authorBen Cheng <bccheng@android.com>
Sat, 12 Feb 2011 01:01:08 +0000 (17:01 -0800)
committerBen Cheng <bccheng@android.com>
Sat, 12 Feb 2011 01:01:08 +0000 (17:01 -0800)
Bug: 3448446
Change-Id: I98e2bbc4886443ba3c27c2963d7540fcee5790bb

vm/compiler/codegen/arm/FP/Thumb2VFP.c

index 064183b..61698c2 100644 (file)
@@ -251,11 +251,16 @@ static bool genCmpFP(CompilationUnit *cUnit, MIR *mir, RegLocation rlDest,
     }
     assert(!FPREG(rlResult.lowReg));
     newLIR0(cUnit, kThumb2Fmstat);
+
     genIT(cUnit, (defaultResult == -1) ? kArmCondGt : kArmCondMi, "");
     newLIR2(cUnit, kThumb2MovImmShift, rlResult.lowReg,
             modifiedImmediate(-defaultResult)); // Must not alter ccodes
+    genBarrier(cUnit);
+
     genIT(cUnit, kArmCondEq, "");
     loadConstant(cUnit, rlResult.lowReg, 0);
+    genBarrier(cUnit);
+
     storeValue(cUnit, rlDest, rlResult);
     return false;
 }