• Ng Zhi An's avatar
    Reland "[wasm-simd][x64][ia32] Factor f64x2.replace_lane into shared code" · f9a2435a
    Ng Zhi An authored
    This is a reland of 3356078a.
    
    The fix is in PS2:
    - fix the DCHECK to be triggered only if dst != src, the dcheck
      is meant to prevent rep from being overwritten, which happens only
      if dst != src
    - fix instruction selector for f64x2.replace_lane, require SameAsFirst
      only for non-AVX, which makes dst == src, saving a move
    - on x64 we also require all registers, since the macro-assembler
      helper only handles registers
    
    Original change's description:
    > [wasm-simd][x64][ia32] Factor f64x2.replace_lane into shared code
    >
    > This pblendw/movlhps combination has lower latency and requires less
    > unop than pinsrq (1 v.s. 2).
    >
    > Bug: v8:11589
    > Change-Id: I770b0c20a286774afefbac5ef0adffe463318f21
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2828871
    > Reviewed-by: Bill Budge <bbudge@chromium.org>
    > Commit-Queue: Zhi An Ng <zhin@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#74049}
    
    Bug: v8:11589
    Change-Id: I51cba0539d5241242dc4d7d971ede1940b9ac1fd
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2842264
    Commit-Queue: Zhi An Ng <zhin@chromium.org>
    Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#74545}
    f9a2435a
macro-assembler-shared-ia32-x64.cc 18 KB