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.