Merge pull request #1857 from slluis/fix-assembly-resolver
[mono.git] / mono / mini / mini-codegen.c
index a9c134cc4fe06b02f75e27763b679837622ad35d..4fde10b791fabbd369962c611d37f097cb6000d4 100644 (file)
@@ -650,6 +650,19 @@ mono_print_ins_index (int i, MonoInst *ins)
 
                        list = g_slist_next (list);
                }
+               list = call->out_freg_args;
+               while (list) {
+                       guint32 regpair;
+                       int reg, hreg;
+
+                       regpair = (guint32)(gssize)(list->data);
+                       hreg = regpair >> 24;
+                       reg = regpair & 0xffffff;
+
+                       printf (" [%s <- R%d]", mono_arch_fregname (hreg), reg);
+
+                       list = g_slist_next (list);
+               }
                break;
        }
        case OP_BR:
@@ -689,7 +702,7 @@ mono_print_ins_index (int i, MonoInst *ins)
                break;
        case OP_IL_SEQ_POINT:
        case OP_SEQ_POINT:
-               printf (" il: %x", (int)ins->inst_imm);
+               printf (" il: 0x%x%s", (int)ins->inst_imm, ins->flags & MONO_INST_NONEMPTY_STACK ? ", nonempty-stack" : "");
                break;
        default:
                break;
@@ -2760,4 +2773,23 @@ mini_type_is_hfa (MonoType *t, int *out_nfields, int *out_esize)
        return TRUE;
 }
 
+MonoRegState*
+mono_regstate_new (void)
+{
+       MonoRegState* rs = g_new0 (MonoRegState, 1);
+
+       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->vassign);
+       g_free (rs);
+}
+
 #endif /* DISABLE_JIT */