| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 State max_input = Max(left_state_, right_state_); | 579 State max_input = Max(left_state_, right_state_); |
| 580 | 580 |
| 581 if (!has_int_result() && op_ != Token::SHR && | 581 if (!has_int_result() && op_ != Token::SHR && |
| 582 max_input <= NUMBER && max_input > result_state_) { | 582 max_input <= NUMBER && max_input > result_state_) { |
| 583 result_state_ = max_input; | 583 result_state_ = max_input; |
| 584 } | 584 } |
| 585 | 585 |
| 586 ASSERT(result_state_ <= (has_int_result() ? INT32 : NUMBER) || | 586 ASSERT(result_state_ <= (has_int_result() ? INT32 : NUMBER) || |
| 587 op_ == Token::ADD); | 587 op_ == Token::ADD); |
| 588 | 588 |
| 589 // Reset overwrite mode unless we can actually make use of it, or may be able |
| 590 // to make use of it at some point in the future. |
| 591 if ((mode_ == OVERWRITE_LEFT && left_state_ > NUMBER) || |
| 592 (mode_ == OVERWRITE_RIGHT && right_state_ > NUMBER) || |
| 593 result_state_ > NUMBER) { |
| 594 mode_ = NO_OVERWRITE; |
| 595 } |
| 596 |
| 589 if (old_state == GetExtraICState()) { | 597 if (old_state == GetExtraICState()) { |
| 590 // Tagged operations can lead to non-truncating HChanges | 598 // Tagged operations can lead to non-truncating HChanges |
| 591 if (left->IsUndefined() || left->IsBoolean()) { | 599 if (left->IsUndefined() || left->IsBoolean()) { |
| 592 left_state_ = GENERIC; | 600 left_state_ = GENERIC; |
| 593 } else if (right->IsUndefined() || right->IsBoolean()) { | 601 } else if (right->IsUndefined() || right->IsBoolean()) { |
| 594 right_state_ = GENERIC; | 602 right_state_ = GENERIC; |
| 595 } else { | 603 } else { |
| 596 // Since the fpu is to precise, we might bail out on numbers which | 604 // Since the fpu is to precise, we might bail out on numbers which |
| 597 // actually would truncate with 64 bit precision. | 605 // actually would truncate with 64 bit precision. |
| 598 ASSERT(!CpuFeatures::IsSupported(SSE2) && | 606 ASSERT(!CpuFeatures::IsSupported(SSE2) && |
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1200 InstallDescriptor(isolate, &stub3); | 1208 InstallDescriptor(isolate, &stub3); |
| 1201 } | 1209 } |
| 1202 | 1210 |
| 1203 InternalArrayConstructorStub::InternalArrayConstructorStub( | 1211 InternalArrayConstructorStub::InternalArrayConstructorStub( |
| 1204 Isolate* isolate) { | 1212 Isolate* isolate) { |
| 1205 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); | 1213 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); |
| 1206 } | 1214 } |
| 1207 | 1215 |
| 1208 | 1216 |
| 1209 } } // namespace v8::internal | 1217 } } // namespace v8::internal |
| OLD | NEW |