Commit 2ae3fa50 authored by Milad Farazmand's avatar Milad Farazmand Committed by Commit Bot

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

Port aa5bcc09

Original Commit Message:

    This relands commit d04b5e47.

    The fix here is in the assembler for pmovmskb, emit_optional_rex_32 should be
    called after emitting the prefix byte.

    Original change's description:
    > [wasm-simd][liftoff][ia32][x64] Implement bitmask
    >
    > Implements i8x16 i16x8 i32x4 bitmask.
    >
    > This was merged into the proposal in
    > https://github.com/WebAssembly/simd/pull/201/.
    >
    > Bug: v8:9909,v8:10308
    > Change-Id: I882f0c2697213cdf593e745112e0897cee252009
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2222607
    > Commit-Queue: Zhi An Ng <zhin@chromium.org>
    > Reviewed-by: Clemens Backes <clemensb@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#68090}

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

Change-Id: Id73795d3628067199ac6ac592a9b0b1c57fc65a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2226311Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#68109}
parent ad54f1bb
...@@ -782,6 +782,11 @@ void LiftoffAssembler::emit_v32x4_alltrue(LiftoffRegister dst, ...@@ -782,6 +782,11 @@ void LiftoffAssembler::emit_v32x4_alltrue(LiftoffRegister dst,
bailout(kSimd, "v32x4_alltrue"); bailout(kSimd, "v32x4_alltrue");
} }
void LiftoffAssembler::emit_i32x4_bitmask(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_bitmask");
}
void LiftoffAssembler::emit_i32x4_shl(LiftoffRegister dst, LiftoffRegister lhs, void LiftoffAssembler::emit_i32x4_shl(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i32x4_shl"); bailout(kSimd, "i32x4_shl");
...@@ -873,6 +878,11 @@ void LiftoffAssembler::emit_v16x8_alltrue(LiftoffRegister dst, ...@@ -873,6 +878,11 @@ void LiftoffAssembler::emit_v16x8_alltrue(LiftoffRegister dst,
bailout(kSimd, "v16x8_alltrue"); bailout(kSimd, "v16x8_alltrue");
} }
void LiftoffAssembler::emit_i16x8_bitmask(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_bitmask");
}
void LiftoffAssembler::emit_i16x8_shl(LiftoffRegister dst, LiftoffRegister lhs, void LiftoffAssembler::emit_i16x8_shl(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i16x8_shl"); bailout(kSimd, "i16x8_shl");
...@@ -1020,6 +1030,11 @@ void LiftoffAssembler::emit_v8x16_alltrue(LiftoffRegister dst, ...@@ -1020,6 +1030,11 @@ void LiftoffAssembler::emit_v8x16_alltrue(LiftoffRegister dst,
bailout(kSimd, "v8x16_alltrue"); bailout(kSimd, "v8x16_alltrue");
} }
void LiftoffAssembler::emit_i8x16_bitmask(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i8x16_bitmask");
}
void LiftoffAssembler::emit_i8x16_shl(LiftoffRegister dst, LiftoffRegister lhs, void LiftoffAssembler::emit_i8x16_shl(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i8x16_shl"); bailout(kSimd, "i8x16_shl");
......
...@@ -786,6 +786,11 @@ void LiftoffAssembler::emit_v32x4_alltrue(LiftoffRegister dst, ...@@ -786,6 +786,11 @@ void LiftoffAssembler::emit_v32x4_alltrue(LiftoffRegister dst,
bailout(kSimd, "v32x4_alltrue"); bailout(kSimd, "v32x4_alltrue");
} }
void LiftoffAssembler::emit_i32x4_bitmask(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i32x4_bitmask");
}
void LiftoffAssembler::emit_i32x4_shl(LiftoffRegister dst, LiftoffRegister lhs, void LiftoffAssembler::emit_i32x4_shl(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i32x4_shl"); bailout(kSimd, "i32x4_shl");
...@@ -877,6 +882,11 @@ void LiftoffAssembler::emit_v16x8_alltrue(LiftoffRegister dst, ...@@ -877,6 +882,11 @@ void LiftoffAssembler::emit_v16x8_alltrue(LiftoffRegister dst,
bailout(kSimd, "v16x8_alltrue"); bailout(kSimd, "v16x8_alltrue");
} }
void LiftoffAssembler::emit_i16x8_bitmask(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i16x8_bitmask");
}
void LiftoffAssembler::emit_i16x8_shl(LiftoffRegister dst, LiftoffRegister lhs, void LiftoffAssembler::emit_i16x8_shl(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i16x8_shl"); bailout(kSimd, "i16x8_shl");
...@@ -1030,6 +1040,11 @@ void LiftoffAssembler::emit_v8x16_alltrue(LiftoffRegister dst, ...@@ -1030,6 +1040,11 @@ void LiftoffAssembler::emit_v8x16_alltrue(LiftoffRegister dst,
bailout(kSimd, "v8x16_alltrue"); bailout(kSimd, "v8x16_alltrue");
} }
void LiftoffAssembler::emit_i8x16_bitmask(LiftoffRegister dst,
LiftoffRegister src) {
bailout(kSimd, "i8x16_bitmask");
}
void LiftoffAssembler::emit_i8x16_shl(LiftoffRegister dst, LiftoffRegister lhs, void LiftoffAssembler::emit_i8x16_shl(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) { LiftoffRegister rhs) {
bailout(kSimd, "i8x16_shl"); bailout(kSimd, "i8x16_shl");
......
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