Commit 092d6290 authored by Kai Backman's avatar Kai Backman

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
parent 7842b03f
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment