• Ng Zhi An's avatar
    Reland "[wasm-simd][arm] Use vmov to move all ones to register" · 9b9c6b0e
    Ng Zhi An authored
    This is a reland of 57242a05
    
    no-sse4.1 builds were failing due to missing simd-scalar-lowering
    for s128.const, this reland adds that implementation.
    
    Original change's description:
    > [wasm-simd][arm] Use vmov to move all ones to register
    >
    > vceq(dst, dst, dst) does not seem to always set the register to all
    > ones. The right way should be be to use vmov (immediate) anyway. This
    > was not supported in the assembler yet, so we need changes to the
    > assembler, diassembler, and simulator.
    >
    > There is an unfortunate fork in logic in the simulator, due to the way
    > the switches are set up, vmov (imm) logic is duplicated across two
    > different cases, because the switch looks at the top bit of the
    > immediate. Refactoring this will be a bigger change that is irrelevant
    > for this bug, so I'm putting that off for now. Instead we extract the
    > core of vmov (imm) into helpers and call it in the two cases.
    >
    > Bug: chromium:1112124
    > Change-Id: I283dbcd86cb0572e5ee720835f897b51fae96701
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2337503
    > Commit-Queue: Zhi An Ng <zhin@chromium.org>
    > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    > Reviewed-by: Bill Budge <bbudge@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#69315}
    
    Bug: chromium:1112124
    Change-Id: Id450e5cea41f7a569e49be8386a7788ca8f00658
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346937Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Zhi An Ng <zhin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69346}
    9b9c6b0e
simd-scalar-lowering.cc 73.5 KB