diff options
author | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2015-07-21 05:50:45 -0400 |
---|---|---|
committer | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2015-09-15 23:01:28 -0400 |
commit | 226bbb5b71174bf997c7ac91df73bcffa5b9c46d (patch) | |
tree | 30d0a08ab038f33fbcea34631d7a167b85635558 | |
parent | 73add5daaef5f6b764ac2ddf260b27f86d12e1af (diff) | |
download | roux-226bbb5b71174bf997c7ac91df73bcffa5b9c46d.tar.gz |
fix some instruction emitting code
-rw-r--r-- | lisc/isel.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lisc/isel.c b/lisc/isel.c index eff8d93..60cc2d5 100644 --- a/lisc/isel.c +++ b/lisc/isel.c @@ -26,7 +26,7 @@ emit(short op, Ref to, Ref arg0, Ref arg1) { if (curi == insb) diag("isel: too many instructions"); - *curi-- = (Ins){op, to, {arg0, arg1}}; + *--curi = (Ins){op, to, {arg0, arg1}}; } static void @@ -84,12 +84,11 @@ isel(Fn *fn) t0 = fn->ntmp; for (b=fn->start; b; b=b->link) { - curi = &insb[NIns-1]; + curi = &insb[NIns]; for (i=&b->ins[b->nins]; i!=b->ins;) { sel(--i, fn); } - nins = &insb[NIns-1] - curi; - curi++; + nins = &insb[NIns] - curi; free(b->ins); b->ins = alloc(nins * sizeof b->ins[0]); memcpy(b->ins, curi, nins * sizeof b->ins[0]); |