-
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: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65960}
f3a5c36a