OSDN Git Service

Temporary disable new round implementation on x86/x86_64
authorAart Bik <ajcbik@google.com>
Thu, 4 Aug 2016 21:28:21 +0000 (14:28 -0700)
committerAart Bik <ajcbik@google.com>
Thu, 4 Aug 2016 21:28:21 +0000 (14:28 -0700)
Rationale:
FUGU is not happy

Test: 580-checker-round

BUG=26327751

Change-Id: If0ddea47a88e14b86d37080b8a18a6f8defcc8e6

compiler/optimizing/intrinsics_x86.cc
compiler/optimizing/intrinsics_x86_64.cc

index 83cc278..725c55c 100644 (file)
@@ -753,6 +753,11 @@ void IntrinsicCodeGeneratorX86::VisitMathRint(HInvoke* invoke) {
 }
 
 void IntrinsicLocationsBuilderX86::VisitMathRoundFloat(HInvoke* invoke) {
+  // See intrinsics.h.
+  if (!kRoundIsPlusPointFive) {
+    return;
+  }
+
   // Do we have instruction support?
   if (codegen_->GetInstructionSetFeatures().HasSSE4_1()) {
     HInvokeStaticOrDirect* static_or_direct = invoke->AsInvokeStaticOrDirect();
index a439a53..b1ed243 100644 (file)
@@ -598,6 +598,10 @@ static void CreateSSE41FPToIntLocations(ArenaAllocator* arena,
 }
 
 void IntrinsicLocationsBuilderX86_64::VisitMathRoundFloat(HInvoke* invoke) {
+  // See intrinsics.h.
+  if (!kRoundIsPlusPointFive) {
+    return;
+  }
   CreateSSE41FPToIntLocations(arena_, invoke, codegen_);
 }
 
@@ -642,6 +646,10 @@ void IntrinsicCodeGeneratorX86_64::VisitMathRoundFloat(HInvoke* invoke) {
 }
 
 void IntrinsicLocationsBuilderX86_64::VisitMathRoundDouble(HInvoke* invoke) {
+  // See intrinsics.h.
+  if (!kRoundIsPlusPointFive) {
+    return;
+  }
   CreateSSE41FPToIntLocations(arena_, invoke, codegen_);
 }