| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 804 } | 804 } |
| 805 if (!from_space_.Setup(start + maximum_capacity_, | 805 if (!from_space_.Setup(start + maximum_capacity_, |
| 806 capacity_, | 806 capacity_, |
| 807 maximum_capacity_)) { | 807 maximum_capacity_)) { |
| 808 return false; | 808 return false; |
| 809 } | 809 } |
| 810 | 810 |
| 811 start_ = start; | 811 start_ = start; |
| 812 address_mask_ = ~(size - 1); | 812 address_mask_ = ~(size - 1); |
| 813 object_mask_ = address_mask_ | kHeapObjectTag; | 813 object_mask_ = address_mask_ | kHeapObjectTag; |
| 814 object_expected_ = reinterpret_cast<uint32_t>(start) | kHeapObjectTag; | 814 object_expected_ = reinterpret_cast<uintptr_t>(start) | kHeapObjectTag; |
| 815 | 815 |
| 816 allocation_info_.top = to_space_.low(); | 816 allocation_info_.top = to_space_.low(); |
| 817 allocation_info_.limit = to_space_.high(); | 817 allocation_info_.limit = to_space_.high(); |
| 818 mc_forwarding_info_.top = NULL; | 818 mc_forwarding_info_.top = NULL; |
| 819 mc_forwarding_info_.limit = NULL; | 819 mc_forwarding_info_.limit = NULL; |
| 820 | 820 |
| 821 ASSERT_SEMISPACE_ALLOCATION_INFO(allocation_info_, to_space_); | 821 ASSERT_SEMISPACE_ALLOCATION_INFO(allocation_info_, to_space_); |
| 822 return true; | 822 return true; |
| 823 } | 823 } |
| 824 | 824 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 963 capacity_ = initial_capacity; | 963 capacity_ = initial_capacity; |
| 964 maximum_capacity_ = maximum_capacity; | 964 maximum_capacity_ = maximum_capacity; |
| 965 | 965 |
| 966 if (!MemoryAllocator::CommitBlock(start, capacity_, executable())) { | 966 if (!MemoryAllocator::CommitBlock(start, capacity_, executable())) { |
| 967 return false; | 967 return false; |
| 968 } | 968 } |
| 969 | 969 |
| 970 start_ = start; | 970 start_ = start; |
| 971 address_mask_ = ~(maximum_capacity - 1); | 971 address_mask_ = ~(maximum_capacity - 1); |
| 972 object_mask_ = address_mask_ | kHeapObjectTag; | 972 object_mask_ = address_mask_ | kHeapObjectTag; |
| 973 object_expected_ = reinterpret_cast<uint32_t>(start) | kHeapObjectTag; | 973 object_expected_ = reinterpret_cast<uintptr_t>(start) | kHeapObjectTag; |
| 974 | 974 |
| 975 age_mark_ = start_; | 975 age_mark_ = start_; |
| 976 return true; | 976 return true; |
| 977 } | 977 } |
| 978 | 978 |
| 979 | 979 |
| 980 void SemiSpace::TearDown() { | 980 void SemiSpace::TearDown() { |
| 981 start_ = NULL; | 981 start_ = NULL; |
| 982 capacity_ = 0; | 982 capacity_ = 0; |
| 983 } | 983 } |
| (...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1883 // to the pointers starting at object_p. The allocation_top is an object | 1883 // to the pointers starting at object_p. The allocation_top is an object |
| 1884 // pointer which should not be read past. This is important for large object | 1884 // pointer which should not be read past. This is important for large object |
| 1885 // pages, where some bits in the remembered set range do not correspond to | 1885 // pages, where some bits in the remembered set range do not correspond to |
| 1886 // allocated addresses. | 1886 // allocated addresses. |
| 1887 static void PrintRSetRange(Address start, Address end, Object** object_p, | 1887 static void PrintRSetRange(Address start, Address end, Object** object_p, |
| 1888 Address allocation_top) { | 1888 Address allocation_top) { |
| 1889 Address rset_address = start; | 1889 Address rset_address = start; |
| 1890 | 1890 |
| 1891 // If the range starts on on odd numbered word (eg, for large object extra | 1891 // If the range starts on on odd numbered word (eg, for large object extra |
| 1892 // remembered set ranges), print some spaces. | 1892 // remembered set ranges), print some spaces. |
| 1893 if ((reinterpret_cast<uint32_t>(start) / kIntSize) % 2 == 1) { | 1893 if ((reinterpret_cast<uintptr_t>(start) / kIntSize) % 2 == 1) { |
| 1894 PrintF(" "); | 1894 PrintF(" "); |
| 1895 } | 1895 } |
| 1896 | 1896 |
| 1897 // Loop over all the words in the range. | 1897 // Loop over all the words in the range. |
| 1898 while (rset_address < end) { | 1898 while (rset_address < end) { |
| 1899 uint32_t rset_word = Memory::uint32_at(rset_address); | 1899 uint32_t rset_word = Memory::uint32_at(rset_address); |
| 1900 int bit_position = 0; | 1900 int bit_position = 0; |
| 1901 | 1901 |
| 1902 // Loop over all the bits in the word. | 1902 // Loop over all the bits in the word. |
| 1903 while (bit_position < kBitsPerInt) { | 1903 while (bit_position < kBitsPerInt) { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1922 if (bit_position % 8 == 7 && bit_position != (kBitsPerInt - 1)) { | 1922 if (bit_position % 8 == 7 && bit_position != (kBitsPerInt - 1)) { |
| 1923 PrintF(" "); | 1923 PrintF(" "); |
| 1924 } | 1924 } |
| 1925 | 1925 |
| 1926 // Advance to next bit. | 1926 // Advance to next bit. |
| 1927 bit_position++; | 1927 bit_position++; |
| 1928 object_p++; | 1928 object_p++; |
| 1929 } | 1929 } |
| 1930 | 1930 |
| 1931 // Print a newline after every odd numbered word, otherwise a space. | 1931 // Print a newline after every odd numbered word, otherwise a space. |
| 1932 if ((reinterpret_cast<uint32_t>(rset_address) / kIntSize) % 2 == 1) { | 1932 if ((reinterpret_cast<uintptr_t>(rset_address) / kIntSize) % 2 == 1) { |
| 1933 PrintF("\n"); | 1933 PrintF("\n"); |
| 1934 } else { | 1934 } else { |
| 1935 PrintF(" "); | 1935 PrintF(" "); |
| 1936 } | 1936 } |
| 1937 | 1937 |
| 1938 // Advance to next remembered set word. | 1938 // Advance to next remembered set word. |
| 1939 rset_address += kIntSize; | 1939 rset_address += kIntSize; |
| 1940 } | 1940 } |
| 1941 } | 1941 } |
| 1942 | 1942 |
| (...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2590 reinterpret_cast<Object**>(object->address() | 2590 reinterpret_cast<Object**>(object->address() |
| 2591 + Page::kObjectAreaSize), | 2591 + Page::kObjectAreaSize), |
| 2592 allocation_top); | 2592 allocation_top); |
| 2593 PrintF("\n"); | 2593 PrintF("\n"); |
| 2594 } | 2594 } |
| 2595 } | 2595 } |
| 2596 } | 2596 } |
| 2597 #endif // DEBUG | 2597 #endif // DEBUG |
| 2598 | 2598 |
| 2599 } } // namespace v8::internal | 2599 } } // namespace v8::internal |
| OLD | NEW |