Xamarin Public Jenkins c042cd0c52 Imported Upstream version 4.2.0.179
Former-commit-id: 4610231f55806d2a05ed69e5ff3faa7336cc1479
2015-11-10 15:03:43 +00:00

34 lines
917 B
C

#ifndef __MONO_MINI_GC_H__
#define __MONO_MINI_GC_H__
#include "mini.h"
/*
* The GC type of a stack slot or register.
* This can change through the method as follows:
* - a SLOT_REF can become SLOT_NOREF and vice-versa when it becomes live/dead.
* - a SLOT_PIN can become SLOT_REF after it has been definitely assigned.
*/
typedef enum {
/* Stack slot doesn't contain a reference */
SLOT_NOREF = 0,
/* Stack slot contains a reference */
SLOT_REF = 1,
/* No info or managed pointer, slot needs to be scanned conservatively */
SLOT_PIN = 2
} GCSlotType;
void mini_gc_init (void);
void mini_gc_init_cfg (MonoCompile *cfg);
void mini_gc_enable_gc_maps_for_aot (void);
void mini_gc_create_gc_map (MonoCompile *cfg);
void mini_gc_set_slot_type_from_fp (MonoCompile *cfg, int slot_offset, GCSlotType type);
void mini_gc_set_slot_type_from_cfa (MonoCompile *cfg, int slot_offset, GCSlotType type);
#endif