From 50b5680bef7685a7e8dba059b923d11c579bf077 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Fri, 8 Jul 2022 01:49:12 -0400 Subject: [PATCH] Add saturation operations --- wasm-ast/src/node.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/wasm-ast/src/node.rs b/wasm-ast/src/node.rs index 9941f8f..98a85e9 100644 --- a/wasm-ast/src/node.rs +++ b/wasm-ast/src/node.rs @@ -155,6 +155,14 @@ pub enum UnOpType { Truncate_I64_F64, Truncate_U64_F32, Truncate_U64_F64, + Saturate_I32_F32, + Saturate_I32_F64, + Saturate_U32_F32, + Saturate_U32_F64, + Saturate_I64_F32, + Saturate_I64_F64, + Saturate_U64_F32, + Saturate_U64_F64, Extend_I32_N8, Extend_I32_N16, Extend_I64_N8, @@ -211,6 +219,14 @@ impl UnOpType { Self::Truncate_I64_F64 => ("truncate", "i64_f64"), Self::Truncate_U64_F32 => ("truncate", "u64_f32"), Self::Truncate_U64_F64 => ("truncate", "u64_f64"), + Self::Saturate_I32_F32 => ("saturate", "i32_f32"), + Self::Saturate_I32_F64 => ("saturate", "i32_f64"), + Self::Saturate_U32_F32 => ("saturate", "u32_f32"), + Self::Saturate_U32_F64 => ("saturate", "u32_f64"), + Self::Saturate_I64_F32 => ("saturate", "i64_f32"), + Self::Saturate_I64_F64 => ("saturate", "i64_f64"), + Self::Saturate_U64_F32 => ("saturate", "u64_f32"), + Self::Saturate_U64_F64 => ("saturate", "u64_f64"), Self::Extend_I32_N8 => ("extend", "i32_n8"), Self::Extend_I32_N16 => ("extend", "i32_n16"), Self::Extend_I64_N8 => ("extend", "i64_n8"), @@ -270,6 +286,14 @@ impl TryFrom<&Operator<'_>> for UnOpType { Operator::I64TruncF64S => Self::Truncate_I64_F64, Operator::I64TruncF32U => Self::Truncate_U64_F32, Operator::I64TruncF64U => Self::Truncate_U64_F64, + Operator::I32TruncSatF32S => Self::Saturate_I32_F32, + Operator::I32TruncSatF64S => Self::Saturate_I32_F64, + Operator::I32TruncSatF32U => Self::Saturate_U32_F32, + Operator::I32TruncSatF64U => Self::Saturate_U32_F64, + Operator::I64TruncSatF32S => Self::Saturate_I64_F32, + Operator::I64TruncSatF64S => Self::Saturate_I64_F64, + Operator::I64TruncSatF32U => Self::Saturate_U64_F32, + Operator::I64TruncSatF64U => Self::Saturate_U64_F64, Operator::I32Extend8S => Self::Extend_I32_N8, Operator::I32Extend16S => Self::Extend_I32_N16, Operator::I64Extend8S => Self::Extend_I64_N8,