diff options
| author | Quentin Carbonneaux <[email protected]> | 2016-04-18 13:42:56 -0400 |
|---|---|---|
| committer | Quentin Carbonneaux <[email protected]> | 2016-04-18 13:44:41 -0400 |
| commit | 5873a7dc1e805b601c49f607fcb11692e3b5e74a (patch) | |
| tree | f95a657307803469d29e6e60d3f85e1c1094e7c4 /spill.c | |
| parent | 98c9cf29d337c4bc9aa483e8479c61584e0e09aa (diff) | |
make sure non-register temporaries get a slot
Inside the main instruction-processing loop, it is
taken care of by limit. However at block boundaries
we are doing fancy bitset operations without calling
limit.
Diffstat (limited to 'spill.c')
| -rw-r--r-- | spill.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -391,6 +391,9 @@ spill(Fn *fn) r = retregs(b->jmp.arg, 0); v->t[0] |= r; } + for (t=Tmp0; bsiter(b->out, &t); t++) + if (!bshas(v, t)) + slot(t); bscopy(b->out, v); /* 2. process the block instructions */ |
