Lines Matching refs:WriteBarrier
35 class V8_EXPORT WriteBarrier final {
106 WriteBarrier() = delete;
136 template <WriteBarrier::Type type>
137 V8_INLINE WriteBarrier::Type SetAndReturnType(WriteBarrier::Params& params) {
138 if (type == WriteBarrier::Type::kNone) return WriteBarrier::Type::kNone;
148 template <WriteBarrier::ValueMode value_mode, typename HeapHandleCallback>
149 static V8_INLINE WriteBarrier::Type Get(const void* slot, const void* value,
150 WriteBarrier::Params& params,
155 template <WriteBarrier::ValueMode value_mode, typename HeapHandleCallback>
156 static V8_INLINE WriteBarrier::Type Get(const void* value,
157 WriteBarrier::Params& params,
166 static V8_INLINE WriteBarrier::Type GetNoSlot(const void* value,
167 WriteBarrier::Params& params,
170 return WriteBarrier::Type::kNone;
173 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
175 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
178 template <WriteBarrier::ValueMode value_mode>
182 WriteBarrier::Params& params) {
202 static bool IsMarking(const HeapHandle&, WriteBarrier::Params&);
207 WriteBarrier::ValueMode::kValuePresent> {
209 static V8_INLINE WriteBarrier::Type Get(const void* slot, const void* value,
210 WriteBarrier::Params& params,
213 if (V8_LIKELY(!WriteBarrier::IsAnyIncrementalOrConcurrentMarking())) {
214 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
219 return WriteBarrier::Type::kNone;
226 return SetAndReturnType<WriteBarrier::Type::kGenerational>(params);
228 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
232 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
238 WriteBarrier::ValueMode::kNoValuePresent> {
240 static V8_INLINE WriteBarrier::Type Get(const void* slot, const void*,
241 WriteBarrier::Params& params,
252 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
254 return SetAndReturnType<WriteBarrier::Type::kGenerational>(params);
257 if (V8_LIKELY(!WriteBarrier::IsAnyIncrementalOrConcurrentMarking())) {
258 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
262 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
266 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
274 template <WriteBarrier::ValueMode value_mode, typename HeapHandleCallback>
275 static V8_INLINE WriteBarrier::Type Get(const void* slot, const void* value,
276 WriteBarrier::Params& params,
281 template <WriteBarrier::ValueMode value_mode, typename HeapHandleCallback>
282 static V8_INLINE WriteBarrier::Type Get(const void* value,
283 WriteBarrier::Params& params,
286 return Get<WriteBarrier::ValueMode::kValuePresent>(nullptr, value, params,
291 template <WriteBarrier::ValueMode value_mode>
304 WriteBarrier::ValueMode::kValuePresent> {
306 static V8_INLINE WriteBarrier::Type Get(const void*, const void* object,
307 WriteBarrier::Params& params,
311 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
313 if (V8_LIKELY(!WriteBarrier::IsAnyIncrementalOrConcurrentMarking())) {
314 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
317 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
319 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
325 WriteBarrier::ValueMode::kNoValuePresent> {
327 static V8_INLINE WriteBarrier::Type Get(const void*, const void*,
328 WriteBarrier::Params& params,
330 if (V8_UNLIKELY(WriteBarrier::IsAnyIncrementalOrConcurrentMarking())) {
334 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
337 return WriteBarrier::Type::kNone;
342 WriteBarrier::Type WriteBarrier::GetWriteBarrierType(
343 const void* slot, const void* value, WriteBarrier::Params& params) {
350 WriteBarrier::Type WriteBarrier::GetWriteBarrierType(
351 const void* slot, WriteBarrier::Params& params,
358 WriteBarrier::Type WriteBarrier::GetWriteBarrierType(
359 const void* value, WriteBarrier::Params& params) {
365 void WriteBarrier::DijkstraMarkingBarrier(const Params& params,
377 void WriteBarrier::DijkstraMarkingBarrierRange(const Params& params,
388 void WriteBarrier::SteeleMarkingBarrier(const Params& params,
401 void WriteBarrier::GenerationalBarrier(const Params& params, const void* slot) {
415 void WriteBarrier::GenerationalBarrierForSourceObject(