Merge pull request #451 from madewokherd/wrappertrace
[mono.git] / mono / mini / regalloc.c
index 3a0676407a1d725ec9630a44b4d6f06aef393bfd..4f39872e3024e5fbbd97b2e5f62cff4bef43e75e 100644 (file)
@@ -13,101 +13,16 @@ mono_regstate_new (void)
 {
        MonoRegState* rs = g_new0 (MonoRegState, 1);
 
-       mono_regstate_reset (rs);
+       rs->next_vreg = MAX (MONO_MAX_IREGS, MONO_MAX_FREGS);
+#ifdef MONO_ARCH_NEED_SIMD_BANK
+       rs->next_vreg = MAX (rs->next_vreg, MONO_MAX_XREGS);
+#endif
 
        return rs;
 }
 
 void
 mono_regstate_free (MonoRegState *rs) {
-       g_free (rs->iassign);
-       g_free (rs->fassign);
+       g_free (rs->vassign);
        g_free (rs);
 }
-
-void
-mono_regstate_reset (MonoRegState *rs) {
-       rs->next_vireg = MONO_MAX_IREGS;
-       rs->next_vfreg = MONO_MAX_FREGS;
-}
-
-void
-mono_regstate_assign (MonoRegState *rs) {
-       int i;
-       rs->max_ireg = -1;
-       g_free (rs->iassign);
-       rs->iassign = g_malloc (MAX (MONO_MAX_IREGS, rs->next_vireg) * sizeof (int));
-       for (i = 0; i < MONO_MAX_IREGS; ++i) {
-               rs->iassign [i] = i;
-               rs->isymbolic [i] = 0;
-       }
-       for (; i < rs->next_vireg; ++i)
-               rs->iassign [i] = -1;
-
-       g_free (rs->fassign);
-       rs->fassign = g_malloc (MAX (MONO_MAX_FREGS, rs->next_vfreg) * sizeof (int));
-       for (i = 0; i < MONO_MAX_FREGS; ++i) {
-               rs->fassign [i] = i;
-               rs->fsymbolic [i] = 0;
-       }
-       for (; i < rs->next_vfreg; ++i)
-               rs->fassign [i] = -1;
-}
-
-int
-mono_regstate_alloc_int (MonoRegState *rs, regmask_t allow)
-{
-       int i;
-       regmask_t mask = allow & rs->ifree_mask;
-       for (i = 0; i < MONO_MAX_IREGS; ++i) {
-               if (mask & ((regmask_t)1 << i)) {
-                       rs->ifree_mask &= ~ ((regmask_t)1 << i);
-                       rs->max_ireg = MAX (rs->max_ireg, i);
-                       return i;
-               }
-       }
-       return -1;
-}
-
-void
-mono_regstate_free_int (MonoRegState *rs, int reg)
-{
-       if (reg >= 0) {
-               rs->ifree_mask |= (regmask_t)1 << reg;
-               rs->isymbolic [reg] = 0;
-       }
-}
-
-int
-mono_regstate_alloc_float (MonoRegState *rs, regmask_t allow)
-{
-       int i;
-       regmask_t mask = allow & rs->ffree_mask;
-       for (i = 0; i < MONO_MAX_FREGS; ++i) {
-               if (mask & ((regmask_t)1 << i)) {
-                       rs->ffree_mask &= ~ ((regmask_t)1 << i);
-                       return i;
-               }
-       }
-       return -1;
-}
-
-void
-mono_regstate_free_float (MonoRegState *rs, int reg)
-{
-       if (reg >= 0) {
-               rs->ffree_mask |= (regmask_t)1 << reg;
-               rs->fsymbolic [reg] = 0;
-       }
-}
-
-inline int
-mono_regstate_next_long (MonoRegState *rs)
-{
-       int rval = rs->next_vireg;
-
-       rs->next_vireg += 2;
-
-       return rval;
-}
-