Author: zoltan
Date: 2008-02-17 14:05:40 -0500 (Sun, 17 Feb 2008)
New Revision: 95994

Modified:
   trunk/mono/mono/mini/ChangeLog
   trunk/mono/mono/mini/mini-ia64.c
Log:
2008-02-17  Zoltan Varga  <[EMAIL PROTECTED]>

        * mini-ia64.c: Use cfg->vret_addr instead of cfg->ret.


Modified: trunk/mono/mono/mini/ChangeLog
===================================================================
--- trunk/mono/mono/mini/ChangeLog      2008-02-17 19:03:42 UTC (rev 95993)
+++ trunk/mono/mono/mini/ChangeLog      2008-02-17 19:05:40 UTC (rev 95994)
@@ -1,5 +1,7 @@
 2008-02-17  Zoltan Varga  <[EMAIL PROTECTED]>
 
+       * mini-ia64.c: Use cfg->vret_addr instead of cfg->ret.
+
        * mini-arm.h mini-arm.c: Use cfg->vret_addr instead of cfg->ret.
 
        * mini-sparc.c: Use cfg->vret_addr instead of cfg->ret. Name the 
MonoCompile

Modified: trunk/mono/mono/mini/mini-ia64.c
===================================================================
--- trunk/mono/mono/mini/mini-ia64.c    2008-02-17 19:03:42 UTC (rev 95993)
+++ trunk/mono/mono/mini/mini-ia64.c    2008-02-17 19:05:40 UTC (rev 95994)
@@ -817,8 +817,8 @@
                        cfg->ret->inst_c0 = cinfo->ret.reg;
                        break;
                case ArgValuetypeAddrInIReg:
-                       cfg->ret->opcode = OP_REGVAR;
-                       cfg->ret->inst_c0 = cfg->arch.reg_in0 + cinfo->ret.reg;
+                       cfg->vret_addr->opcode = OP_REGVAR;
+                       cfg->vret_addr->dreg = cfg->arch.reg_in0 + 
cinfo->ret.reg;
                        break;
                case ArgAggregate:
                        /* Allocate a local to hold the result, the epilog will 
copy it to the correct place */
@@ -949,6 +949,13 @@
 
        if (cinfo->ret.storage == ArgAggregate)
                cfg->ret_var_is_local = TRUE;
+       if (cinfo->ret.storage == ArgValuetypeAddrInIReg) {
+               cfg->vret_addr = mono_compile_create_var (cfg, 
&mono_defaults.int_class->byval_arg, OP_ARG);
+               if (G_UNLIKELY (cfg->verbose_level > 1)) {
+                       printf ("vret_addr = ");
+                       mono_print_ins (cfg->vret_addr);
+               }
+       }
 }
 
 static void

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to