• Zhi An Ng's avatar
    Reland "[wasm-simd][ia32][x64] Only use registers for shuffles" · 45cb1ce0
    Zhi An Ng authored
    This is a reland of 3fb07882
    
    Original change's description:
    > [wasm-simd][ia32][x64] Only use registers for shuffles
    >
    > Shuffles have pattern matching clauses which, depending on the
    > instruction used, can require src0 or src1 to be register or not.
    > However we do not have 16-byte alignment for SIMD operands yet, so it
    > will segfault when we use an SSE SIMD instruction with unaligned
    > operands.
    >
    > This patch fixes all the shuffle cases to always use a register for the
    > input nodes, and it does so by ignoring the values of src0_needs_reg and
    > src1_needs_reg. When we eventually have memory alignment, we can
    > re-enable this check, without mucking around too much in the logic in
    > each shuffle match clause.
    >
    > Bug: v8:9198
    > Change-Id: I264e136f017353019f19954c62c88206f7b90656
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2504849
    > Reviewed-by: Andreas Haas <ahaas@chromium.org>
    > Reviewed-by: Adam Klein <adamk@chromium.org>
    > Commit-Queue: Adam Klein <adamk@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#70848}
    
    Bug: v8:9198
    Change-Id: I40c6c8f0cd8908a2d6ab7016d8ed4d4fb2ab4114
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505250Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
    Commit-Queue: Zhi An Ng <zhin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70862}
    45cb1ce0
instruction-selector-ia32.cc 108 KB