Revision: 22803
Author:   [email protected]
Date:     Mon Aug  4 08:47:15 2014 UTC
Log:      Ensure LModByPowerOf2I only gets environment when it deopts.

[email protected]
TEST=mozilla (with new --always-opt)

Review URL: https://codereview.chromium.org/423093009
http://code.google.com/p/v8/source/detail?r=22803

Modified:
 /branches/bleeding_edge/src/arm/lithium-arm.cc
 /branches/bleeding_edge/src/arm64/lithium-arm64.cc
 /branches/bleeding_edge/src/ia32/lithium-ia32.cc
 /branches/bleeding_edge/src/lithium-codegen.cc
 /branches/bleeding_edge/src/mips/lithium-mips.cc
 /branches/bleeding_edge/src/mips64/lithium-mips64.cc
 /branches/bleeding_edge/src/x64/lithium-x64.cc
 /branches/bleeding_edge/src/x87/lithium-x87.cc

=======================================
--- /branches/bleeding_edge/src/arm/lithium-arm.cc Wed Jul 30 13:54:45 2014 UTC +++ /branches/bleeding_edge/src/arm/lithium-arm.cc Mon Aug 4 08:47:15 2014 UTC
@@ -1416,7 +1416,8 @@
   int32_t divisor = instr->right()->GetInteger32Constant();
   LInstruction* result = DefineSameAsFirst(new(zone()) LModByPowerOf2I(
           dividend, divisor));
-  if (instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
+  if (instr->CheckFlag(HValue::kLeftCanBeNegative) &&
+      instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
     result = AssignEnvironment(result);
   }
   return result;
=======================================
--- /branches/bleeding_edge/src/arm64/lithium-arm64.cc Wed Jul 30 13:54:45 2014 UTC +++ /branches/bleeding_edge/src/arm64/lithium-arm64.cc Mon Aug 4 08:47:15 2014 UTC
@@ -1854,7 +1854,8 @@
   int32_t divisor = instr->right()->GetInteger32Constant();
   LInstruction* result = DefineSameAsFirst(new(zone()) LModByPowerOf2I(
           dividend, divisor));
-  if (instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
+  if (instr->CheckFlag(HValue::kLeftCanBeNegative) &&
+      instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
     result = AssignEnvironment(result);
   }
   return result;
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-ia32.cc Wed Jul 30 13:54:45 2014 UTC +++ /branches/bleeding_edge/src/ia32/lithium-ia32.cc Mon Aug 4 08:47:15 2014 UTC
@@ -1464,7 +1464,8 @@
   int32_t divisor = instr->right()->GetInteger32Constant();
   LInstruction* result = DefineSameAsFirst(new(zone()) LModByPowerOf2I(
           dividend, divisor));
-  if (instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
+  if (instr->CheckFlag(HValue::kLeftCanBeNegative) &&
+      instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
     result = AssignEnvironment(result);
   }
   return result;
=======================================
--- /branches/bleeding_edge/src/lithium-codegen.cc Wed Jul 9 11:08:26 2014 UTC +++ /branches/bleeding_edge/src/lithium-codegen.cc Mon Aug 4 08:47:15 2014 UTC
@@ -116,12 +116,12 @@

     HInstruction* hinstr = HInstruction::cast(hval);
     if (!hinstr->CanDeoptimize() && instr->HasEnvironment()) {
-      V8_Fatal(__FILE__, __LINE__, "CanDeoptimize is wrong for %s (%s)\n",
+      V8_Fatal(__FILE__, __LINE__, "CanDeoptimize is wrong for %s (%s)",
                hinstr->Mnemonic(), instr->Mnemonic());
     }

if (instr->HasEnvironment() && !instr->environment()->has_been_used()) {
-      V8_Fatal(__FILE__, __LINE__, "unused environment for %s (%s)\n",
+      V8_Fatal(__FILE__, __LINE__, "unused environment for %s (%s)",
                hinstr->Mnemonic(), instr->Mnemonic());
     }
   }
=======================================
--- /branches/bleeding_edge/src/mips/lithium-mips.cc Wed Jul 30 13:54:45 2014 UTC +++ /branches/bleeding_edge/src/mips/lithium-mips.cc Mon Aug 4 08:47:15 2014 UTC
@@ -1419,7 +1419,8 @@
   int32_t divisor = instr->right()->GetInteger32Constant();
   LInstruction* result = DefineSameAsFirst(new(zone()) LModByPowerOf2I(
           dividend, divisor));
-  if (instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
+  if (instr->CheckFlag(HValue::kLeftCanBeNegative) &&
+      instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
     result = AssignEnvironment(result);
   }
   return result;
=======================================
--- /branches/bleeding_edge/src/mips64/lithium-mips64.cc Thu Jul 31 14:56:58 2014 UTC +++ /branches/bleeding_edge/src/mips64/lithium-mips64.cc Mon Aug 4 08:47:15 2014 UTC
@@ -1421,7 +1421,8 @@
   int32_t divisor = instr->right()->GetInteger32Constant();
   LInstruction* result = DefineSameAsFirst(new(zone()) LModByPowerOf2I(
           dividend, divisor));
-  if (instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
+  if (instr->CheckFlag(HValue::kLeftCanBeNegative) &&
+      instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
     result = AssignEnvironment(result);
   }
   return result;
=======================================
--- /branches/bleeding_edge/src/x64/lithium-x64.cc Wed Jul 30 13:54:45 2014 UTC +++ /branches/bleeding_edge/src/x64/lithium-x64.cc Mon Aug 4 08:47:15 2014 UTC
@@ -1444,7 +1444,8 @@
   int32_t divisor = instr->right()->GetInteger32Constant();
   LInstruction* result = DefineSameAsFirst(new(zone()) LModByPowerOf2I(
           dividend, divisor));
-  if (instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
+  if (instr->CheckFlag(HValue::kLeftCanBeNegative) &&
+      instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
     result = AssignEnvironment(result);
   }
   return result;
=======================================
--- /branches/bleeding_edge/src/x87/lithium-x87.cc Fri Aug 1 07:42:06 2014 UTC +++ /branches/bleeding_edge/src/x87/lithium-x87.cc Mon Aug 4 08:47:15 2014 UTC
@@ -1450,7 +1450,8 @@
   int32_t divisor = instr->right()->GetInteger32Constant();
   LInstruction* result = DefineSameAsFirst(new(zone()) LModByPowerOf2I(
           dividend, divisor));
-  if (instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
+  if (instr->CheckFlag(HValue::kLeftCanBeNegative) &&
+      instr->CheckFlag(HValue::kBailoutOnMinusZero)) {
     result = AssignEnvironment(result);
   }
   return result;

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to