In corlib/System.Runtime.InteropServices:
[mono.git] / mono / mini / regalloc.h
index 7147db5b57ea1bb04b5a49b6cce9fab6dd523423..e2f702e8f6ce20258179a531f008dc74b3309d87 100644 (file)
@@ -16,8 +16,7 @@ enum {
 
 typedef struct {
        /* symbolic registers */
-       int next_vireg;
-       int next_vfreg;
+       int next_vreg;
 
        /* hard registers */
        int num_iregs;
@@ -31,29 +30,24 @@ typedef struct {
         * If the register is spilled, then this contains -spill - 1, where 'spill'
         * is the index of the spill variable.
         */
-       int *iassign;
-       int *fassign;
+       int *vassign;
 
        /* hard -> symbolic */
        int isymbolic [MONO_MAX_IREGS];
        int fsymbolic [MONO_MAX_FREGS];
 
-       int max_ireg;
        int ispills;
+
+       int vassign_size;
 } MonoRegState;
 
-#define mono_regstate_next_int(rs)   ((rs)->next_vireg++)
-#define mono_regstate_next_float(rs) ((rs)->next_vfreg++)
+#define mono_regstate_next_int(rs)   ((rs)->next_vreg++)
+#define mono_regstate_next_float(rs) ((rs)->next_vreg++)
 
 
-MonoRegState* mono_regstate_new (void);
+MonoRegState* mono_regstate_new (void) MONO_INTERNAL;
 
-void          mono_regstate_free      (MonoRegState *rs);
-void          mono_regstate_reset     (MonoRegState *rs);
-void          mono_regstate_assign    (MonoRegState *rs);
-int           mono_regstate_alloc_int   (MonoRegState *rs, regmask_t allow);
-void          mono_regstate_free_int  (MonoRegState *rs, int reg);
-int           mono_regstate_alloc_float (MonoRegState *rs, regmask_t allow);
-void          mono_regstate_free_float  (MonoRegState *rs, int reg);
-inline int    mono_regstate_next_long (MonoRegState *rs);
+void          mono_regstate_free      (MonoRegState *rs) MONO_INTERNAL;
+void          mono_regstate_reset     (MonoRegState *rs) MONO_INTERNAL;
+inline int    mono_regstate_next_long (MonoRegState *rs) MONO_INTERNAL;