Skip to content
  • Julian Seward's avatar
    [project @ 2000-01-28 18:07:55 by sewardj] · c39373f1
    Julian Seward authored
    Modifications to make x86 register spilling to work reasonably.  It
    should work ok most of the time, although there is still a remote
    possibility that the allocator simply will be unable to complete
    spilling, and will just give up.
    
    -- Incrementally try with 0, 1, 2 and 3 spill regs, so as not to
       unduly restrict the supply of regs in code which doesn't need spilling.
    
    -- Remove the use of %ecx for shift values, so it is always available
       as the first-choice spill temporary.  For code which doesn't do
       int division, make %edx and %eax available for spilling too.
       Shifts by a non-constant amount (very rare) are now done by
       a short test-and-jump sequence, so that %ecx is not tied up.
    
    -- x86 FP: do sin, cos, tan in-line so we get the same answers as gcc.
    
    -- Moved a little code around to remove recursive dependencies.
    
    -- Fix a subtle bug in x86 regUsage, which could cause underestimation
       of live ranges.
    c39373f1