Add V128 -> I8X16 type conversions
This commit is contained in:
@@ -122,6 +122,7 @@ pub fn type_to_type(ty: wasmparser::Type) -> WasmResult<ir::Type> {
|
|||||||
wasmparser::Type::I64 => Ok(ir::types::I64),
|
wasmparser::Type::I64 => Ok(ir::types::I64),
|
||||||
wasmparser::Type::F32 => Ok(ir::types::F32),
|
wasmparser::Type::F32 => Ok(ir::types::F32),
|
||||||
wasmparser::Type::F64 => Ok(ir::types::F64),
|
wasmparser::Type::F64 => Ok(ir::types::F64),
|
||||||
|
wasmparser::Type::V128 => Ok(ir::types::I8X16),
|
||||||
ty => wasm_unsupported!("type_to_type: wasm type {:?}", ty),
|
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::I64 => Ok(Some(ir::types::I64)),
|
||||||
wasmparser::Type::F32 => Ok(Some(ir::types::F32)),
|
wasmparser::Type::F32 => Ok(Some(ir::types::F32)),
|
||||||
wasmparser::Type::F64 => Ok(Some(ir::types::F64)),
|
wasmparser::Type::F64 => Ok(Some(ir::types::F64)),
|
||||||
|
wasmparser::Type::V128 => Ok(Some(ir::types::I8X16)),
|
||||||
wasmparser::Type::AnyFunc => Ok(None),
|
wasmparser::Type::AnyFunc => Ok(None),
|
||||||
ty => wasm_unsupported!("tabletype_to_type: table wasm type {:?}", ty),
|
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::I64 => Ok(Some(ir::types::I64)),
|
||||||
wasmparser::Type::F32 => Ok(Some(ir::types::F32)),
|
wasmparser::Type::F32 => Ok(Some(ir::types::F32)),
|
||||||
wasmparser::Type::F64 => Ok(Some(ir::types::F64)),
|
wasmparser::Type::F64 => Ok(Some(ir::types::F64)),
|
||||||
|
wasmparser::Type::V128 => Ok(Some(ir::types::I8X16)),
|
||||||
wasmparser::Type::EmptyBlockType => Ok(None),
|
wasmparser::Type::EmptyBlockType => Ok(None),
|
||||||
ty => wasm_unsupported!("blocktype_to_type: type {:?}", ty),
|
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::I32
|
||||||
| wasmparser::Type::F32
|
| wasmparser::Type::F32
|
||||||
| wasmparser::Type::I64
|
| wasmparser::Type::I64
|
||||||
| wasmparser::Type::F64 => Ok(1),
|
| wasmparser::Type::F64
|
||||||
|
| wasmparser::Type::V128 => Ok(1),
|
||||||
ty => wasm_unsupported!("unsupported return value type {:?}", ty),
|
ty => wasm_unsupported!("unsupported return value type {:?}", ty),
|
||||||
},
|
},
|
||||||
wasmparser::TypeOrFuncType::FuncType(_) => {
|
wasmparser::TypeOrFuncType::FuncType(_) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user