Add V128 -> I8X16 type conversions

This commit is contained in:
Andrew Brown
2019-09-06 10:54:41 -07:00
parent 13ac951004
commit ddd1680e76

View File

@@ -122,6 +122,7 @@ pub fn type_to_type(ty: wasmparser::Type) -> WasmResult<ir::Type> {
wasmparser::Type::I64 => Ok(ir::types::I64),
wasmparser::Type::F32 => Ok(ir::types::F32),
wasmparser::Type::F64 => Ok(ir::types::F64),
wasmparser::Type::V128 => Ok(ir::types::I8X16),
ty => wasm_unsupported!("type_to_type: wasm type {:?}", ty),
}
}
@@ -134,6 +135,7 @@ pub fn tabletype_to_type(ty: wasmparser::Type) -> WasmResult<Option<ir::Type>> {
wasmparser::Type::I64 => Ok(Some(ir::types::I64)),
wasmparser::Type::F32 => Ok(Some(ir::types::F32)),
wasmparser::Type::F64 => Ok(Some(ir::types::F64)),
wasmparser::Type::V128 => Ok(Some(ir::types::I8X16)),
wasmparser::Type::AnyFunc => Ok(None),
ty => wasm_unsupported!("tabletype_to_type: table wasm type {:?}", ty),
}
@@ -147,6 +149,7 @@ pub fn blocktype_to_type(ty_or_ft: wasmparser::TypeOrFuncType) -> WasmResult<Opt
wasmparser::Type::I64 => Ok(Some(ir::types::I64)),
wasmparser::Type::F32 => Ok(Some(ir::types::F32)),
wasmparser::Type::F64 => Ok(Some(ir::types::F64)),
wasmparser::Type::V128 => Ok(Some(ir::types::I8X16)),
wasmparser::Type::EmptyBlockType => Ok(None),
ty => wasm_unsupported!("blocktype_to_type: type {:?}", ty),
},
@@ -175,7 +178,8 @@ pub fn num_return_values(ty: wasmparser::TypeOrFuncType) -> WasmResult<usize> {
wasmparser::Type::I32
| wasmparser::Type::F32
| wasmparser::Type::I64
| wasmparser::Type::F64 => Ok(1),
| wasmparser::Type::F64
| wasmparser::Type::V128 => Ok(1),
ty => wasm_unsupported!("unsupported return value type {:?}", ty),
},
wasmparser::TypeOrFuncType::FuncType(_) => {