| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index 3897f884500146c025e595c7451a46f262d8e7b9..a6efdab56b49f041ca9c53cbf49dead9c2f7a65b 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -2107,9 +2107,6 @@ RUNTIME_FUNCTION(ElementsTransitionAndStoreIC_Miss) {
|
|
|
| BinaryOpIC::State::State(Isolate* isolate, ExtraICState extra_ic_state)
|
| : isolate_(isolate) {
|
| - // We don't deserialize the SSE2 Field, since this is only used to be able
|
| - // to include SSE2 as well as non-SSE2 versions in the snapshot. For code
|
| - // generation we always want it to reflect the current state.
|
| op_ = static_cast<Token::Value>(
|
| FIRST_TOKEN + OpField::decode(extra_ic_state));
|
| mode_ = OverwriteModeField::decode(extra_ic_state);
|
| @@ -2129,10 +2126,7 @@ BinaryOpIC::State::State(Isolate* isolate, ExtraICState extra_ic_state)
|
|
|
|
|
| ExtraICState BinaryOpIC::State::GetExtraICState() const {
|
| - bool sse2 = (Max(result_kind_, Max(left_kind_, right_kind_)) > SMI &&
|
| - CpuFeatures::IsSafeForSnapshot(isolate(), SSE2));
|
| ExtraICState extra_ic_state =
|
| - SSE2Field::encode(sse2) |
|
| OpField::encode(op_ - FIRST_TOKEN) |
|
| OverwriteModeField::encode(mode_) |
|
| LeftKindField::encode(left_kind_) |
|
| @@ -2453,14 +2447,9 @@ void BinaryOpIC::State::Update(Handle<Object> left,
|
| // Tagged operations can lead to non-truncating HChanges
|
| if (left->IsUndefined() || left->IsBoolean()) {
|
| left_kind_ = GENERIC;
|
| - } else if (right->IsUndefined() || right->IsBoolean()) {
|
| - right_kind_ = GENERIC;
|
| } else {
|
| - // Since the X87 is too precise, we might bail out on numbers which
|
| - // actually would truncate with 64 bit precision.
|
| - ASSERT(!CpuFeatures::IsSupported(SSE2));
|
| - ASSERT(result_kind_ < NUMBER);
|
| - result_kind_ = NUMBER;
|
| + ASSERT(right->IsUndefined() || right->IsBoolean());
|
| + right_kind_ = GENERIC;
|
| }
|
| }
|
| }
|
|
|