summary refs log tree commit diff
path: root/proto
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-08-20 13:38:32 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-09-15 23:01:32 -0400
commit7d36a71a2287e28312403ab12a6ca5b49c7a73b0 (patch)
treeaf2435fa5b5262dddeff3d0c15c57118a8b7a0dc /proto
parent1abed68cc3b14606d83d8b0ad7d2b5855c8801df (diff)
downloadroux-7d36a71a2287e28312403ab12a6ca5b49c7a73b0.tar.gz
fix two bugs in rega
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.
Diffstat (limited to 'proto')
0 files changed, 0 insertions, 0 deletions