Index: src/ia32/lithium-ia32.h |
diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h |
index f35c7776b21d64eb6135f7cff1a498bd0b56a2b5..a6a25261ea446c6457a16bea6521f0e468e80e07 100644 |
--- a/src/ia32/lithium-ia32.h |
+++ b/src/ia32/lithium-ia32.h |
@@ -277,10 +277,9 @@ class LInstruction : public ZoneObject { |
bool ClobbersRegisters() const { return IsCall(); } |
virtual bool ClobbersDoubleRegisters() const { |
return IsCall() || |
- (!CpuFeatures::IsSupported(SSE2) && |
- // We only have rudimentary X87Stack tracking, thus in general |
- // cannot handle deoptimization nor phi-nodes. |
- (HasEnvironment() || IsControl())); |
+ // We only have rudimentary X87Stack tracking, thus in general |
+ // cannot handle phi-nodes. |
+ (!CpuFeatures::IsSafeForSnapshot(SSE2) && IsControl()); |
} |
virtual bool HasResult() const = 0; |
@@ -1542,11 +1541,6 @@ class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
inputs_[0] = object; |
} |
- virtual bool ClobbersDoubleRegisters() const { |
- return !CpuFeatures::IsSupported(SSE2) && |
- !hydrogen()->representation().IsDouble(); |
- } |
- |
LOperand* object() { return inputs_[0]; } |
DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") |
@@ -2206,8 +2200,6 @@ class LNumberUntagD V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
LOperand* value() { return inputs_[0]; } |
LOperand* temp() { return temps_[0]; } |
- virtual bool ClobbersDoubleRegisters() const V8_OVERRIDE { return false; } |
- |
DECLARE_CONCRETE_INSTRUCTION(NumberUntagD, "double-untag") |
DECLARE_HYDROGEN_ACCESSOR(Change); |
}; |