Commit 622b1dc2 authored by Zhao Jiazhong's avatar Zhao Jiazhong Committed by Commit Bot

[mips][wasm-simd][liftoff] Implement add for f64x2, i64x2, i8x16

Port 485e66ba
https://crrev.com/c/2094198

Change-Id: I4e3ce2a70f2ccf4e95b0fa69834522d988e00f9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2097895Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66677}
parent a2b17a72
...@@ -1540,6 +1540,14 @@ void LiftoffAssembler::emit_f64x2_splat(LiftoffRegister dst, ...@@ -1540,6 +1540,14 @@ void LiftoffAssembler::emit_f64x2_splat(LiftoffRegister dst,
bailout(kSimd, "emit_f64x2_splat"); bailout(kSimd, "emit_f64x2_splat");
} }
void LiftoffAssembler::emit_f64x2_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA.
bailout(kSimd, "emit_f64x2_add");
}
void LiftoffAssembler::emit_f32x4_splat(LiftoffRegister dst, void LiftoffAssembler::emit_f32x4_splat(LiftoffRegister dst,
LiftoffRegister src) { LiftoffRegister src) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
...@@ -1548,8 +1556,8 @@ void LiftoffAssembler::emit_f32x4_splat(LiftoffRegister dst, ...@@ -1548,8 +1556,8 @@ void LiftoffAssembler::emit_f32x4_splat(LiftoffRegister dst,
bailout(kSimd, "emit_f32x4_splat"); bailout(kSimd, "emit_f32x4_splat");
} }
void LiftoffAssembler::emit_f32x4_add(LiftoffRegister dst, LiftoffRegister rhs, void LiftoffAssembler::emit_f32x4_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister lhs) { LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming // CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA. // 3a4000 support MSA.
...@@ -1564,6 +1572,14 @@ void LiftoffAssembler::emit_i64x2_splat(LiftoffRegister dst, ...@@ -1564,6 +1572,14 @@ void LiftoffAssembler::emit_i64x2_splat(LiftoffRegister dst,
bailout(kSimd, "emit_i64x2_splat"); bailout(kSimd, "emit_i64x2_splat");
} }
void LiftoffAssembler::emit_i64x2_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA.
bailout(kSimd, "emit_i64x2_add");
}
void LiftoffAssembler::emit_i32x4_splat(LiftoffRegister dst, void LiftoffAssembler::emit_i32x4_splat(LiftoffRegister dst,
LiftoffRegister src) { LiftoffRegister src) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
...@@ -1572,8 +1588,8 @@ void LiftoffAssembler::emit_i32x4_splat(LiftoffRegister dst, ...@@ -1572,8 +1588,8 @@ void LiftoffAssembler::emit_i32x4_splat(LiftoffRegister dst,
bailout(kSimd, "emit_i32x4_splat"); bailout(kSimd, "emit_i32x4_splat");
} }
void LiftoffAssembler::emit_i32x4_add(LiftoffRegister dst, LiftoffRegister rhs, void LiftoffAssembler::emit_i32x4_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister lhs) { LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming // CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA. // 3a4000 support MSA.
...@@ -1588,8 +1604,8 @@ void LiftoffAssembler::emit_i16x8_splat(LiftoffRegister dst, ...@@ -1588,8 +1604,8 @@ void LiftoffAssembler::emit_i16x8_splat(LiftoffRegister dst,
bailout(kSimd, "emit_i16x8_splat"); bailout(kSimd, "emit_i16x8_splat");
} }
void LiftoffAssembler::emit_i16x8_add(LiftoffRegister dst, LiftoffRegister rhs, void LiftoffAssembler::emit_i16x8_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister lhs) { LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming // CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA. // 3a4000 support MSA.
...@@ -1604,6 +1620,14 @@ void LiftoffAssembler::emit_i8x16_splat(LiftoffRegister dst, ...@@ -1604,6 +1620,14 @@ void LiftoffAssembler::emit_i8x16_splat(LiftoffRegister dst,
bailout(kSimd, "emit_i8x16_splat"); bailout(kSimd, "emit_i8x16_splat");
} }
void LiftoffAssembler::emit_i8x16_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA.
bailout(kSimd, "emit_i8x16_add");
}
void LiftoffAssembler::StackCheck(Label* ool_code, Register limit_address) { void LiftoffAssembler::StackCheck(Label* ool_code, Register limit_address) {
TurboAssembler::Ulw(limit_address, MemOperand(limit_address)); TurboAssembler::Ulw(limit_address, MemOperand(limit_address));
TurboAssembler::Branch(ool_code, ule, sp, Operand(limit_address)); TurboAssembler::Branch(ool_code, ule, sp, Operand(limit_address));
......
...@@ -1332,6 +1332,14 @@ void LiftoffAssembler::emit_f64x2_splat(LiftoffRegister dst, ...@@ -1332,6 +1332,14 @@ void LiftoffAssembler::emit_f64x2_splat(LiftoffRegister dst,
bailout(kSimd, "emit_f64x2_splat"); bailout(kSimd, "emit_f64x2_splat");
} }
void LiftoffAssembler::emit_f64x2_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA.
bailout(kSimd, "emit_f64x2_add");
}
void LiftoffAssembler::emit_f32x4_splat(LiftoffRegister dst, void LiftoffAssembler::emit_f32x4_splat(LiftoffRegister dst,
LiftoffRegister src) { LiftoffRegister src) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
...@@ -1340,8 +1348,8 @@ void LiftoffAssembler::emit_f32x4_splat(LiftoffRegister dst, ...@@ -1340,8 +1348,8 @@ void LiftoffAssembler::emit_f32x4_splat(LiftoffRegister dst,
bailout(kSimd, "emit_f32x4_splat"); bailout(kSimd, "emit_f32x4_splat");
} }
void LiftoffAssembler::emit_f32x4_add(LiftoffRegister dst, LiftoffRegister rhs, void LiftoffAssembler::emit_f32x4_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister lhs) { LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming // CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA. // 3a4000 support MSA.
...@@ -1356,6 +1364,14 @@ void LiftoffAssembler::emit_i64x2_splat(LiftoffRegister dst, ...@@ -1356,6 +1364,14 @@ void LiftoffAssembler::emit_i64x2_splat(LiftoffRegister dst,
bailout(kSimd, "emit_i64x2_splat"); bailout(kSimd, "emit_i64x2_splat");
} }
void LiftoffAssembler::emit_i64x2_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA.
bailout(kSimd, "emit_i64x2_add");
}
void LiftoffAssembler::emit_i32x4_splat(LiftoffRegister dst, void LiftoffAssembler::emit_i32x4_splat(LiftoffRegister dst,
LiftoffRegister src) { LiftoffRegister src) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
...@@ -1364,8 +1380,8 @@ void LiftoffAssembler::emit_i32x4_splat(LiftoffRegister dst, ...@@ -1364,8 +1380,8 @@ void LiftoffAssembler::emit_i32x4_splat(LiftoffRegister dst,
bailout(kSimd, "emit_i32x4_splat"); bailout(kSimd, "emit_i32x4_splat");
} }
void LiftoffAssembler::emit_i32x4_add(LiftoffRegister dst, LiftoffRegister rhs, void LiftoffAssembler::emit_i32x4_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister lhs) { LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming // CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA. // 3a4000 support MSA.
...@@ -1380,8 +1396,8 @@ void LiftoffAssembler::emit_i16x8_splat(LiftoffRegister dst, ...@@ -1380,8 +1396,8 @@ void LiftoffAssembler::emit_i16x8_splat(LiftoffRegister dst,
bailout(kSimd, "emit_i16x8_splat"); bailout(kSimd, "emit_i16x8_splat");
} }
void LiftoffAssembler::emit_i16x8_add(LiftoffRegister dst, LiftoffRegister rhs, void LiftoffAssembler::emit_i16x8_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister lhs) { LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS // TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming // CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA. // 3a4000 support MSA.
...@@ -1396,6 +1412,14 @@ void LiftoffAssembler::emit_i8x16_splat(LiftoffRegister dst, ...@@ -1396,6 +1412,14 @@ void LiftoffAssembler::emit_i8x16_splat(LiftoffRegister dst,
bailout(kSimd, "emit_i8x16_splat"); bailout(kSimd, "emit_i8x16_splat");
} }
void LiftoffAssembler::emit_i8x16_add(LiftoffRegister dst, LiftoffRegister lhs,
LiftoffRegister rhs) {
// TODO(mips): Support this on loongson 3a4000. Currently, the main MIPS
// CPU, Loongson 3a3000 does not support MSA(simd128), but the upcoming
// 3a4000 support MSA.
bailout(kSimd, "emit_i8x16_add");
}
void LiftoffAssembler::StackCheck(Label* ool_code, Register limit_address) { void LiftoffAssembler::StackCheck(Label* ool_code, Register limit_address) {
TurboAssembler::Uld(limit_address, MemOperand(limit_address)); TurboAssembler::Uld(limit_address, MemOperand(limit_address));
TurboAssembler::Branch(ool_code, ule, sp, Operand(limit_address)); TurboAssembler::Branch(ool_code, ule, sp, Operand(limit_address));
......
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