mirror of
git://c9x.me/qbe.git
synced 2026-04-06 02:19:47 +00:00
The first one was not so bad, when we a parallel move clobbers one machine register in use, we used to free the temporary t* using it, mark the register as unavailable and allocate a new location for the t*. But this fails when all the registers are in use. In that case, the destination of the move must be in a register r1, so I require a swap of the register to copy (used by t*) with r1 and update the map accordingly. I would like to move all the above logic in a function dealing with clobbers in general. The second bug is in the parallel move compiler, this one was a little more nasty and could have caused much debugging pain. It would be reasonable to test it in a similar way that I did for the slota() allocator. |
||
|---|---|---|
| .. | ||
| test | ||
| tools | ||
| .gitignore | ||
| .tag | ||
| ABI | ||
| emit.c | ||
| isel.c | ||
| lisc.h | ||
| live.c | ||
| main.c | ||
| Makefile | ||
| parse.c | ||
| rega.c | ||
| spill.c | ||
| ssa.c | ||