2008-03-02 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Sun, 2 Mar 2008 20:50:07 +0000 (20:50 -0000)
committerZoltan Varga <vargaz@gmail.com>
Sun, 2 Mar 2008 20:50:07 +0000 (20:50 -0000)
* mini-amd64.c (mono_arch_emit_prolog): Fix tracing after the last change.

svn path=/trunk/mono/; revision=97159

mono/mini/ChangeLog
mono/mini/mini-amd64.c

index 31a3ad6dbb25b5bff83c8b81723d70c3e0834f91..6b7efe54721159c901d181c8a85e62097d384854 100644 (file)
@@ -1,5 +1,7 @@
 2008-03-02  Zoltan Varga  <vargaz@gmail.com>
 
+       * mini-amd64.c (mono_arch_emit_prolog): Fix tracing after the last change.
+       
        * mini-amd64.c (mono_arch_emit_prolog): Avoid saving dead arguments.
 
        * mini.c (mono_method_check_inlining): Avoid disabling inlining for methods
index 89c27b646a1ac188b0cf8d80bf098c8ad393ceab..ce6cbc8215b0d051fa8ded9907f6b3804f00eb04 100644 (file)
@@ -4505,11 +4505,15 @@ mono_arch_emit_prolog (MonoCompile *cfg)
        CallInfo *cinfo;
        gint32 lmf_offset = cfg->arch.lmf_offset;
        gboolean args_clobbered = FALSE;
+       gboolean trace = FALSE;
 
        cfg->code_size =  MAX (((MonoMethodNormal *)method)->header->code_size * 4, 10240);
 
        code = cfg->native_code = g_malloc (cfg->code_size);
 
+       if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
+               trace = TRUE;
+
        /* Amount of stack space allocated by register saving code */
        pos = 0;
 
@@ -4665,7 +4669,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
 
                ins = cfg->args [i];
 
-               if (ins->flags & MONO_INST_IS_DEAD)
+               if ((ins->flags & MONO_INST_IS_DEAD) && !trace)
                        /* Unused arguments */
                        continue;
 
@@ -4824,7 +4828,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
                }
        }
 
-       if (mono_jit_trace_calls != NULL && mono_trace_eval (method)) {
+       if (trace) {
                args_clobbered = TRUE;
                code = mono_arch_instrument_prolog (cfg, mono_trace_enter_method, code, TRUE);
        }