Translate Wasm's I64x2Mul to Cranelift's imul.i64x2
This commit is contained in:
@@ -1383,7 +1383,7 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
|
|||||||
let a = pop1_with_bitcast(state, type_of(op), builder);
|
let a = pop1_with_bitcast(state, type_of(op), builder);
|
||||||
state.push1(builder.ins().ineg(a))
|
state.push1(builder.ins().ineg(a))
|
||||||
}
|
}
|
||||||
Operator::I16x8Mul | Operator::I32x4Mul => {
|
Operator::I16x8Mul | Operator::I32x4Mul | Operator::I64x2Mul => {
|
||||||
let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
|
let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
|
||||||
state.push1(builder.ins().imul(a, b))
|
state.push1(builder.ins().imul(a, b))
|
||||||
}
|
}
|
||||||
@@ -1544,8 +1544,7 @@ pub fn translate_operator<FE: FuncEnvironment + ?Sized>(
|
|||||||
let a = pop1_with_bitcast(state, I32X4, builder);
|
let a = pop1_with_bitcast(state, I32X4, builder);
|
||||||
state.push1(builder.ins().fcvt_from_sint(F32X4, a))
|
state.push1(builder.ins().fcvt_from_sint(F32X4, a))
|
||||||
}
|
}
|
||||||
Operator::I64x2Mul
|
Operator::I32x4TruncSatF32x4S
|
||||||
| Operator::I32x4TruncSatF32x4S
|
|
||||||
| Operator::I32x4TruncSatF32x4U
|
| Operator::I32x4TruncSatF32x4U
|
||||||
| Operator::F32x4ConvertI32x4U
|
| Operator::F32x4ConvertI32x4U
|
||||||
| Operator::I8x16Abs
|
| Operator::I8x16Abs
|
||||||
@@ -2069,7 +2068,8 @@ fn type_of(operator: &Operator) -> Type {
|
|||||||
| Operator::I64x2ShrS
|
| Operator::I64x2ShrS
|
||||||
| Operator::I64x2ShrU
|
| Operator::I64x2ShrU
|
||||||
| Operator::I64x2Add
|
| Operator::I64x2Add
|
||||||
| Operator::I64x2Sub => I64X2,
|
| Operator::I64x2Sub
|
||||||
|
| Operator::I64x2Mul => I64X2,
|
||||||
|
|
||||||
Operator::F32x4Splat
|
Operator::F32x4Splat
|
||||||
| Operator::F32x4ExtractLane { .. }
|
| Operator::F32x4ExtractLane { .. }
|
||||||
|
|||||||
Reference in New Issue
Block a user