| 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);
|
| };
|
|
|