1. 01 Jun, 2021 1 commit
  2. 10 Sep, 2020 1 commit
  3. 04 Feb, 2020 1 commit
    • Ng Zhi An's avatar
      Reland "[wasm-simd][liftoff] Add S128 case for stack movements" · 06594a8d
      Ng Zhi An authored
      This relands commit 5cfe053e.
      
      Original change's description:
      > [wasm-simd][liftoff] Add S128 case for stack movements
      >
      > The two cases we are fixing here are Construct and
      > LoadCallerFrameSlot, which are closely related.
      >
      > Construct is called during PrepareCall, where we build up
      > LiftoffStackSlots when we need to move an arg from caller's stack frame
      > into callee's stack frame. LoadCallerFrameSlot is the parallel to
      > this, called in ProcessParameter during decoding of the callee's
      > function body.
      >
      > In most cases, Construct needs a new case to handle kWasmS128, and calls
      > the relevant assembler to push a s128 onto the stack.
      >
      > ARM64 requires 16-byte alignment of sp, so we need to Claim the right
      > number of kXRegSize slots first, which requires
      > us traversing the list of slots to figure out how many s128 values there
      > are. This is a straightforward way to fix this, if efficiency is a
      > problem, we can change LiftOffStackSlots::Add to sum up the slot sizes.
      >
      > On IA32, pushing s128 values will require 4 calls to push. Instead, we
      > use a sub and two movdqu, which will generate less code in most cases.
      >
      > On x64, there is no 128-bit push, so we call push twice.
      >
      > Bug: v8:9909
      > Change-Id: I3af35b8462ea9c3b9b2d90800c37d11b5e95be59
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2015945
      > Commit-Queue: Zhi An Ng <zhin@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#65956}
      
      Bug: v8:9909
      Change-Id: Icdaead289abe13faf75bb9e049929f7fd7c59a08
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2036760
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66119}
      06594a8d
  4. 23 Jan, 2020 2 commits
    • Clemens Backes's avatar
      Revert "[wasm-simd][liftoff] Add S128 case for stack movements" · f3a5c36a
      Clemens Backes authored
      This reverts commit 5cfe053e.
      
      Reason for revert: "liftoff-simd-params" also fails on no-sse :/
      
      Original change's description:
      > [wasm-simd][liftoff] Add S128 case for stack movements
      > 
      > The two cases we are fixing here are Construct and
      > LoadCallerFrameSlot, which are closely related.
      > 
      > Construct is called during PrepareCall, where we build up
      > LiftoffStackSlots when we need to move an arg from caller's stack frame
      > into callee's stack frame. LoadCallerFrameSlot is the parallel to
      > this, called in ProcessParameter during decoding of the callee's
      > function body.
      > 
      > In most cases, Construct needs a new case to handle kWasmS128, and calls
      > the relevant assembler to push a s128 onto the stack.
      > 
      > ARM64 requires 16-byte alignment of sp, so we need to Claim the right
      > number of kXRegSize slots first, which requires
      > us traversing the list of slots to figure out how many s128 values there
      > are. This is a straightforward way to fix this, if efficiency is a
      > problem, we can change LiftOffStackSlots::Add to sum up the slot sizes.
      > 
      > On IA32, pushing s128 values will require 4 calls to push. Instead, we
      > use a sub and two movdqu, which will generate less code in most cases.
      > 
      > On x64, there is no 128-bit push, so we call push twice.
      > 
      > Bug: v8:9909
      > Change-Id: I3af35b8462ea9c3b9b2d90800c37d11b5e95be59
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2015945
      > Commit-Queue: Zhi An Ng <zhin@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#65956}
      
      TBR=clemensb@chromium.org,zhin@chromium.org,joey.gouly@arm.com
      
      Change-Id: Ib3c5a088e2d85baf1d8b143272844fb5ebb33c57
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9909
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2017724Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65960}
      f3a5c36a
    • Ng Zhi An's avatar
      [wasm-simd][liftoff] Add S128 case for stack movements · 5cfe053e
      Ng Zhi An authored
      The two cases we are fixing here are Construct and
      LoadCallerFrameSlot, which are closely related.
      
      Construct is called during PrepareCall, where we build up
      LiftoffStackSlots when we need to move an arg from caller's stack frame
      into callee's stack frame. LoadCallerFrameSlot is the parallel to
      this, called in ProcessParameter during decoding of the callee's
      function body.
      
      In most cases, Construct needs a new case to handle kWasmS128, and calls
      the relevant assembler to push a s128 onto the stack.
      
      ARM64 requires 16-byte alignment of sp, so we need to Claim the right
      number of kXRegSize slots first, which requires
      us traversing the list of slots to figure out how many s128 values there
      are. This is a straightforward way to fix this, if efficiency is a
      problem, we can change LiftOffStackSlots::Add to sum up the slot sizes.
      
      On IA32, pushing s128 values will require 4 calls to push. Instead, we
      use a sub and two movdqu, which will generate less code in most cases.
      
      On x64, there is no 128-bit push, so we call push twice.
      
      Bug: v8:9909
      Change-Id: I3af35b8462ea9c3b9b2d90800c37d11b5e95be59
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2015945
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65956}
      5cfe053e