Commit 4abba6d5 authored by Ng Zhi An's avatar Ng Zhi An Committed by Commit Bot

[wasm-simd][arm][liftoff] Implement store lane

Bug: v8:10975
Change-Id: I40b0c2c36553b44a510f8519b53195ab97f6f5a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2645474
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72339}
parent 307f6dc9
...@@ -2384,9 +2384,18 @@ void LiftoffAssembler::LoadLane(LiftoffRegister dst, LiftoffRegister src, ...@@ -2384,9 +2384,18 @@ void LiftoffAssembler::LoadLane(LiftoffRegister dst, LiftoffRegister src,
void LiftoffAssembler::StoreLane(Register dst, Register offset, void LiftoffAssembler::StoreLane(Register dst, Register offset,
uintptr_t offset_imm, LiftoffRegister src, uintptr_t offset_imm, LiftoffRegister src,
StoreType type, uint8_t lane, StoreType type, uint8_t laneidx,
uint32_t* protected_store_pc) { uint32_t* protected_store_pc) {
bailout(kSimd, "store lane"); UseScratchRegisterScope temps(this);
Register actual_dst_addr =
liftoff::CalculateActualAddress(this, &temps, dst, offset, offset_imm);
*protected_store_pc = pc_offset();
LoadStoreLaneParams store_params(type.mem_rep(), laneidx);
NeonListOperand src_op =
NeonListOperand(store_params.low_op ? src.low_fp() : src.high_fp());
TurboAssembler::StoreLane(store_params.sz, src_op, store_params.laneidx,
NeonMemOperand(actual_dst_addr));
} }
void LiftoffAssembler::emit_i8x16_swizzle(LiftoffRegister dst, void LiftoffAssembler::emit_i8x16_swizzle(LiftoffRegister dst,
......
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