• Clemens Backes's avatar
    [liftoff][x64] Fix bug in i32.atomic.sub32 · b5003a3c
    Clemens Backes authored
    {AtomicSub} on x64 first negates the {value} register, then does an
    atomic addition. For that reason, {value} should be a unique register.
    So far, we only checked that it's not used in the value stack, but we
    should also check for overlap with the destination address or the offset
    register.
    
    Drive-by: Remove unneeded handling of non-unique register index on arm,
    as that cannot happen (LiftoffCompiler ensures that the result register
    is unique).
    
    R=thibaudm@chromium.org
    
    Bug: chromium:1296876
    Change-Id: Ie6b97eec8e8dea07b0bcc644d261f47467cc5b8e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3487987Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79265}
    b5003a3c
liftoff-compiler.cc 277 KB