Implement Smulhi for interpreter

Implemented `Smulhi` for the Cranelift interpreter, performing signed
integer multiplication and producing the high half of a double-length
result.

Copyright (c) 2021, Arm Limited
This commit is contained in:
dheaton-arm
2021-09-06 16:02:27 +01:00
parent 2412e8d784
commit 2f0ce4c86c
6 changed files with 94 additions and 32 deletions

View File

@@ -308,6 +308,7 @@ impl Value for DataValue {
(DataValue::I16(n), types::I32) => DataValue::I32(n as i32),
(DataValue::I16(n), types::I64) => DataValue::I64(n as i64),
(DataValue::I32(n), types::I64) => DataValue::I64(n as i64),
(DataValue::I64(n), types::I128) => DataValue::I128(n as i128),
(dv, _) => unimplemented!("conversion: {} -> {:?}", dv.ty(), kind),
},
ValueConversionKind::ZeroExtend(ty) => match (self, ty) {