]> Cypherpunks repositories - gostls13.git/commitdiff
fixed typo where output arguments where pushed on to R0
authorKai Backman <kaib@golang.org>
Mon, 13 Jul 2009 05:12:33 +0000 (22:12 -0700)
committerKai Backman <kaib@golang.org>
Mon, 13 Jul 2009 05:12:33 +0000 (22:12 -0700)
instead of SP.

R=rsc
APPROVED=rsc
DELTA=13  (3 added, 7 deleted, 3 changed)
OCL=31488
CL=31501

src/cmd/5g/gsubr.c

index aea27f18d0172a937a33b604e15410ae571fa9b6..999592bf202db48687e895e0ef8efdddf5a682a4 100644 (file)
@@ -351,7 +351,7 @@ nodarg(Type *t, int fp)
                        fatal("nodarg: bad struct");
                if(first->width == BADWIDTH)
                        fatal("nodarg: offset not computed for %T", t);
-               n->xoffset = first->width;
+               n->xoffset = first->width + 4;
                n->addable = 1;
                goto fp;
        }
@@ -364,26 +364,22 @@ nodarg(Type *t, int fp)
        n->sym = t->sym;
        if(t->width == BADWIDTH)
                fatal("nodarg: offset not computed for %T", t);
-       n->xoffset = t->width;
+       n->xoffset = t->width + 4;
        n->addable = 1;
 
 fp:
        switch(fp) {
+       default:
+               fatal("nodarg %T %d", t, fp);
+
        case 0:         // output arg
                n->op = OINDREG;
-               n->val.u.reg = REGRET;
+               n->val.u.reg = REGSP;
                break;
 
        case 1:         // input arg
                n->class = PPARAM;
                break;
-
-       case 2:         // offset output arg
-fatal("shouldnt be used");
-               n->op = OINDREG;
-               n->val.u.reg = REGSP;
-               n->xoffset += types[tptr]->width;
-               break;
        }
        return n;
 }