• 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
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-api-tests Loading commit data...
wasm-js Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
OWNERS Loading commit data...