Index: src/ia32/lithium-ia32.h |
diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h |
index 6b0f9d0a74cf82752a2bdebec82394be609f2971..de4ede95761e1a37238f5f25e992c2a5c57bb020 100644 |
--- a/src/ia32/lithium-ia32.h |
+++ b/src/ia32/lithium-ia32.h |
@@ -263,10 +263,9 @@ class LInstruction: public ZoneObject { |
bool ClobbersRegisters() const { return is_call_; } |
virtual bool ClobbersDoubleRegisters() const { |
return is_call_ || |
- (!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; |
@@ -1511,11 +1510,6 @@ class LLoadNamedField: 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") |
@@ -1598,11 +1592,6 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> { |
return hydrogen()->is_external(); |
} |
- virtual bool ClobbersDoubleRegisters() const { |
- return !CpuFeatures::IsSupported(SSE2) && |
- !IsDoubleOrFloatElementsKind(hydrogen()->elements_kind()); |
- } |
- |
DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") |
DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) |
@@ -2189,8 +2178,6 @@ class LNumberUntagD: public LTemplateInstruction<1, 1, 1> { |
LOperand* value() { return inputs_[0]; } |
LOperand* temp() { return temps_[0]; } |
- virtual bool ClobbersDoubleRegisters() const { return false; } |
- |
DECLARE_CONCRETE_INSTRUCTION(NumberUntagD, "double-untag") |
DECLARE_HYDROGEN_ACCESSOR(Change); |
}; |