1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-14 15:40:19 +02:00

Remove card-marking barriers

Field barriers aren't slower and are more precise.
This commit is contained in:
Andy Wingo 2025-03-07 10:33:10 +01:00
parent 4a95a514b7
commit 6c444b33f1
6 changed files with 0 additions and 36 deletions

View file

@ -228,15 +228,6 @@ static inline int gc_write_barrier_fast(struct gc_mutator *mut, struct gc_ref ob
switch (gc_write_barrier_kind(obj_size)) {
case GC_WRITE_BARRIER_NONE:
return 0;
case GC_WRITE_BARRIER_CARD: {
size_t card_table_alignment = gc_write_barrier_card_table_alignment();
size_t card_size = gc_write_barrier_card_size();
uintptr_t addr = gc_ref_value(obj);
uintptr_t base = addr & ~(card_table_alignment - 1);
uintptr_t card = (addr & (card_table_alignment - 1)) / card_size;
atomic_store_explicit((uint8_t*)(base + card), 1, memory_order_relaxed);
return 0;
}
case GC_WRITE_BARRIER_FIELD: {
if (!gc_object_is_old_generation(mut, obj, obj_size))
return 0;