cg tried to stack register parameters of moves, when
these registers were killed.
This commit is contained in:
parent
c1f3dbba33
commit
e7f7f33f60
1 changed files with 4 additions and 0 deletions
|
@ -96,7 +96,9 @@ move(tp1,tp2,ply,toplevel,maxcost) token_p tp1,tp2; unsigned maxcost; {
|
||||||
fakestack[stackheight] = *tp2;
|
fakestack[stackheight] = *tp2;
|
||||||
fakestack[stackheight+1] = *tp1;
|
fakestack[stackheight+1] = *tp1;
|
||||||
stackheight += 2;
|
stackheight += 2;
|
||||||
|
tokpatlen += 2;
|
||||||
t = codegen(&coderules[mp->m_cindex],ply,toplevel,maxcost,0);
|
t = codegen(&coderules[mp->m_cindex],ply,toplevel,maxcost,0);
|
||||||
|
tokpatlen -= 2;
|
||||||
stackheight -= 2;
|
stackheight -= 2;
|
||||||
return(t);
|
return(t);
|
||||||
}
|
}
|
||||||
|
@ -143,7 +145,9 @@ test(tp,ply,toplevel,maxcost) token_p tp; unsigned maxcost; {
|
||||||
|
|
||||||
fakestack[stackheight] = *tp;
|
fakestack[stackheight] = *tp;
|
||||||
stackheight++;
|
stackheight++;
|
||||||
|
tokpatlen++;
|
||||||
t = codegen(&coderules[mp->t_cindex],ply,toplevel,maxcost,0);
|
t = codegen(&coderules[mp->t_cindex],ply,toplevel,maxcost,0);
|
||||||
|
tokpatlen--;
|
||||||
stackheight--;
|
stackheight--;
|
||||||
return(t);
|
return(t);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue