5 #if defined(__native_client__) && defined(__x86_64__)
6 typedef guint64 regmask_t;
8 typedef size_t regmask_t;
14 /* This is used only for allocating spill slots with GC tracking */
16 /* Ditto for managed pointers */
22 #ifdef MONO_ARCH_NEED_SIMD_BANK
23 #define MONO_NUM_REGBANKS 5
25 #define MONO_NUM_REGBANKS 4
29 /* symbolic registers */
33 regmask_t free_mask [MONO_NUM_REGBANKS];
35 /* symbolic -> hard register assignment */
37 * If the register is spilled, then this contains -spill - 1, where 'spill'
38 * is the index of the spill variable.
42 /* hard -> symbolic */
43 int isymbolic [MONO_MAX_IREGS];
44 int fsymbolic [MONO_MAX_FREGS];
45 #ifdef MONO_ARCH_NEED_SIMD_BANK
46 int xsymbolic [MONO_MAX_XREGS];
48 /* Points to the arrays above */
49 int *symbolic [MONO_NUM_REGBANKS];
54 MonoRegState* mono_regstate_new (void);
56 void mono_regstate_free (MonoRegState *rs);