• Jakob Kummerow's avatar
    [wasm] Fix and harden all conditional tier-up checks · b9c4a849
    Jakob Kummerow authored
    This remodels the tier-up checks on loop back edges to avoid
    modifying the cache state by taking temp registers passed in
    from the caller, and not causing the instance to get cached.
    
    Additionally, this introduces FreezeCacheState scopes, which
    allow us to enforce that certain ranges don't cause any cache
    modifications. Conditional jumps require such a scope to be
    around, which should help ensure that we don't forget to add
    them to any future code we write.
    
    Drive-by cleanup: drop {pinned} lists from a few Load helper
    functions. They don't allocate registers (and shouldn't), so
    they don't need to know about pinned registers.
    
    Fixed: chromium:1339321
    Change-Id: I1c7660418a85259e96c5e0dcfeaf12dab2114e8c
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3724787Reviewed-by: 's avatarManos Koukoutos <manoskouk@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#81411}
    b9c4a849
liftoff-assembler.cc 52.4 KB