Lines Matching refs:params

65                                             Params& params);
68 static V8_INLINE Type GetWriteBarrierType(const void* slot, Params& params,
71 static V8_INLINE Type GetWriteBarrierType(const void* value, Params& params);
73 static V8_INLINE void DijkstraMarkingBarrier(const Params& params,
76 const Params& params, const void* first_element, size_t element_size,
78 static V8_INLINE void SteeleMarkingBarrier(const Params& params,
81 static V8_INLINE void GenerationalBarrier(const Params& params,
84 const Params& params, const void* inner_pointer);
86 static V8_INLINE void GenerationalBarrier(const Params& params,
89 const Params& params, const void* inner_pointer) {}
93 static void CheckParams(Type expected_type, const Params& params);
95 static void CheckParams(Type expected_type, const Params& params) {}
137 V8_INLINE WriteBarrier::Type SetAndReturnType(WriteBarrier::Params& params) {
140 params.type = type;
150 WriteBarrier::Params& params,
152 return ValueModeDispatch<value_mode>::Get(slot, value, params, callback);
157 WriteBarrier::Params& params,
159 return GetNoSlot(value, params, callback);
167 WriteBarrier::Params& params,
169 if (!TryGetCagedHeap(value, value, params)) {
172 if (V8_UNLIKELY(params.caged_heap().is_incremental_marking_in_progress)) {
173 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
175 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
182 WriteBarrier::Params& params) {
186 params.start = reinterpret_cast<uintptr_t>(value) &
189 reinterpret_cast<uintptr_t>(slot) - params.start;
210 WriteBarrier::Params& params,
214 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
217 bool within_cage = TryGetCagedHeap(slot, value, params);
221 if (V8_LIKELY(!params.caged_heap().is_incremental_marking_in_progress)) {
223 params.heap = reinterpret_cast<HeapHandle*>(params.start);
224 params.slot_offset = reinterpret_cast<uintptr_t>(slot) - params.start;
225 params.value_offset = reinterpret_cast<uintptr_t>(value) - params.start;
226 return SetAndReturnType<WriteBarrier::Type::kGenerational>(params);
228 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
231 params.heap = reinterpret_cast<HeapHandle*>(params.start);
232 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
241 WriteBarrier::Params& params,
245 if (V8_LIKELY(!IsMarking(handle, params))) {
246 // params.start is populated by IsMarking().
247 params.heap = &handle;
248 params.slot_offset = reinterpret_cast<uintptr_t>(slot) - params.start;
249 // params.value_offset stays 0.
250 if (params.slot_offset > api_constants::kCagedHeapReservationSize) {
252 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
254 return SetAndReturnType<WriteBarrier::Type::kGenerational>(params);
258 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
262 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
265 params.heap = &handle;
266 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
276 WriteBarrier::Params& params,
278 return ValueModeDispatch<value_mode>::Get(slot, value, params, callback);
283 WriteBarrier::Params& params,
286 return Get<WriteBarrier::ValueMode::kValuePresent>(nullptr, value, params,
307 WriteBarrier::Params& params,
311 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
314 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
316 if (IsMarking(object, &params.heap)) {
317 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
319 return SetAndReturnType<WriteBarrier::Type::kNone>(params);
328 WriteBarrier::Params& params,
333 params.heap = &handle;
334 return SetAndReturnType<WriteBarrier::Type::kMarking>(params);
343 const void* slot, const void* value, WriteBarrier::Params& params) {
345 params, []() {});
351 const void* slot, WriteBarrier::Params& params,
354 slot, nullptr, params, callback);
359 const void* value, WriteBarrier::Params& params) {
360 return WriteBarrierTypePolicy::Get<ValueMode::kValuePresent>(value, params,
365 void WriteBarrier::DijkstraMarkingBarrier(const Params& params,
367 CheckParams(Type::kMarking, params);
377 void WriteBarrier::DijkstraMarkingBarrierRange(const Params& params,
382 CheckParams(Type::kMarking, params);
383 DijkstraMarkingBarrierRangeSlow(*params.heap, first_element, element_size,
388 void WriteBarrier::SteeleMarkingBarrier(const Params& params,
390 CheckParams(Type::kMarking, params);
401 void WriteBarrier::GenerationalBarrier(const Params& params, const void* slot) {
402 CheckParams(Type::kGenerational, params);
404 const CagedHeapLocalData& local_data = params.caged_heap();
408 if (V8_LIKELY(age_table.GetAge(params.slot_offset) == AgeTable::Age::kYoung))
411 GenerationalBarrierSlow(local_data, age_table, slot, params.value_offset);
416 const Params& params, const void* inner_pointer) {
417 CheckParams(Type::kGenerational, params);
419 const CagedHeapLocalData& local_data = params.caged_heap();
424 if (V8_LIKELY(age_table.GetAge(params.slot_offset) == AgeTable::Age::kYoung))