gboolean emulate = FALSE;
/* FIXME: Instead of = NOP, don't emit the original ins at all */
-
-#ifdef MONO_ARCH_HAVE_DECOMPOSE_OPTS
mono_arch_decompose_opts (cfg, ins);
-#endif
/*
* The code below assumes that we are called immediately after emitting
cfg->exception_message = g_strdup_printf ("float conv.ovf.un opcodes not supported.");
break;
-#if defined(MONO_ARCH_EMULATE_DIV) && defined(MONO_ARCH_HAVE_OPCODE_NEEDS_EMULATION)
+#if defined(MONO_ARCH_EMULATE_DIV)
case OP_IDIV:
case OP_IREM:
case OP_IDIV_UN:
MONO_EMIT_NEW_UNALU (cfg, OP_ICEQ, reg2, -1);
MONO_EMIT_NEW_BIALU (cfg, OP_IAND, reg1, reg1, reg2);
MONO_EMIT_NEW_ICOMPARE_IMM (cfg, reg1, 1);
- MONO_EMIT_NEW_COND_EXC (cfg, IEQ, "DivideByZeroException");
+ MONO_EMIT_NEW_COND_EXC (cfg, IEQ, "OverflowException");
}
#endif
MONO_EMIT_NEW_BIALU (cfg, ins->opcode, ins->dreg, ins->sreg1, ins->sreg2);
}
}
- call = mono_emit_native_call (cfg, mono_icall_get_wrapper (info), info->sig, args);
+ call = mono_emit_jit_icall_by_info (cfg, info, args);
call->dreg = ins->dreg;
NULLIFY_INS (ins);
cfg->cbb->code = cfg->cbb->last_ins = NULL;
while (tree) {
-
-#ifdef MONO_ARCH_HAVE_DECOMPOSE_LONG_OPTS
mono_arch_decompose_long_opts (cfg, tree);
-#endif
switch (tree->opcode) {
case OP_I8CONST: