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

Side by Side Diff: src/arm/macro-assembler-arm.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/arm/code-stubs-arm.cc ('k') | src/arm/macro-assembler-arm.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_ARM_MACRO_ASSEMBLER_ARM_H_ 5 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_
6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ 6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/bailout-reason.h" 9 #include "src/bailout-reason.h"
10 #include "src/frames.h" 10 #include "src/frames.h"
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 Register scratch1, 235 Register scratch1,
236 Label* has_color, 236 Label* has_color,
237 int first_bit, 237 int first_bit,
238 int second_bit); 238 int second_bit);
239 239
240 void JumpIfBlack(Register object, 240 void JumpIfBlack(Register object,
241 Register scratch0, 241 Register scratch0,
242 Register scratch1, 242 Register scratch1,
243 Label* on_black); 243 Label* on_black);
244 244
245 // Checks the color of an object. If the object is already grey or black 245 // Checks the color of an object. If the object is white we jump to the
246 // then we just fall through, since it is already live. If it is white and 246 // incremental marker.
247 // we can determine that it doesn't need to be scanned, then we just mark it 247 void JumpIfWhite(Register value, Register scratch1, Register scratch2,
248 // black and fall through. For the rest we jump to the label so the 248 Register scratch3, Label* value_is_white);
249 // incremental marker can fix its assumptions.
250 void EnsureNotWhite(Register object,
251 Register scratch1,
252 Register scratch2,
253 Register scratch3,
254 Label* object_is_white_and_not_data);
255
256 // Detects conservatively whether an object is data-only, i.e. it does need to
257 // be scanned by the garbage collector.
258 void JumpIfDataObject(Register value,
259 Register scratch,
260 Label* not_data_object);
261 249
262 // Notify the garbage collector that we wrote a pointer into an object. 250 // Notify the garbage collector that we wrote a pointer into an object.
263 // |object| is the object being stored into, |value| is the object being 251 // |object| is the object being stored into, |value| is the object being
264 // stored. value and scratch registers are clobbered by the operation. 252 // stored. value and scratch registers are clobbered by the operation.
265 // The offset is the offset from the start of the object, not the offset from 253 // The offset is the offset from the start of the object, not the offset from
266 // the tagged HeapObject pointer. For use with FieldMemOperand(reg, off). 254 // the tagged HeapObject pointer. For use with FieldMemOperand(reg, off).
267 void RecordWriteField( 255 void RecordWriteField(
268 Register object, 256 Register object,
269 int offset, 257 int offset,
270 Register value, 258 Register value,
(...skipping 1279 matching lines...) Expand 10 before | Expand all | Expand 10 after
1550 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1538 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1551 #else 1539 #else
1552 #define ACCESS_MASM(masm) masm-> 1540 #define ACCESS_MASM(masm) masm->
1553 #endif 1541 #endif
1554 1542
1555 1543
1556 } // namespace internal 1544 } // namespace internal
1557 } // namespace v8 1545 } // namespace v8
1558 1546
1559 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 1547 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/arm/macro-assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698