1 #if defined(__native_client__) && defined(__x86_64__)
2 typedef guint64 regmask_t;
4 typedef size_t regmask_t;
10 /* This is used only for allocating spill slots with GC tracking */
12 /* Ditto for managed pointers */
18 #ifdef MONO_ARCH_NEED_SIMD_BANK
19 #define MONO_NUM_REGBANKS 5
21 #define MONO_NUM_REGBANKS 4
25 /* symbolic registers */
29 regmask_t free_mask [MONO_NUM_REGBANKS];
31 /* symbolic -> hard register assignment */
33 * If the register is spilled, then this contains -spill - 1, where 'spill'
34 * is the index of the spill variable.
38 /* hard -> symbolic */
39 int isymbolic [MONO_MAX_IREGS];
40 int fsymbolic [MONO_MAX_FREGS];
41 #ifdef MONO_ARCH_NEED_SIMD_BANK
42 int xsymbolic [MONO_MAX_XREGS];
44 /* Points to the arrays above */
45 int *symbolic [MONO_NUM_REGBANKS];
50 MonoRegState* mono_regstate_new (void);
52 void mono_regstate_free (MonoRegState *rs);