You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Walt currently supports only signed integers and signed operations. Since WebAssembly also supports unsigned operations, it would be really neat to also have unsigned types u32 and u64. These operations should be used:
Hey, thanks for the suggestion! I can see this being useful for sure. This will add an edge case of signed < unsigned comparisons but without the types, we would have to expose the opcodes above directly.
Well, I think in the case of signed < unsigned both operands should be treated as unsigned integers (with some additional option to manually cast an unsigned integer to a signed one). But it would be nice to also have all opcodes accessible in some form.
Feature Request
Overview
Walt currently supports only signed integers and signed operations. Since WebAssembly also supports unsigned operations, it would be really neat to also have unsigned types
u32
andu64
. These operations should be used:i32.div_u
andi64.div_u
(x / y
)i32.rem_u
andi64.rem_u
(x % y
)i32.shr_u
andi64.shr_u
(x >> y
)i32.lt_u
andi64.lt_u
(x < y
)i32.le_u
andi64.le_u
(x <= y
)i32.gt_u
andi64.gt_u
(x > y
)i32.ge_u
andi64.ge_u
(x >= y
)i64.load32_u
(const x: u32 = 10; const y: u64 = x;
)i32.trunc_u/f32
(const x: f32 = 10; const y: u32 = x;
)i32.trunc_u/f64
(const x: f64 = 10; const y: u32 = x;
)i64.extend_u/i32
(const x: u32 = 10; const y: u64 = x;
)i64.trunc_u/f32
(const x: f32 = 10; const y: u64 = x;
)i64.trunc_u/f64
(const x: f64 = 10; const y: u64 = x;
)f32.convert_u/i32
(const x: u32 = 10; const y: f32 = x;
)f32.convert_u/i64
(const x: u64 = 10; const y: f32 = x;
)f64.convert_u/i32
(const x: u32 = 10; const y: f64 = x;
)f64.convert_u/i64
(const x: u64 = 10; const y: f64 = x;
)Example
The text was updated successfully, but these errors were encountered: