Author: lupus
Date: 2007-03-23 09:04:02 -0500 (Fri, 23 Mar 2007)
New Revision: 74871
Modified:
trunk/mono/mono/mini/mini-ppc.c
Log:
Saved buffer.
Modified: trunk/mono/mono/mini/mini-ppc.c
===================================================================
--- trunk/mono/mono/mini/mini-ppc.c 2007-03-23 12:32:08 UTC (rev 74870)
+++ trunk/mono/mono/mini/mini-ppc.c 2007-03-23 14:04:02 UTC (rev 74871)
@@ -1000,8 +1000,17 @@
if (arg->type == STACK_I8)
call->used_iregs |= 1 << (ainfo->reg +
1);
} else if (ainfo->regtype == RegTypeStructByAddr) {
- arg->backend.reg3 = ainfo->reg;
- call->used_iregs |= 1 << ainfo->reg;
+ if (ainfo->offset) {
+ MonoPPCArgInfo *ai =
mono_mempool_alloc0 (cfg->mempool, sizeof (MonoPPCArgInfo));
+ arg->opcode = OP_OUTARG_MEMBASE;
+ ai->reg = ainfo->reg;
+ ai->size = sizeof (gpointer);
+ ai->offset = ainfo->offset;
+ arg->backend.data = ai;
+ } else {
+ arg->backend.reg3 = ainfo->reg;
+ call->used_iregs |= 1 << ainfo->reg;
+ }
} else if (ainfo->regtype == RegTypeStructByVal) {
int cur_reg;
MonoPPCArgInfo *ai = mono_mempool_alloc0
(cfg->mempool, sizeof (MonoPPCArgInfo));
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches