mirror of
git://c9x.me/qbe.git
synced 2026-04-06 18:39:48 +00:00
fix some instruction emitting code
This commit is contained in:
parent
73add5daae
commit
226bbb5b71
@ -26,7 +26,7 @@ emit(short op, Ref to, Ref arg0, Ref arg1)
|
|||||||
{
|
{
|
||||||
if (curi == insb)
|
if (curi == insb)
|
||||||
diag("isel: too many instructions");
|
diag("isel: too many instructions");
|
||||||
*curi-- = (Ins){op, to, {arg0, arg1}};
|
*--curi = (Ins){op, to, {arg0, arg1}};
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -84,12 +84,11 @@ isel(Fn *fn)
|
|||||||
|
|
||||||
t0 = fn->ntmp;
|
t0 = fn->ntmp;
|
||||||
for (b=fn->start; b; b=b->link) {
|
for (b=fn->start; b; b=b->link) {
|
||||||
curi = &insb[NIns-1];
|
curi = &insb[NIns];
|
||||||
for (i=&b->ins[b->nins]; i!=b->ins;) {
|
for (i=&b->ins[b->nins]; i!=b->ins;) {
|
||||||
sel(--i, fn);
|
sel(--i, fn);
|
||||||
}
|
}
|
||||||
nins = &insb[NIns-1] - curi;
|
nins = &insb[NIns] - curi;
|
||||||
curi++;
|
|
||||||
free(b->ins);
|
free(b->ins);
|
||||||
b->ins = alloc(nins * sizeof b->ins[0]);
|
b->ins = alloc(nins * sizeof b->ins[0]);
|
||||||
memcpy(b->ins, curi, nins * sizeof b->ins[0]);
|
memcpy(b->ins, curi, nins * sizeof b->ins[0]);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user