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

Side by Side Diff: src/mips64/macro-assembler-mips64.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/mips64/code-stubs-mips64.cc ('k') | src/mips64/macro-assembler-mips64.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 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 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 5 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/globals.h" 9 #include "src/globals.h"
10 #include "src/mips64/assembler-mips64.h" 10 #include "src/mips64/assembler-mips64.h"
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 Register scratch1, 403 Register scratch1,
404 Label* has_color, 404 Label* has_color,
405 int first_bit, 405 int first_bit,
406 int second_bit); 406 int second_bit);
407 407
408 void JumpIfBlack(Register object, 408 void JumpIfBlack(Register object,
409 Register scratch0, 409 Register scratch0,
410 Register scratch1, 410 Register scratch1,
411 Label* on_black); 411 Label* on_black);
412 412
413 // Checks the color of an object. If the object is already grey or black 413 // Checks the color of an object. If the object is white we jump to the
414 // then we just fall through, since it is already live. If it is white and 414 // incremental marker.
415 // we can determine that it doesn't need to be scanned, then we just mark it 415 void JumpIfWhite(Register value, Register scratch1, Register scratch2,
416 // black and fall through. For the rest we jump to the label so the 416 Register scratch3, Label* value_is_white);
417 // incremental marker can fix its assumptions.
418 void EnsureNotWhite(Register object,
419 Register scratch1,
420 Register scratch2,
421 Register scratch3,
422 Label* object_is_white_and_not_data);
423
424 // Detects conservatively whether an object is data-only, i.e. it does need to
425 // be scanned by the garbage collector.
426 void JumpIfDataObject(Register value,
427 Register scratch,
428 Label* not_data_object);
429 417
430 // Notify the garbage collector that we wrote a pointer into an object. 418 // Notify the garbage collector that we wrote a pointer into an object.
431 // |object| is the object being stored into, |value| is the object being 419 // |object| is the object being stored into, |value| is the object being
432 // stored. value and scratch registers are clobbered by the operation. 420 // stored. value and scratch registers are clobbered by the operation.
433 // The offset is the offset from the start of the object, not the offset from 421 // The offset is the offset from the start of the object, not the offset from
434 // the tagged HeapObject pointer. For use with FieldOperand(reg, off). 422 // the tagged HeapObject pointer. For use with FieldOperand(reg, off).
435 void RecordWriteField( 423 void RecordWriteField(
436 Register object, 424 Register object,
437 int offset, 425 int offset,
438 Register value, 426 Register value,
(...skipping 1414 matching lines...) Expand 10 before | Expand all | Expand 10 after
1853 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1841 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1854 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1842 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1855 #else 1843 #else
1856 #define ACCESS_MASM(masm) masm-> 1844 #define ACCESS_MASM(masm) masm->
1857 #endif 1845 #endif
1858 1846
1859 } // namespace internal 1847 } // namespace internal
1860 } // namespace v8 1848 } // namespace v8
1861 1849
1862 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1850 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/mips64/code-stubs-mips64.cc ('k') | src/mips64/macro-assembler-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698