New test + update.
[mono.git] / mono / mini / regalloc.c
1 /*
2  * regalloc.c: register state class
3  *
4  * Authors:
5  *    Paolo Molaro (lupus@ximian.com)
6  *
7  * (C) 2003 Ximian, Inc.
8  */
9 #include "mini.h"
10
11 MonoRegState*
12 mono_regstate_new (void)
13 {
14         MonoRegState* rs = g_new0 (MonoRegState, 1);
15
16         mono_regstate_reset (rs);
17
18         return rs;
19 }
20
21 void
22 mono_regstate_free (MonoRegState *rs) {
23         g_free (rs->vassign);
24         g_free (rs);
25 }
26
27 void
28 mono_regstate_reset (MonoRegState *rs) {
29         rs->next_vreg = MAX (MONO_MAX_IREGS, MONO_MAX_FREGS);
30 }
31
32 inline int
33 mono_regstate_next_long (MonoRegState *rs)
34 {
35         int rval = rs->next_vreg;
36
37         rs->next_vreg += 2;
38
39         return rval;
40 }
41