diff options
author | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2015-07-28 22:40:50 -0400 |
---|---|---|
committer | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2015-09-15 23:01:29 -0400 |
commit | fd964388f76443a46f6f091c2aa64cb4e62341e6 (patch) | |
tree | ca7a1d63b85d22d53dc62e60032f95885a0aab27 /lisc/main.c | |
parent | 5f14d7fd7c514a9d6c34803407c579bc17438ef0 (diff) | |
download | roux-fd964388f76443a46f6f091c2aa64cb4e62341e6.tar.gz |
add a code emitter for at&t syntax
Diffstat (limited to 'lisc/main.c')
-rw-r--r-- | lisc/main.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lisc/main.c b/lisc/main.c index d3688ad..81bbb72 100644 --- a/lisc/main.c +++ b/lisc/main.c @@ -113,6 +113,28 @@ main(int ac, char *av[]) goto RPODump; break; } + case 'e': { + int n; + + fprintf(stderr, "[Testing Code Emission]\n"); + fillrpo(fn); + fillpreds(fn); + filllive(fn); + fillcost(fn); + spill(fn); + rega(fn); + fillrpo(fn); + assert(fn->rpo[0] == fn->start); + for (n=0;; n++) + if (n == fn->nblk-1) { + fn->rpo[n]->link = 0; + break; + } else + fn->rpo[n]->link = fn->rpo[n+1]; + emitfn(fn, stdout); + pr = 0; + break; + } default: break; } |