[wasm-simd] Force shuffle32x4 to use register for src1

Fixed: v8:9980
Bug: v8:9198
Change-Id: I26635302bb0c2a20bfd4ac6bb7f513f81c2f45f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1930068
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65130}
This commit is contained in:
Ng Zhi An 2019-11-22 13:38:56 -08:00 committed by Commit Bot
parent 6987ee4537
commit e87489667b

View File

@ -3245,8 +3245,12 @@ void InstructionSelector::VisitS8x16Shuffle(Node* node) {
opcode = kX64S32x4Shuffle;
no_same_as_first = true;
src0_needs_reg = false;
// TODO(v8:9083): src1 is used by pshufd in codegen, which requires
// memory to be 16-byte aligned, since we cannot guarantee that yet,
// force using a register here.
src1_needs_reg = true;
imms[imm_count++] = shuffle_mask;
int8_t blend_mask = PackBlend4(shuffle32x4);
uint8_t blend_mask = PackBlend4(shuffle32x4);
imms[imm_count++] = blend_mask;
}
}