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 2702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2713 if (IsFastDoubleElementsKind(elements_kind())) { | 2713 if (IsFastDoubleElementsKind(elements_kind())) { |
2714 return AllUsesCanTreatHoleAsNaN(); | 2714 return AllUsesCanTreatHoleAsNaN(); |
2715 } | 2715 } |
2716 return true; | 2716 return true; |
2717 } | 2717 } |
2718 | 2718 |
2719 if (IsFastDoubleElementsKind(elements_kind())) { | 2719 if (IsFastDoubleElementsKind(elements_kind())) { |
2720 return false; | 2720 return false; |
2721 } | 2721 } |
2722 | 2722 |
| 2723 // Holes are only returned as tagged values. |
| 2724 if (!representation().IsTagged()) { |
| 2725 return false; |
| 2726 } |
| 2727 |
2723 for (HUseIterator it(uses()); !it.Done(); it.Advance()) { | 2728 for (HUseIterator it(uses()); !it.Done(); it.Advance()) { |
2724 HValue* use = it.value(); | 2729 HValue* use = it.value(); |
2725 if (!use->IsChange() || !HChange::cast(use)->to().IsDouble()) { | 2730 if (!use->IsChange()) return false; |
2726 return false; | |
2727 } | |
2728 } | 2731 } |
2729 | 2732 |
2730 return true; | 2733 return true; |
2731 } | 2734 } |
2732 | 2735 |
2733 | 2736 |
2734 bool HLoadKeyed::AllUsesCanTreatHoleAsNaN() const { | 2737 bool HLoadKeyed::AllUsesCanTreatHoleAsNaN() const { |
2735 if (!IsFastDoubleElementsKind(elements_kind())) { | 2738 if (!IsFastDoubleElementsKind(elements_kind())) { |
2736 return false; | 2739 return false; |
2737 } | 2740 } |
(...skipping 1052 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3790 case kBackingStore: | 3793 case kBackingStore: |
3791 if (!name_.is_null()) stream->Add(*String::cast(*name_)->ToCString()); | 3794 if (!name_.is_null()) stream->Add(*String::cast(*name_)->ToCString()); |
3792 stream->Add("[backing-store]"); | 3795 stream->Add("[backing-store]"); |
3793 break; | 3796 break; |
3794 } | 3797 } |
3795 | 3798 |
3796 stream->Add("@%d", offset()); | 3799 stream->Add("@%d", offset()); |
3797 } | 3800 } |
3798 | 3801 |
3799 } } // namespace v8::internal | 3802 } } // namespace v8::internal |
OLD | NEW |