Merge pull request #1412 from esdrubal/stackframe
[mono.git] / mono / mini / mini-x86.c
index 5f589b258b8b1393229f1637569741eb7ea17926..e4415df43fafc31b378379671f8ff6abd6672305 100644 (file)
@@ -868,7 +868,7 @@ mono_arch_is_int_overflow (void *sigctx, void *info)
        MonoContext ctx;
        guint8* ip;
 
-       mono_arch_sigctx_to_monoctx (sigctx, &ctx);
+       mono_sigctx_to_monoctx (sigctx, &ctx);
 
        ip = (guint8*)ctx.eip;
 
@@ -1440,6 +1440,10 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                         * result there.
                         */
                        call->vret_in_reg = TRUE;
+#if defined(__APPLE__)
+                       if (cinfo->ret.pair_storage [0] == ArgOnDoubleFpStack || cinfo->ret.pair_storage [0] == ArgOnFloatFpStack)
+                               call->vret_in_reg_fp = TRUE;
+#endif
                        if (call->vret_var)
                                NULLIFY_INS (call->vret_var);
                }
@@ -2757,6 +2761,9 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                case OP_NOT_REACHED:
                case OP_NOT_NULL:
                        break;
+               case OP_IL_SEQ_POINT:
+                       mono_add_seq_point (cfg, bb, ins, code - cfg->native_code);
+                       break;
                case OP_SEQ_POINT: {
                        int i;
 
@@ -6097,8 +6104,7 @@ get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 *cod
                g_assert ((code - start) < code_reserve);
        }
 
-       nacl_global_codeman_validate(&start, code_reserve, &code);
-       mono_debug_add_delegate_trampoline (start, code - start);
+       nacl_global_codeman_validate (&start, code_reserve, &code);
 
        if (code_len)
                *code_len = code - start;