@@ -1742,7 +1742,7 @@ impl<'a> Evaluator<'a> {
17421742 } ) ) )
17431743 }
17441744 ( Operator :: I64Eqz , AbstractValue :: Concrete ( WasmVal :: I64 ( k) ) ) => {
1745- Ok ( AbstractValue :: Concrete ( WasmVal :: I64 ( if * k == 0 {
1745+ Ok ( AbstractValue :: Concrete ( WasmVal :: I32 ( if * k == 0 {
17461746 1
17471747 } else {
17481748 0
@@ -1951,50 +1951,50 @@ impl<'a> Evaluator<'a> {
19511951
19521952 // 64-bit comparisons.
19531953 ( Operator :: I64Eq , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1954- AbstractValue :: Concrete ( WasmVal :: I64 ( if k1 == k2 { 1 } else { 0 } ) )
1954+ AbstractValue :: Concrete ( WasmVal :: I32 ( if k1 == k2 { 1 } else { 0 } ) )
19551955 }
19561956 ( Operator :: I64Ne , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1957- AbstractValue :: Concrete ( WasmVal :: I64 ( if k1 != k2 { 1 } else { 0 } ) )
1957+ AbstractValue :: Concrete ( WasmVal :: I32 ( if k1 != k2 { 1 } else { 0 } ) )
19581958 }
19591959 ( Operator :: I64LtS , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1960- AbstractValue :: Concrete ( WasmVal :: I64 ( if ( * k1 as i64 ) < ( * k2 as i64 ) {
1960+ AbstractValue :: Concrete ( WasmVal :: I32 ( if ( * k1 as i64 ) < ( * k2 as i64 ) {
19611961 1
19621962 } else {
19631963 0
19641964 } ) )
19651965 }
19661966 ( Operator :: I64LtU , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1967- AbstractValue :: Concrete ( WasmVal :: I64 ( if k1 < k2 { 1 } else { 0 } ) )
1967+ AbstractValue :: Concrete ( WasmVal :: I32 ( if k1 < k2 { 1 } else { 0 } ) )
19681968 }
19691969 ( Operator :: I64GtS , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1970- AbstractValue :: Concrete ( WasmVal :: I64 ( if ( * k1 as i64 ) > ( * k2 as i64 ) {
1970+ AbstractValue :: Concrete ( WasmVal :: I32 ( if ( * k1 as i64 ) > ( * k2 as i64 ) {
19711971 1
19721972 } else {
19731973 0
19741974 } ) )
19751975 }
19761976 ( Operator :: I64GtU , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1977- AbstractValue :: Concrete ( WasmVal :: I64 ( if k1 > k2 { 1 } else { 0 } ) )
1977+ AbstractValue :: Concrete ( WasmVal :: I32 ( if k1 > k2 { 1 } else { 0 } ) )
19781978 }
19791979 ( Operator :: I64LeS , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1980- AbstractValue :: Concrete ( WasmVal :: I64 ( if ( * k1 as i64 ) <= ( * k2 as i64 ) {
1980+ AbstractValue :: Concrete ( WasmVal :: I32 ( if ( * k1 as i64 ) <= ( * k2 as i64 ) {
19811981 1
19821982 } else {
19831983 0
19841984 } ) )
19851985 }
19861986 ( Operator :: I64LeU , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1987- AbstractValue :: Concrete ( WasmVal :: I64 ( if k1 <= k2 { 1 } else { 0 } ) )
1987+ AbstractValue :: Concrete ( WasmVal :: I32 ( if k1 <= k2 { 1 } else { 0 } ) )
19881988 }
19891989 ( Operator :: I64GeS , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1990- AbstractValue :: Concrete ( WasmVal :: I64 ( if ( * k1 as i64 ) >= ( * k2 as i64 ) {
1990+ AbstractValue :: Concrete ( WasmVal :: I32 ( if ( * k1 as i64 ) >= ( * k2 as i64 ) {
19911991 1
19921992 } else {
19931993 0
19941994 } ) )
19951995 }
19961996 ( Operator :: I64GeU , WasmVal :: I64 ( k1) , WasmVal :: I64 ( k2) ) => {
1997- AbstractValue :: Concrete ( WasmVal :: I64 ( if k1 >= k2 { 1 } else { 0 } ) )
1997+ AbstractValue :: Concrete ( WasmVal :: I32 ( if k1 >= k2 { 1 } else { 0 } ) )
19981998 }
19991999
20002000 // 32-bit integer arithmetic.
0 commit comments