• Clemens Backes's avatar
    [wasm][arm64] Fix zero-extention of i32.load8_s · 748ae7cb
    Clemens Backes authored
    InstructionSelector::ZeroExtendsWord32ToWord64 assumes that a
    Load[kRepWord8|kTypeInt32] generates a zero-extended value. This
    assumption makes sense, but was not fulfilled by the instruction
    selector which emitted an "ldrsb" instruction which sign-extended to the
    full 64-bit register.
    
    This CL fixes that by introducing a separate "LdrsbW" instruction which
    is selected if we are sign-extending an 8-bit value to 32-bit.
    
    R=ahaas@chromium.org, mslekova@chromium.org
    CC=v8-arm-ports@googlegroups.com
    
    Bug: chromium:1239116
    Change-Id: I2da1ad6062805acf5558f3e66b8db9a50e830302
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3094011
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#76283}
    748ae7cb
instruction-codes-arm64.h 20.7 KB