Make pow2_f{16,32,64} contextless for consistency.

This commit is contained in:
Jeroen van Rijn
2023-11-11 14:06:48 +01:00
parent 3b5d28f0ee
commit dd9b0ae4e5

View File

@@ -203,7 +203,8 @@ pow10_f64 :: proc "contextless" (n: f64) -> f64 {
return 0
}
pow2_f64 :: proc(#any_int exp: int) -> (res: f64) {
@(require_results)
pow2_f64 :: proc "contextless" (#any_int exp: int) -> (res: f64) {
switch {
case exp >= -1022 && exp <= 1023: // Normal
return transmute(f64)(u64(exp + F64_BIAS) << F64_SHIFT)
@@ -221,7 +222,8 @@ pow2_f64 :: proc(#any_int exp: int) -> (res: f64) {
unreachable()
}
pow2_f32 :: proc(#any_int exp: int) -> (res: f32) {
@(require_results)
pow2_f32 :: proc "contextless" (#any_int exp: int) -> (res: f32) {
switch {
case exp >= -126 && exp <= 127: // Normal
return transmute(f32)(u32(exp + F32_BIAS) << F32_SHIFT)
@@ -236,7 +238,8 @@ pow2_f32 :: proc(#any_int exp: int) -> (res: f32) {
unreachable()
}
pow2_f16 :: proc(#any_int exp: int) -> (res: f16) {
@(require_results)
pow2_f16 :: proc "contextless" (#any_int exp: int) -> (res: f16) {
switch {
case exp >= -14 && exp <= 15: // Normal
return transmute(f16)(u16(exp + F16_BIAS) << F16_SHIFT)