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) ...@@ -351,7 +351,7 @@ nodarg(Type *t, int fp)
fatal("nodarg: bad struct"); fatal("nodarg: bad struct");
if(first->width == BADWIDTH) if(first->width == BADWIDTH)
fatal("nodarg: offset not computed for %T", t); fatal("nodarg: offset not computed for %T", t);
n->xoffset = first->width; n->xoffset = first->width + 4;
n->addable = 1; n->addable = 1;
goto fp; goto fp;
} }
...@@ -364,26 +364,22 @@ nodarg(Type *t, int fp) ...@@ -364,26 +364,22 @@ nodarg(Type *t, int fp)
n->sym = t->sym; n->sym = t->sym;
if(t->width == BADWIDTH) if(t->width == BADWIDTH)
fatal("nodarg: offset not computed for %T", t); fatal("nodarg: offset not computed for %T", t);
n->xoffset = t->width; n->xoffset = t->width + 4;
n->addable = 1; n->addable = 1;
fp: fp:
switch(fp) { switch(fp) {
default:
fatal("nodarg %T %d", t, fp);
case 0: // output arg case 0: // output arg
n->op = OINDREG; n->op = OINDREG;
n->val.u.reg = REGRET; n->val.u.reg = REGSP;
break; break;
case 1: // input arg case 1: // input arg
n->class = PPARAM; n->class = PPARAM;
break; 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; 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