From 539f479cfb6acfa5347e96fd1261c843719d96da Mon Sep 17 00:00:00 2001 From: Milad Fa Date: Fri, 26 Aug 2022 11:20:04 -0400 Subject: [PATCH] PPC [liftoff]: re-enable extract lane ops Intermittent issues were fixed here: crrev.com/c/3840820 Change-Id: If0e7acc57053ecfa188ca2c858029da7fdf4ff27 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3859519 Commit-Queue: Milad Farazmand Reviewed-by: Junliang Yan Cr-Commit-Position: refs/heads/main@{#82783} --- src/wasm/baseline/ppc/liftoff-assembler-ppc.h | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/wasm/baseline/ppc/liftoff-assembler-ppc.h b/src/wasm/baseline/ppc/liftoff-assembler-ppc.h index 810b224f76..0437113b74 100644 --- a/src/wasm/baseline/ppc/liftoff-assembler-ppc.h +++ b/src/wasm/baseline/ppc/liftoff-assembler-ppc.h @@ -1786,49 +1786,57 @@ void LiftoffAssembler::emit_i8x16_splat(LiftoffRegister dst, void LiftoffAssembler::emit_f64x2_extract_lane(LiftoffRegister dst, LiftoffRegister lhs, uint8_t imm_lane_idx) { - bailout(kUnsupportedArchitecture, "emit_f64x2extractlane"); + F64x2ExtractLane(dst.fp(), lhs.fp().toSimd(), imm_lane_idx, + kScratchSimd128Reg, r0); } void LiftoffAssembler::emit_f32x4_extract_lane(LiftoffRegister dst, LiftoffRegister lhs, uint8_t imm_lane_idx) { - bailout(kUnsupportedArchitecture, "emit_f32x4extractlane"); + F32x4ExtractLane(dst.fp(), lhs.fp().toSimd(), imm_lane_idx, + kScratchSimd128Reg, r0, ip); } void LiftoffAssembler::emit_i64x2_extract_lane(LiftoffRegister dst, LiftoffRegister lhs, uint8_t imm_lane_idx) { - bailout(kUnsupportedArchitecture, "emit_i64x2extractlane"); + I64x2ExtractLane(dst.gp(), lhs.fp().toSimd(), imm_lane_idx, + kScratchSimd128Reg); } void LiftoffAssembler::emit_i32x4_extract_lane(LiftoffRegister dst, LiftoffRegister lhs, uint8_t imm_lane_idx) { - bailout(kUnsupportedArchitecture, "emit_i32x4extractlane"); + I32x4ExtractLane(dst.gp(), lhs.fp().toSimd(), imm_lane_idx, + kScratchSimd128Reg); } void LiftoffAssembler::emit_i16x8_extract_lane_u(LiftoffRegister dst, LiftoffRegister lhs, uint8_t imm_lane_idx) { - bailout(kUnsupportedArchitecture, "emit_i16x8extractlane_u"); + I16x8ExtractLaneU(dst.gp(), lhs.fp().toSimd(), imm_lane_idx, + kScratchSimd128Reg); } void LiftoffAssembler::emit_i16x8_extract_lane_s(LiftoffRegister dst, LiftoffRegister lhs, uint8_t imm_lane_idx) { - bailout(kUnsupportedArchitecture, "emit_i16x8extractlane_s"); + I16x8ExtractLaneS(dst.gp(), lhs.fp().toSimd(), imm_lane_idx, + kScratchSimd128Reg); } void LiftoffAssembler::emit_i8x16_extract_lane_u(LiftoffRegister dst, LiftoffRegister lhs, uint8_t imm_lane_idx) { - bailout(kUnsupportedArchitecture, "emit_i8x16extractlane_u"); + I8x16ExtractLaneU(dst.gp(), lhs.fp().toSimd(), imm_lane_idx, + kScratchSimd128Reg); } void LiftoffAssembler::emit_i8x16_extract_lane_s(LiftoffRegister dst, LiftoffRegister lhs, uint8_t imm_lane_idx) { - bailout(kUnsupportedArchitecture, "emit_i8x16extractlane_s"); + I8x16ExtractLaneS(dst.gp(), lhs.fp().toSimd(), imm_lane_idx, + kScratchSimd128Reg); } void LiftoffAssembler::emit_f64x2_replace_lane(LiftoffRegister dst,