Xamarin Public Jenkins (auto-signing) 966bba02bb Imported Upstream version 5.2.0.175
Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
2017-06-07 13:16:24 +00:00

38 lines
935 B
C

/**
* \file
*/
#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