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

Side by Side Diff: src/heap/incremental-marking.h

Issue 1647123002: Write barrier for storing a code entry, and usage in CompileLazy builtin. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Just the macro instruction. Created 4 years, 10 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
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_HEAP_INCREMENTAL_MARKING_H_ 5 #ifndef V8_HEAP_INCREMENTAL_MARKING_H_
6 #define V8_HEAP_INCREMENTAL_MARKING_H_ 6 #define V8_HEAP_INCREMENTAL_MARKING_H_
7 7
8 #include "src/cancelable-task.h" 8 #include "src/cancelable-task.h"
9 #include "src/execution.h" 9 #include "src/execution.h"
10 #include "src/heap/heap.h" 10 #include "src/heap/heap.h"
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 state_ = MARKING; 147 state_ = MARKING;
148 if (FLAG_trace_incremental_marking) { 148 if (FLAG_trace_incremental_marking) {
149 PrintF("[IncrementalMarking] Restarting (new grey objects)\n"); 149 PrintF("[IncrementalMarking] Restarting (new grey objects)\n");
150 } 150 }
151 } 151 }
152 } 152 }
153 153
154 static void RecordWriteFromCode(HeapObject* obj, Object** slot, 154 static void RecordWriteFromCode(HeapObject* obj, Object** slot,
155 Isolate* isolate); 155 Isolate* isolate);
156 156
157 static void RecordWriteOfCodeEntryFromCode(JSFunction* host, Object** slot,
158 Isolate* isolate);
159
157 // Record a slot for compaction. Returns false for objects that are 160 // Record a slot for compaction. Returns false for objects that are
158 // guaranteed to be rescanned or not guaranteed to survive. 161 // guaranteed to be rescanned or not guaranteed to survive.
159 // 162 //
160 // No slots in white objects should be recorded, as some slots are typed and 163 // No slots in white objects should be recorded, as some slots are typed and
161 // cannot be interpreted correctly if the underlying object does not survive 164 // cannot be interpreted correctly if the underlying object does not survive
162 // the incremental cycle (stays white). 165 // the incremental cycle (stays white).
163 INLINE(bool BaseRecordWrite(HeapObject* obj, Object* value)); 166 INLINE(bool BaseRecordWrite(HeapObject* obj, Object* value));
164 INLINE(void RecordWrite(HeapObject* obj, Object** slot, Object* value)); 167 INLINE(void RecordWrite(HeapObject* obj, Object** slot, Object* value));
165 INLINE(void RecordWriteIntoCode(HeapObject* obj, RelocInfo* rinfo, 168 INLINE(void RecordWriteIntoCode(HeapObject* obj, RelocInfo* rinfo,
166 Object* value)); 169 Object* value));
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 GCRequestType request_type_; 301 GCRequestType request_type_;
299 302
300 IncrementalMarkingJob incremental_marking_job_; 303 IncrementalMarkingJob incremental_marking_job_;
301 304
302 DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalMarking); 305 DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalMarking);
303 }; 306 };
304 } // namespace internal 307 } // namespace internal
305 } // namespace v8 308 } // namespace v8
306 309
307 #endif // V8_HEAP_INCREMENTAL_MARKING_H_ 310 #endif // V8_HEAP_INCREMENTAL_MARKING_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698