• Clemens Hammacher's avatar
    [Liftoff] Fix register use count · ada64800
    Clemens Hammacher authored
    In {SetLocalFromStackSlot}, we decrement the use count of the register
    in the target slot without updating this slot, and then call
    {GetUnusedRegister}. At that point, the register use counts do not
    match the cache state, which leads to errors later on.
    This CL fixes this by marking the target slot as a stack slot after
    reducing the register use count.
    
    It also adds a Validation which helped to find that error and will
    catch similar errors earlier.
    
    R=titzer@chromium.org
    
    Bug: chromium:854050, v8:6600
    Change-Id: I74d3a5aa947ec4247d7b4557567f642bf4082316
    Reviewed-on: https://chromium-review.googlesource.com/1111958Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#53976}
    ada64800
liftoff-compiler.cc 79.3 KB