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

Side by Side Diff: src/mips/macro-assembler-mips.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 4 years, 12 months 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/mips/code-stubs-mips.cc ('k') | src/mips/macro-assembler-mips.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/mips/assembler-mips.h" 10 #include "src/mips/assembler-mips.h"
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 Register scratch1, 377 Register scratch1,
378 Label* has_color, 378 Label* has_color,
379 int first_bit, 379 int first_bit,
380 int second_bit); 380 int second_bit);
381 381
382 void JumpIfBlack(Register object, 382 void JumpIfBlack(Register object,
383 Register scratch0, 383 Register scratch0,
384 Register scratch1, 384 Register scratch1,
385 Label* on_black); 385 Label* on_black);
386 386
387 // Checks the color of an object. If the object is already grey or black 387 // Checks the color of an object. If the object is white we jump to the
388 // then we just fall through, since it is already live. If it is white and 388 // incremental marker.
389 // we can determine that it doesn't need to be scanned, then we just mark it 389 void JumpIfWhite(Register value, Register scratch1, Register scratch2,
390 // black and fall through. For the rest we jump to the label so the 390 Register scratch3, Label* value_is_white);
391 // incremental marker can fix its assumptions.
392 void EnsureNotWhite(Register object,
393 Register scratch1,
394 Register scratch2,
395 Register scratch3,
396 Label* object_is_white_and_not_data);
397
398 // Detects conservatively whether an object is data-only, i.e. it does need to
399 // be scanned by the garbage collector.
400 void JumpIfDataObject(Register value,
401 Register scratch,
402 Label* not_data_object);
403 391
404 // Notify the garbage collector that we wrote a pointer into an object. 392 // Notify the garbage collector that we wrote a pointer into an object.
405 // |object| is the object being stored into, |value| is the object being 393 // |object| is the object being stored into, |value| is the object being
406 // stored. value and scratch registers are clobbered by the operation. 394 // stored. value and scratch registers are clobbered by the operation.
407 // The offset is the offset from the start of the object, not the offset from 395 // The offset is the offset from the start of the object, not the offset from
408 // the tagged HeapObject pointer. For use with FieldOperand(reg, off). 396 // the tagged HeapObject pointer. For use with FieldOperand(reg, off).
409 void RecordWriteField( 397 void RecordWriteField(
410 Register object, 398 Register object,
411 int offset, 399 int offset,
412 Register value, 400 Register value,
(...skipping 1346 matching lines...) Expand 10 before | Expand all | Expand 10 after
1759 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1747 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1760 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1748 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1761 #else 1749 #else
1762 #define ACCESS_MASM(masm) masm-> 1750 #define ACCESS_MASM(masm) masm->
1763 #endif 1751 #endif
1764 1752
1765 } // namespace internal 1753 } // namespace internal
1766 } // namespace v8 1754 } // namespace v8
1767 1755
1768 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1756 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/mips/code-stubs-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698