• Thibaud Michaud's avatar
    [wasm] Keep call_indirect index on the stack · c2d46fe9
    Thibaud Michaud authored
    When a call_indirect fails because of a signature mismatch or a null
    target, the value stack generated for debug doesn't contain the target
    index anymore, which makes it hard for users to understand the error.
    
    Keep the index on the stack, and ensure that the index is not modified
    until we generate the debug info. Previously, the index was shifted
    in-place to compute various offsets. Instead, use scaled loads to
    compute the offset directly in the load instruction.
    
    R=clemensb@chromium.org
    
    Bug: chromium:1350384
    Change-Id: Iad5359ec80deef25a69ac119119a0b5ca559a336
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3854309Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82780}
    c2d46fe9
liftoff-assembler.h 84.5 KB