probe gc__begin (int generation);
probe gc__end (int generation);
- probe gc__heap__alloc (void *addr, uintptr_t len);
- probe gc__heap__free (void *addr, uintptr_t len);
+ probe gc__heap__alloc (uintptr_t addr, uintptr_t len);
+ probe gc__heap__free (uintptr_t addr, uintptr_t len);
probe gc__locked ();
probe gc__unlocked ();
- probe gc__nursery__tlab__alloc (void *addr, uintptr_t len);
- probe gc__nursery__obj__alloc (void *addr, uintptr_t size, char *ns_name, char *class_name);
+ probe gc__nursery__tlab__alloc (uintptr_t addr, uintptr_t len);
+ probe gc__nursery__obj__alloc (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
- probe gc__major__obj__alloc__large (void *addr, uintptr_t size, char *ns_name, char *class_name);
- probe gc__major__obj__alloc__pinned (void *addr, uintptr_t size, char *ns_name, char *class_name);
- probe gc__major__obj__alloc__degraded (void *addr, uintptr_t size, char *ns_name, char *class_name);
- probe gc__major__obj__alloc__mature (void *addr, uintptr_t size, char *ns_name, char *class_name);
+ probe gc__major__obj__alloc__large (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
+ probe gc__major__obj__alloc__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
+ probe gc__major__obj__alloc__degraded (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
+ probe gc__major__obj__alloc__mature (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
/* Can be nursery->nursery, nursery->major or major->major */
- probe gc__obj__moved (void *dest, void *src, int dest_gen, int src_gen, uintptr_t size, char *ns_name, char *class_name);
+ probe gc__obj__moved (uintptr_t dest, uintptr_t src, int dest_gen, int src_gen, uintptr_t size, char *ns_name, char *class_name);
- probe gc__nursery__sweeped (void *addr, uintptr_t len);
- probe gc__major__sweeped (void *addr, uintptr_t len);
+ probe gc__nursery__sweeped (uintptr_t addr, uintptr_t len);
+ probe gc__major__sweeped (uintptr_t addr, uintptr_t len);
- probe gc__obj__pinned (void *addr, uintptr_t size, char *ns_name, char *class_name, int generation);
+ probe gc__obj__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name, int generation);
};
#pragma D attributes Evolving/Evolving/Common provider mono provider
p = major_collector.alloc_degraded (vtable, size);
if (for_mature) {
- MONO_GC_MAJOR_OBJ_ALLOC_MATURE (p, size, vtable->klass->name_space, vtable->klass->name);
+ MONO_GC_MAJOR_OBJ_ALLOC_MATURE ((mword)p, size, vtable->klass->name_space, vtable->klass->name);
} else {
binary_protocol_alloc_degraded (p, vtable, size);
- MONO_GC_MAJOR_OBJ_ALLOC_DEGRADED (p, size, vtable->klass->name_space, vtable->klass->name);
+ MONO_GC_MAJOR_OBJ_ALLOC_DEGRADED ((mword)p, size, vtable->klass->name_space, vtable->klass->name);
}
return p;
DEBUG (6, fprintf (gc_debug_file, "Allocated object %p, vtable: %p (%s), size: %zd\n", p, vtable, vtable->klass->name, size));
binary_protocol_alloc (p , vtable, size);
if (G_UNLIKELY (MONO_GC_NURSERY_OBJ_ALLOC_ENABLED ()))
- MONO_GC_NURSERY_OBJ_ALLOC (p, size, vtable->klass->name_space, vtable->klass->name);
+ MONO_GC_NURSERY_OBJ_ALLOC ((mword)p, size, vtable->klass->name_space, vtable->klass->name);
g_assert (*p == NULL);
mono_atomic_store_seq (p, vtable);
binary_protocol_alloc (p, vtable, size);
if (G_UNLIKELY (MONO_GC_MAJOR_OBJ_ALLOC_LARGE_ENABLED ()|| MONO_GC_NURSERY_OBJ_ALLOC_ENABLED ())) {
if (size > SGEN_MAX_SMALL_OBJ_SIZE)
- MONO_GC_MAJOR_OBJ_ALLOC_LARGE (p, size, vtable->klass->name_space, vtable->klass->name);
+ MONO_GC_MAJOR_OBJ_ALLOC_LARGE ((mword)p, size, vtable->klass->name_space, vtable->klass->name);
else
- MONO_GC_NURSERY_OBJ_ALLOC (p, size, vtable->klass->name_space, vtable->klass->name);
+ MONO_GC_NURSERY_OBJ_ALLOC ((mword)p, size, vtable->klass->name_space, vtable->klass->name);
}
mono_atomic_store_seq (p, vtable);
}
if (nursery_clear_policy == CLEAR_AT_TLAB_CREATION)
memset (new_next, 0, alloc_size);
- MONO_GC_NURSERY_TLAB_ALLOC (new_next, alloc_size);
+ MONO_GC_NURSERY_TLAB_ALLOC ((mword)new_next, alloc_size);
}
}
DEBUG (6, fprintf (gc_debug_file, "Allocated object %p, vtable: %p (%s), size: %zd\n", p, vtable, vtable->klass->name, size));
binary_protocol_alloc (p, vtable, size);
if (G_UNLIKELY (MONO_GC_NURSERY_OBJ_ALLOC_ENABLED ()))
- MONO_GC_NURSERY_OBJ_ALLOC (p, size, vtable->klass->name_space, vtable->klass->name);
+ MONO_GC_NURSERY_OBJ_ALLOC ((mword)p, size, vtable->klass->name_space, vtable->klass->name);
g_assert (*p == NULL); /* FIXME disable this in non debug builds */
mono_atomic_store_seq (p, vtable);
if (G_LIKELY (p)) {
DEBUG (6, fprintf (gc_debug_file, "Allocated pinned object %p, vtable: %p (%s), size: %zd\n", p, vtable, vtable->klass->name, size));
if (size > SGEN_MAX_SMALL_OBJ_SIZE)
- MONO_GC_MAJOR_OBJ_ALLOC_LARGE (p, size, vtable->klass->name_space, vtable->klass->name);
+ MONO_GC_MAJOR_OBJ_ALLOC_LARGE ((mword)p, size, vtable->klass->name_space, vtable->klass->name);
else
- MONO_GC_MAJOR_OBJ_ALLOC_PINNED (p, size, vtable->klass->name_space, vtable->klass->name);
+ MONO_GC_MAJOR_OBJ_ALLOC_PINNED ((mword)p, size, vtable->klass->name_space, vtable->klass->name);
binary_protocol_alloc_pinned (p, vtable, size);
mono_atomic_store_seq (p, vtable);
}
if (G_UNLIKELY (MONO_GC_OBJ_MOVED_ENABLED ())) {
int dest_gen = sgen_ptr_in_nursery (destination) ? GENERATION_NURSERY : GENERATION_OLD;
int src_gen = sgen_ptr_in_nursery (obj) ? GENERATION_NURSERY : GENERATION_OLD;
- MONO_GC_OBJ_MOVED (destination, obj, dest_gen, src_gen, objsize, vt->klass->name_space, vt->klass->name);
+ MONO_GC_OBJ_MOVED ((mword)destination, (mword)obj, dest_gen, src_gen, objsize, vt->klass->name_space, vt->klass->name);
}
if (objsize <= sizeof (gpointer) * 8) {
if (G_UNLIKELY (MONO_GC_OBJ_PINNED_ENABLED ())) {
int gen = sgen_ptr_in_nursery (search_start) ? GENERATION_NURSERY : GENERATION_OLD;
MonoVTable *vt = (MonoVTable*)LOAD_VTABLE (search_start);
- MONO_GC_OBJ_PINNED (search_start, sgen_safe_object_get_size (search_start), vt->klass->name_space, vt->klass->name, gen);
+ MONO_GC_OBJ_PINNED ((mword)search_start, sgen_safe_object_get_size (search_start), vt->klass->name_space, vt->klass->name, gen);
}
pin_object (search_start);
GRAY_OBJECT_ENQUEUE (queue, search_start);
if (G_UNLIKELY (MONO_GC_OBJ_PINNED_ENABLED ())) {
int gen = sgen_ptr_in_nursery (object) ? GENERATION_NURSERY : GENERATION_OLD;
MonoVTable *vt = (MonoVTable*)LOAD_VTABLE (object);
- MONO_GC_OBJ_PINNED (object, sgen_safe_object_get_size (object), vt->klass->name_space, vt->klass->name, gen);
+ MONO_GC_OBJ_PINNED ((mword)object, sgen_safe_object_get_size (object), vt->klass->name_space, vt->klass->name, gen);
}
}
binary_protocol_pin (bigobj->data, (gpointer)LOAD_VTABLE (bigobj->data), safe_object_get_size (bigobj->data));
if (G_UNLIKELY (MONO_GC_OBJ_PINNED_ENABLED ())) {
MonoVTable *vt = (MonoVTable*)LOAD_VTABLE (bigobj->data);
- MONO_GC_OBJ_PINNED (bigobj->data, sgen_safe_object_get_size ((MonoObject*)bigobj->data), vt->klass->name_space, vt->klass->name, GENERATION_OLD);
+ MONO_GC_OBJ_PINNED ((mword)bigobj->data, sgen_safe_object_get_size ((MonoObject*)bigobj->data), vt->klass->name_space, vt->klass->name, GENERATION_OLD);
}
pin_object (bigobj->data);
/* FIXME: only enqueue if object has references */
binary_protocol_pin (obj, (gpointer)SGEN_LOAD_VTABLE (obj), sgen_safe_object_get_size ((MonoObject*)obj));
if (G_UNLIKELY (MONO_GC_OBJ_PINNED_ENABLED ())) {
MonoVTable *vt = (MonoVTable*)SGEN_LOAD_VTABLE (obj);
- MONO_GC_OBJ_PINNED (obj, sgen_safe_object_get_size (obj), vt->klass->name_space, vt->klass->name, GENERATION_OLD);
+ MONO_GC_OBJ_PINNED ((mword)obj, sgen_safe_object_get_size (obj), vt->klass->name_space, vt->klass->name, GENERATION_OLD);
}
SGEN_PIN_OBJECT (obj);
/* FIXME: only enqueue if object has references */
* will also benefit?
*/
binary_protocol_empty (obj, block->obj_size);
- MONO_GC_MAJOR_SWEEPED (obj, block->obj_size);
+ MONO_GC_MAJOR_SWEEPED ((mword)obj, block->obj_size);
memset (obj, 0, block->obj_size);
}
*(void**)obj = block->free_list;
if (ptr) {
SGEN_ATOMIC_ADD_P (total_alloc, size);
if (is_heap_memory)
- MONO_GC_HEAP_ALLOC (ptr, size);
+ MONO_GC_HEAP_ALLOC ((mword)ptr, size);
}
return ptr;
}
if (ptr) {
SGEN_ATOMIC_ADD_P (total_alloc, size);
if (is_heap_memory)
- MONO_GC_HEAP_ALLOC (ptr, size);
+ MONO_GC_HEAP_ALLOC ((mword)ptr, size);
}
return ptr;
}
mono_vfree (addr, size);
SGEN_ATOMIC_ADD_P (total_alloc, -size);
if (is_heap_memory)
- MONO_GC_HEAP_FREE (addr, size);
+ MONO_GC_HEAP_FREE ((mword)addr, size);
}
int64_t
{
DEBUG (4, fprintf (gc_debug_file, "Found empty fragment: %p-%p, size: %zd\n", frag_start, frag_end, frag_size));
binary_protocol_empty (frag_start, frag_size);
- MONO_GC_NURSERY_SWEEPED (frag_start, frag_end - frag_start);
+ MONO_GC_NURSERY_SWEEPED ((mword)frag_start, frag_end - frag_start);
/* Not worth dealing with smaller fragments: need to tune */
if (frag_size >= SGEN_MAX_NURSERY_WASTE) {
/* memsetting just the first chunk start is bound to provide better cache locality */