fixed typo where output arguments where pushed on to R0

instead of SP.

R=rsc
APPROVED=rsc
DELTA=13  (3 added, 7 deleted, 3 changed)
OCL=31488
CL=31501
This commit is contained in:
Kai Backman 2009-07-12 22:12:33 -07:00
parent 7842b03f70
commit 092d6290d0

View 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;
}