OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "double.h" | 7 #include "double.h" |
8 #include "factory.h" | 8 #include "factory.h" |
9 #include "hydrogen-infer-representation.h" | 9 #include "hydrogen-infer-representation.h" |
10 #include "property-details-inl.h" | 10 #include "property-details-inl.h" |
(...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
772 | 772 |
773 bool HInstruction::CanDeoptimize() { | 773 bool HInstruction::CanDeoptimize() { |
774 // TODO(titzer): make this a virtual method? | 774 // TODO(titzer): make this a virtual method? |
775 switch (opcode()) { | 775 switch (opcode()) { |
776 case HValue::kAbnormalExit: | 776 case HValue::kAbnormalExit: |
777 case HValue::kAccessArgumentsAt: | 777 case HValue::kAccessArgumentsAt: |
778 case HValue::kAllocate: | 778 case HValue::kAllocate: |
779 case HValue::kArgumentsElements: | 779 case HValue::kArgumentsElements: |
780 case HValue::kArgumentsLength: | 780 case HValue::kArgumentsLength: |
781 case HValue::kArgumentsObject: | 781 case HValue::kArgumentsObject: |
782 case HValue::kArrayShift: | |
783 case HValue::kBlockEntry: | 782 case HValue::kBlockEntry: |
784 case HValue::kBoundsCheckBaseIndexInformation: | 783 case HValue::kBoundsCheckBaseIndexInformation: |
785 case HValue::kCallFunction: | 784 case HValue::kCallFunction: |
786 case HValue::kCallJSFunction: | |
787 case HValue::kCallNew: | 785 case HValue::kCallNew: |
788 case HValue::kCallNewArray: | 786 case HValue::kCallNewArray: |
789 case HValue::kCallStub: | 787 case HValue::kCallStub: |
790 case HValue::kCallWithDescriptor: | 788 case HValue::kCallWithDescriptor: |
791 case HValue::kCapturedObject: | 789 case HValue::kCapturedObject: |
792 case HValue::kClassOfTestAndBranch: | 790 case HValue::kClassOfTestAndBranch: |
793 case HValue::kCompareGeneric: | 791 case HValue::kCompareGeneric: |
794 case HValue::kCompareHoleAndBranch: | 792 case HValue::kCompareHoleAndBranch: |
795 case HValue::kCompareMap: | 793 case HValue::kCompareMap: |
796 case HValue::kCompareMinusZeroAndBranch: | 794 case HValue::kCompareMinusZeroAndBranch: |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 case HValue::kTypeofIsAndBranch: | 840 case HValue::kTypeofIsAndBranch: |
843 case HValue::kUnknownOSRValue: | 841 case HValue::kUnknownOSRValue: |
844 case HValue::kUseConst: | 842 case HValue::kUseConst: |
845 return false; | 843 return false; |
846 | 844 |
847 case HValue::kAdd: | 845 case HValue::kAdd: |
848 case HValue::kApplyArguments: | 846 case HValue::kApplyArguments: |
849 case HValue::kBitwise: | 847 case HValue::kBitwise: |
850 case HValue::kBoundsCheck: | 848 case HValue::kBoundsCheck: |
851 case HValue::kBranch: | 849 case HValue::kBranch: |
| 850 case HValue::kCallJSFunction: |
852 case HValue::kCallRuntime: | 851 case HValue::kCallRuntime: |
853 case HValue::kChange: | 852 case HValue::kChange: |
854 case HValue::kCheckHeapObject: | 853 case HValue::kCheckHeapObject: |
855 case HValue::kCheckInstanceType: | 854 case HValue::kCheckInstanceType: |
856 case HValue::kCheckMapValue: | 855 case HValue::kCheckMapValue: |
857 case HValue::kCheckMaps: | 856 case HValue::kCheckMaps: |
858 case HValue::kCheckSmi: | 857 case HValue::kCheckSmi: |
859 case HValue::kCheckValue: | 858 case HValue::kCheckValue: |
860 case HValue::kClampToUint8: | 859 case HValue::kClampToUint8: |
861 case HValue::kDateField: | 860 case HValue::kDateField: |
(...skipping 2740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3602 ElementsKind to_kind = transitioned_map().handle()->elements_kind(); | 3601 ElementsKind to_kind = transitioned_map().handle()->elements_kind(); |
3603 stream->Add(" %p [%s] -> %p [%s]", | 3602 stream->Add(" %p [%s] -> %p [%s]", |
3604 *original_map().handle(), | 3603 *original_map().handle(), |
3605 ElementsAccessor::ForKind(from_kind)->name(), | 3604 ElementsAccessor::ForKind(from_kind)->name(), |
3606 *transitioned_map().handle(), | 3605 *transitioned_map().handle(), |
3607 ElementsAccessor::ForKind(to_kind)->name()); | 3606 ElementsAccessor::ForKind(to_kind)->name()); |
3608 if (IsSimpleMapChangeTransition(from_kind, to_kind)) stream->Add(" (simple)"); | 3607 if (IsSimpleMapChangeTransition(from_kind, to_kind)) stream->Add(" (simple)"); |
3609 } | 3608 } |
3610 | 3609 |
3611 | 3610 |
3612 void HArrayShift::PrintDataTo(StringStream* stream) { | |
3613 object()->PrintNameTo(stream); | |
3614 stream->Add(" [%s]", ElementsAccessor::ForKind(kind())->name()); | |
3615 } | |
3616 | |
3617 | |
3618 void HLoadGlobalCell::PrintDataTo(StringStream* stream) { | 3611 void HLoadGlobalCell::PrintDataTo(StringStream* stream) { |
3619 stream->Add("[%p]", *cell().handle()); | 3612 stream->Add("[%p]", *cell().handle()); |
3620 if (!details_.IsDontDelete()) stream->Add(" (deleteable)"); | 3613 if (!details_.IsDontDelete()) stream->Add(" (deleteable)"); |
3621 if (details_.IsReadOnly()) stream->Add(" (read-only)"); | 3614 if (details_.IsReadOnly()) stream->Add(" (read-only)"); |
3622 } | 3615 } |
3623 | 3616 |
3624 | 3617 |
3625 bool HLoadGlobalCell::RequiresHoleCheck() const { | 3618 bool HLoadGlobalCell::RequiresHoleCheck() const { |
3626 if (details_.IsDontDelete() && !details_.IsReadOnly()) return false; | 3619 if (details_.IsDontDelete() && !details_.IsReadOnly()) return false; |
3627 for (HUseIterator it(uses()); !it.Done(); it.Advance()) { | 3620 for (HUseIterator it(uses()); !it.Done(); it.Advance()) { |
(...skipping 1125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4753 break; | 4746 break; |
4754 case kExternalMemory: | 4747 case kExternalMemory: |
4755 stream->Add("[external-memory]"); | 4748 stream->Add("[external-memory]"); |
4756 break; | 4749 break; |
4757 } | 4750 } |
4758 | 4751 |
4759 stream->Add("@%d", offset()); | 4752 stream->Add("@%d", offset()); |
4760 } | 4753 } |
4761 | 4754 |
4762 } } // namespace v8::internal | 4755 } } // namespace v8::internal |
OLD | NEW |