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