Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(530)

Side by Side Diff: src/arm64/macro-assembler-arm64.h

Issue 1542113002: Do not mark from native code. Check color and call incremental marker instead. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/arm64/code-stubs-arm64.cc ('k') | src/arm64/macro-assembler-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "src/arm64/assembler-arm64.h" 10 #include "src/arm64/assembler-arm64.h"
(...skipping 1781 matching lines...) Expand 10 before | Expand all | Expand 10 after
1792 Register object, 1792 Register object,
1793 Register address, 1793 Register address,
1794 Register value, 1794 Register value,
1795 LinkRegisterStatus lr_status, 1795 LinkRegisterStatus lr_status,
1796 SaveFPRegsMode save_fp, 1796 SaveFPRegsMode save_fp,
1797 RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET, 1797 RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET,
1798 SmiCheck smi_check = INLINE_SMI_CHECK, 1798 SmiCheck smi_check = INLINE_SMI_CHECK,
1799 PointersToHereCheck pointers_to_here_check_for_value = 1799 PointersToHereCheck pointers_to_here_check_for_value =
1800 kPointersToHereMaybeInteresting); 1800 kPointersToHereMaybeInteresting);
1801 1801
1802 // Checks the color of an object. If the object is already grey or black 1802 // Checks the color of an object. If the object is white we jump to the
1803 // then we just fall through, since it is already live. If it is white and 1803 // incremental marker.
1804 // we can determine that it doesn't need to be scanned, then we just mark it 1804 void JumpIfWhite(Register value, Register scratch1, Register scratch2,
1805 // black and fall through. For the rest we jump to the label so the 1805 Register scratch3, Register scratch4, Label* value_is_white);
1806 // incremental marker can fix its assumptions.
1807 void EnsureNotWhite(Register object,
1808 Register scratch1,
1809 Register scratch2,
1810 Register scratch3,
1811 Register scratch4,
1812 Label* object_is_white_and_not_data);
1813
1814 // Detects conservatively whether an object is data-only, i.e. it does need to
1815 // be scanned by the garbage collector.
1816 void JumpIfDataObject(Register value,
1817 Register scratch,
1818 Label* not_data_object);
1819 1806
1820 // Helper for finding the mark bits for an address. 1807 // Helper for finding the mark bits for an address.
1821 // Note that the behaviour slightly differs from other architectures. 1808 // Note that the behaviour slightly differs from other architectures.
1822 // On exit: 1809 // On exit:
1823 // - addr_reg is unchanged. 1810 // - addr_reg is unchanged.
1824 // - The bitmap register points at the word with the mark bits. 1811 // - The bitmap register points at the word with the mark bits.
1825 // - The shift register contains the index of the first color bit for this 1812 // - The shift register contains the index of the first color bit for this
1826 // object in the bitmap. 1813 // object in the bitmap.
1827 inline void GetMarkBits(Register addr_reg, 1814 inline void GetMarkBits(Register addr_reg,
1828 Register bitmap_reg, 1815 Register bitmap_reg,
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
2250 #error "Unsupported option" 2237 #error "Unsupported option"
2251 #define CODE_COVERAGE_STRINGIFY(x) #x 2238 #define CODE_COVERAGE_STRINGIFY(x) #x
2252 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 2239 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
2253 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 2240 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
2254 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 2241 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
2255 #else 2242 #else
2256 #define ACCESS_MASM(masm) masm-> 2243 #define ACCESS_MASM(masm) masm->
2257 #endif 2244 #endif
2258 2245
2259 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ 2246 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_
OLDNEW
« no previous file with comments | « src/arm64/code-stubs-arm64.cc ('k') | src/arm64/macro-assembler-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698