Commit 47513717 authored by Milad Farazmand's avatar Milad Farazmand Committed by Commit Bot

PPC/s390: Reland "[wasm-simd][liftoff][x64][ia32] Implement load extend"

Port 6b228044

Original Commit Message:

    This is a reland of dd19a400

    Original change's description:
    > [wasm-simd][liftoff][x64][ia32] Implement load extend
    >
    > The operations are implemented:
    >
    > - i16x8.load8x8_s
    > - i16x8.load8x8_u
    > - i32x4.load16x4_s
    > - i32x4.load16x4_u
    > - i64x2.load32x2_s
    > - i64x2.load32x2_u
    >
    > on x64 and i32. The rest of the arch currently bail out, and will be
    > implemented in subsequent patches.
    >
    > The liftoff-compiler.cc code looks very similar to the one for LoadMem,
    > the only difference is special handling of kSplat v.s. kExtend. kExtend
    > always loads 8 bytes, so the bounds check and tracing is different.
    > Compared to LoadMem there is less need for pinning, since the result is
    > always going to be in a SIMD/FP register, which is different from the
    > index/addr register.
    >
    > The enum LoadTransformationKind was moved from
    > function-body-decoder-impl.h to function-body-decoder.h so that no
    > unncessary header file inclusions were needed to liftoff, and also it's
    > a better place for it to live.
    >
    > Bug: v8:9909
    > Change-Id: I926bcc01c0c3c860223e8c08f91bc4ab3b75c399
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2203730
    > Commit-Queue: Zhi An Ng <zhin@chromium.org>
    > Reviewed-by: Clemens Backes <clemensb@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#67914}

R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I2745871868afc1e6120197ad3ad138c89d47521e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2210764Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#67933}
parent 0081768c
...@@ -539,6 +539,14 @@ void LiftoffAssembler::emit_f64_set_cond(Condition cond, Register dst, ...@@ -539,6 +539,14 @@ void LiftoffAssembler::emit_f64_set_cond(Condition cond, Register dst,
bailout(kUnsupportedArchitecture, "emit_f64_set_cond"); bailout(kUnsupportedArchitecture, "emit_f64_set_cond");
} }
void LiftoffAssembler::LoadTransform(LiftoffRegister dst, Register src_addr,
Register offset_reg, uint32_t offset_imm,
LoadType type,
LoadTransformationKind transform,
uint32_t* protected_load_pc) {
bailout(kSimd, "Load transform unimplemented");
}
void LiftoffAssembler::emit_f64x2_splat(LiftoffRegister dst, void LiftoffAssembler::emit_f64x2_splat(LiftoffRegister dst,
LiftoffRegister src) { LiftoffRegister src) {
bailout(kUnsupportedArchitecture, "emit_f64x2splat"); bailout(kUnsupportedArchitecture, "emit_f64x2splat");
......
...@@ -543,6 +543,14 @@ void LiftoffAssembler::emit_f64_set_cond(Condition cond, Register dst, ...@@ -543,6 +543,14 @@ void LiftoffAssembler::emit_f64_set_cond(Condition cond, Register dst,
bailout(kUnsupportedArchitecture, "emit_f64_set_cond"); bailout(kUnsupportedArchitecture, "emit_f64_set_cond");
} }
void LiftoffAssembler::LoadTransform(LiftoffRegister dst, Register src_addr,
Register offset_reg, uint32_t offset_imm,
LoadType type,
LoadTransformationKind transform,
uint32_t* protected_load_pc) {
bailout(kSimd, "Load transform unimplemented");
}
void LiftoffAssembler::emit_f64x2_splat(LiftoffRegister dst, void LiftoffAssembler::emit_f64x2_splat(LiftoffRegister dst,
LiftoffRegister src) { LiftoffRegister src) {
bailout(kUnsupportedArchitecture, "emit_f64x2splat"); bailout(kUnsupportedArchitecture, "emit_f64x2splat");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment