2004-09-05 Zoltan Varga <vargaz@freemail.hu>
authorZoltan Varga <vargaz@gmail.com>
Sat, 4 Sep 2004 21:43:49 +0000 (21:43 -0000)
committerZoltan Varga <vargaz@gmail.com>
Sat, 4 Sep 2004 21:43:49 +0000 (21:43 -0000)
* mini-amd64.c (mono_arch_instrument_prolog): Fix tracing support.

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

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

index ef5c5127d411a66ba4def90d3b0e85d9686f59ff..f83f74cc30ad615c1b737506cbc95ad7507db28b 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_instrument_prolog): Fix tracing support.
+
 2004-09-04  Zoltan Varga  <vargaz@freemail.hu>
 
        * mini-exceptions.c (mono_find_jit_info): Refactor common code from
index d27bb226597fbb3fd1095f1aeceb5643f26ef35e..572386e112e05f97039cc515478c8213c9b8881a 100644 (file)
@@ -5105,36 +5105,13 @@ mono_arch_instrument_prolog (MonoCompile *cfg, void *func, void *p, gboolean ena
                amd64_alu_reg_imm (code, X86_SUB, AMD64_RSP, stack_area);
 
                for (i = 0; i < n; ++i) {
-                       ArgInfo *ainfo = cinfo->args + i;
-                       gint32 stack_offset;
-                       MonoType *arg_type;
                        inst = cfg->varinfo [i];
 
-                       if (sig->hasthis && (i == 0))
-                               arg_type = &mono_defaults.object_class->byval_arg;
-                       else
-                               arg_type = sig->params [i - sig->hasthis];
-
-                       stack_offset = ainfo->offset + ARGS_OFFSET;
-
-                       switch (ainfo->storage) {
-                       case ArgInIReg:
-                               amd64_mov_membase_reg (code, AMD64_RSP, (i * 8), ainfo->reg, 8);                                
-                               break;
-                       case ArgInFloatSSEReg:
-                               amd64_movsd_membase_reg (code, AMD64_RSP, (i * 8), ainfo->reg);
-                               break;
-                       case ArgInDoubleSSEReg:
-                               amd64_movsd_membase_reg (code, AMD64_RSP, (i * 8), ainfo->reg);
-                               break;
-                       case ArgOnStack:
-                               /* Copy from original stack location to the argument area */
-                               /* FIXME: valuetypes etc */
+                       if (inst->opcode == OP_REGVAR)
+                               amd64_mov_membase_reg (code, AMD64_RSP, (i * 8), inst->dreg, 8);
+                       else {
                                amd64_mov_reg_membase (code, AMD64_R11, inst->inst_basereg, inst->inst_offset, 8);
                                amd64_mov_membase_reg (code, AMD64_RSP, (i * 8), AMD64_R11, 8);
-                               break;
-                       default:
-                               g_assert_not_reached ();
                        }
                }
        }