diff options
author | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2015-07-15 13:23:37 -0400 |
---|---|---|
committer | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2015-09-15 23:01:28 -0400 |
commit | 7e53000a1fce22a89bdaa8b44df9ea23a4b8ce3e (patch) | |
tree | 0afa9b4cb1c3bb4dea994269e35197a5c1f75cad /lisc/ssa.c | |
parent | 60f60425cd1cd307cbf6012eb6d04115533ca094 (diff) | |
download | roux-7e53000a1fce22a89bdaa8b44df9ea23a4b8ce3e.tar.gz |
use argument array for all instructions
Diffstat (limited to 'lisc/ssa.c')
-rw-r--r-- | lisc/ssa.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lisc/ssa.c b/lisc/ssa.c index 637ac80..c08d6b1 100644 --- a/lisc/ssa.c +++ b/lisc/ssa.c @@ -156,10 +156,10 @@ ssafix(Fn *f, int t) } for (i=b->ins; i-b->ins < b->nins; i++) { if (t1) { - if (req(i->l, rt)) - i->l = SYM(t1); - if (req(i->r, rt)) - i->r = SYM(t1); + if (req(i->arg[0], rt)) + i->arg[0] = SYM(t1); + if (req(i->arg[1], rt)) + i->arg[1] = SYM(t1); } if (req(i->to, rt)) { t1 = f->ntmp++; @@ -177,10 +177,10 @@ ssafix(Fn *f, int t) if (req(p->arg[n], rt)) p->arg[n] = botdef(p->blk[n], f); for (i=b->ins; i-b->ins < b->nins; i++) { - if (req(i->l, rt)) - i->l = topdef(b, f); - if (req(i->r, rt)) - i->r = topdef(b, f); + if (req(i->arg[0], rt)) + i->arg[0] = topdef(b, f); + if (req(i->arg[1], rt)) + i->arg[1] = topdef(b, f); } if (req(b->jmp.arg, rt)) b->jmp.arg = topdef(b, f); @@ -190,6 +190,7 @@ ssafix(Fn *f, int t) if (!f->sym) abort(); for (t1=t0; t0<f->ntmp; t0++) { + f->sym[t0].type = STmp; snprintf(f->sym[t0].name, NString, "%s_%d", f->sym[t].name, t0-t1); } |