-
+#if defined(__native_client__) && defined(__x86_64__)
+typedef guint64 regmask_t;
+#else
typedef size_t regmask_t;
+#endif
enum {
MONO_REG_INT,
MONO_REG_DOUBLE,
+ /* This is used only for allocating spill slots with GC tracking */
+ MONO_REG_INT_REF,
+ /* Ditto for managed pointers */
+ MONO_REG_INT_MP,
MONO_REG_SIMD
};
#ifdef MONO_ARCH_NEED_SIMD_BANK
-#define MONO_NUM_REGBANKS 3
+#define MONO_NUM_REGBANKS 5
#else
-#define MONO_NUM_REGBANKS 2
+#define MONO_NUM_REGBANKS 4
#endif
typedef struct {
* If the register is spilled, then this contains -spill - 1, where 'spill'
* is the index of the spill variable.
*/
- gint16 *vassign;
+ gint32 *vassign;
/* hard -> symbolic */
int isymbolic [MONO_MAX_IREGS];