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 1667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1678 stream->Add("."); | 1678 stream->Add("."); |
1679 stream->Add(*String::cast(*name())->ToCString()); | 1679 stream->Add(*String::cast(*name())->ToCString()); |
1680 } | 1680 } |
1681 | 1681 |
1682 | 1682 |
1683 void HLoadKeyedFastElement::PrintDataTo(StringStream* stream) { | 1683 void HLoadKeyedFastElement::PrintDataTo(StringStream* stream) { |
1684 object()->PrintNameTo(stream); | 1684 object()->PrintNameTo(stream); |
1685 stream->Add("["); | 1685 stream->Add("["); |
1686 key()->PrintNameTo(stream); | 1686 key()->PrintNameTo(stream); |
1687 stream->Add("]"); | 1687 stream->Add("]"); |
1688 if (hole_check_mode_ == PERFORM_HOLE_CHECK) { | |
1689 stream->Add(" check_hole"); | |
1690 } | |
1691 } | 1688 } |
1692 | 1689 |
1693 | 1690 |
1694 bool HLoadKeyedFastElement::RequiresHoleCheck() { | 1691 bool HLoadKeyedFastElement::RequiresHoleCheck() { |
1695 if (hole_check_mode_ == OMIT_HOLE_CHECK) { | 1692 if (hole_check_mode_ == OMIT_HOLE_CHECK) { |
1696 return false; | 1693 return false; |
1697 } | 1694 } |
1698 | 1695 |
1699 for (HUseIterator it(uses()); !it.Done(); it.Advance()) { | 1696 for (HUseIterator it(uses()); !it.Done(); it.Advance()) { |
1700 HValue* use = it.value(); | 1697 HValue* use = it.value(); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1732 HForInCacheArray::cast(key_load->object()); | 1729 HForInCacheArray::cast(key_load->object()); |
1733 | 1730 |
1734 if (names_cache->enumerable() == object()) { | 1731 if (names_cache->enumerable() == object()) { |
1735 HForInCacheArray* index_cache = | 1732 HForInCacheArray* index_cache = |
1736 names_cache->index_cache(); | 1733 names_cache->index_cache(); |
1737 HCheckMapValue* map_check = | 1734 HCheckMapValue* map_check = |
1738 new(block()->zone()) HCheckMapValue(object(), names_cache->map()); | 1735 new(block()->zone()) HCheckMapValue(object(), names_cache->map()); |
1739 HInstruction* index = new(block()->zone()) HLoadKeyedFastElement( | 1736 HInstruction* index = new(block()->zone()) HLoadKeyedFastElement( |
1740 index_cache, | 1737 index_cache, |
1741 key_load->key(), | 1738 key_load->key(), |
1742 OMIT_HOLE_CHECK); | 1739 HLoadKeyedFastElement::OMIT_HOLE_CHECK); |
1743 HLoadFieldByIndex* load = new(block()->zone()) HLoadFieldByIndex( | 1740 HLoadFieldByIndex* load = new(block()->zone()) HLoadFieldByIndex( |
1744 object(), index); | 1741 object(), index); |
1745 map_check->InsertBefore(this); | 1742 map_check->InsertBefore(this); |
1746 index->InsertBefore(this); | 1743 index->InsertBefore(this); |
1747 load->InsertBefore(this); | 1744 load->InsertBefore(this); |
1748 return load; | 1745 return load; |
1749 } | 1746 } |
1750 } | 1747 } |
1751 } | 1748 } |
1752 | 1749 |
(...skipping 27 matching lines...) Expand all Loading... |
1780 case EXTERNAL_FLOAT_ELEMENTS: | 1777 case EXTERNAL_FLOAT_ELEMENTS: |
1781 stream->Add("float"); | 1778 stream->Add("float"); |
1782 break; | 1779 break; |
1783 case EXTERNAL_DOUBLE_ELEMENTS: | 1780 case EXTERNAL_DOUBLE_ELEMENTS: |
1784 stream->Add("double"); | 1781 stream->Add("double"); |
1785 break; | 1782 break; |
1786 case EXTERNAL_PIXEL_ELEMENTS: | 1783 case EXTERNAL_PIXEL_ELEMENTS: |
1787 stream->Add("pixel"); | 1784 stream->Add("pixel"); |
1788 break; | 1785 break; |
1789 case FAST_ELEMENTS: | 1786 case FAST_ELEMENTS: |
1790 case FAST_SMI_ELEMENTS: | 1787 case FAST_SMI_ONLY_ELEMENTS: |
1791 case FAST_DOUBLE_ELEMENTS: | 1788 case FAST_DOUBLE_ELEMENTS: |
1792 case FAST_HOLEY_ELEMENTS: | |
1793 case FAST_HOLEY_SMI_ELEMENTS: | |
1794 case FAST_HOLEY_DOUBLE_ELEMENTS: | |
1795 case DICTIONARY_ELEMENTS: | 1789 case DICTIONARY_ELEMENTS: |
1796 case NON_STRICT_ARGUMENTS_ELEMENTS: | 1790 case NON_STRICT_ARGUMENTS_ELEMENTS: |
1797 UNREACHABLE(); | 1791 UNREACHABLE(); |
1798 break; | 1792 break; |
1799 } | 1793 } |
1800 stream->Add("["); | 1794 stream->Add("["); |
1801 key()->PrintNameTo(stream); | 1795 key()->PrintNameTo(stream); |
1802 stream->Add("]"); | 1796 stream->Add("]"); |
1803 } | 1797 } |
1804 | 1798 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1881 break; | 1875 break; |
1882 case EXTERNAL_FLOAT_ELEMENTS: | 1876 case EXTERNAL_FLOAT_ELEMENTS: |
1883 stream->Add("float"); | 1877 stream->Add("float"); |
1884 break; | 1878 break; |
1885 case EXTERNAL_DOUBLE_ELEMENTS: | 1879 case EXTERNAL_DOUBLE_ELEMENTS: |
1886 stream->Add("double"); | 1880 stream->Add("double"); |
1887 break; | 1881 break; |
1888 case EXTERNAL_PIXEL_ELEMENTS: | 1882 case EXTERNAL_PIXEL_ELEMENTS: |
1889 stream->Add("pixel"); | 1883 stream->Add("pixel"); |
1890 break; | 1884 break; |
1891 case FAST_SMI_ELEMENTS: | 1885 case FAST_SMI_ONLY_ELEMENTS: |
1892 case FAST_ELEMENTS: | 1886 case FAST_ELEMENTS: |
1893 case FAST_DOUBLE_ELEMENTS: | 1887 case FAST_DOUBLE_ELEMENTS: |
1894 case FAST_HOLEY_SMI_ELEMENTS: | |
1895 case FAST_HOLEY_ELEMENTS: | |
1896 case FAST_HOLEY_DOUBLE_ELEMENTS: | |
1897 case DICTIONARY_ELEMENTS: | 1888 case DICTIONARY_ELEMENTS: |
1898 case NON_STRICT_ARGUMENTS_ELEMENTS: | 1889 case NON_STRICT_ARGUMENTS_ELEMENTS: |
1899 UNREACHABLE(); | 1890 UNREACHABLE(); |
1900 break; | 1891 break; |
1901 } | 1892 } |
1902 stream->Add("["); | 1893 stream->Add("["); |
1903 key()->PrintNameTo(stream); | 1894 key()->PrintNameTo(stream); |
1904 stream->Add("] = "); | 1895 stream->Add("] = "); |
1905 value()->PrintNameTo(stream); | 1896 value()->PrintNameTo(stream); |
1906 } | 1897 } |
1907 | 1898 |
1908 | 1899 |
1909 void HTransitionElementsKind::PrintDataTo(StringStream* stream) { | 1900 void HTransitionElementsKind::PrintDataTo(StringStream* stream) { |
1910 object()->PrintNameTo(stream); | 1901 object()->PrintNameTo(stream); |
1911 ElementsKind from_kind = original_map()->elements_kind(); | 1902 stream->Add(" %p -> %p", *original_map(), *transitioned_map()); |
1912 ElementsKind to_kind = transitioned_map()->elements_kind(); | |
1913 stream->Add(" %p [%s] -> %p [%s]", | |
1914 *original_map(), | |
1915 ElementsAccessor::ForKind(from_kind)->name(), | |
1916 *transitioned_map(), | |
1917 ElementsAccessor::ForKind(to_kind)->name()); | |
1918 } | 1903 } |
1919 | 1904 |
1920 | 1905 |
1921 void HLoadGlobalCell::PrintDataTo(StringStream* stream) { | 1906 void HLoadGlobalCell::PrintDataTo(StringStream* stream) { |
1922 stream->Add("[%p]", *cell()); | 1907 stream->Add("[%p]", *cell()); |
1923 if (!details_.IsDontDelete()) stream->Add(" (deleteable)"); | 1908 if (!details_.IsDontDelete()) stream->Add(" (deleteable)"); |
1924 if (details_.IsReadOnly()) stream->Add(" (read-only)"); | 1909 if (details_.IsReadOnly()) stream->Add(" (read-only)"); |
1925 } | 1910 } |
1926 | 1911 |
1927 | 1912 |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2451 | 2436 |
2452 | 2437 |
2453 void HCheckPrototypeMaps::Verify() { | 2438 void HCheckPrototypeMaps::Verify() { |
2454 HInstruction::Verify(); | 2439 HInstruction::Verify(); |
2455 ASSERT(HasNoUses()); | 2440 ASSERT(HasNoUses()); |
2456 } | 2441 } |
2457 | 2442 |
2458 #endif | 2443 #endif |
2459 | 2444 |
2460 } } // namespace v8::internal | 2445 } } // namespace v8::internal |
OLD | NEW |