Add missing f32 saturation operations

This commit is contained in:
Rerumu
2022-07-08 13:23:43 -04:00
parent 3853e06efa
commit f8c0a57af2
2 changed files with 24 additions and 8 deletions
+12 -4
View File
@@ -443,7 +443,7 @@ do
truncate.f32 = truncate_f64
truncate.f64 = truncate_f64
function saturate.i32_f64(num)
function saturate.i32_f32(num)
if num <= -0x80000000 then
return -0x80000000
elseif num >= 0x7FFFFFFF then
@@ -453,7 +453,9 @@ do
end
end
function saturate.u32_f64(num)
saturate.i32_f64 = saturate.i32_f32
function saturate.u32_f32(num)
if num <= 0 then
return 0
elseif num >= 0xFFFFFFFF then
@@ -463,7 +465,9 @@ do
end
end
function saturate.i64_f64(num)
saturate.u32_f64 = saturate.u32_f32
function saturate.i64_f32(num)
if num >= 2 ^ 63 - 1 then
return NUM_MAX_I64
elseif num <= -2 ^ 63 then
@@ -475,7 +479,9 @@ do
end
end
function saturate.u64_f64(num)
saturate.i64_f64 = saturate.i64_f32
function saturate.u64_f32(num)
if num >= 2 ^ 64 then
return NUM_MAX_U64
elseif num <= 0 or num ~= num then
@@ -485,6 +491,8 @@ do
end
end
saturate.u64_f64 = saturate.u64_f32
function extend.i32_n8(num)
num = bit_and(num, 0xFF)