typedef struct {
/* symbolic registers */
- int next_vireg;
- int next_vfreg;
+ int next_vreg;
/* hard registers */
int num_iregs;
* 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 iassign_size, fassign_size;
+ 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) MONO_INTERNAL;
void mono_regstate_free (MonoRegState *rs) MONO_INTERNAL;
void mono_regstate_reset (MonoRegState *rs) MONO_INTERNAL;
-void mono_regstate_assign (MonoRegState *rs) MONO_INTERNAL;
-int mono_regstate_alloc_int (MonoRegState *rs, regmask_t allow) MONO_INTERNAL;
-void mono_regstate_free_int (MonoRegState *rs, int reg) MONO_INTERNAL;
-int mono_regstate_alloc_float (MonoRegState *rs, regmask_t allow) MONO_INTERNAL;
-void mono_regstate_free_float (MonoRegState *rs, int reg) MONO_INTERNAL;
inline int mono_regstate_next_long (MonoRegState *rs) MONO_INTERNAL;