aboutsummaryrefslogtreecommitdiff
path: root/src/exact_value.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-04-01 10:06:00 +0100
committergingerBill <bill@gingerbill.org>2021-04-01 10:06:00 +0100
commit54e6c507698bf68b040400783f05686cacaddff1 (patch)
treeebe699d8a059f4e76e0a99494823d4cc3e3bcc1d /src/exact_value.cpp
parenta00d7cc705668da8a8b1a6ebd52668b5e9087bb9 (diff)
Implement `f16` functionality
Diffstat (limited to 'src/exact_value.cpp')
-rw-r--r--src/exact_value.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/exact_value.cpp b/src/exact_value.cpp
index 326f4d587..12c14b4fa 100644
--- a/src/exact_value.cpp
+++ b/src/exact_value.cpp
@@ -271,7 +271,11 @@ ExactValue exact_value_float_from_string(String string) {
}
}
u64 u = u64_from_string(string);
- if (digit_count == 8) {
+ if (digit_count == 4) {
+ u16 x = cast(u16)u;
+ f32 f = f16_to_f32(x);
+ return exact_value_float(cast(f64)f);
+ } else if (digit_count == 8) {
u32 x = cast(u32)u;
f32 f = bit_cast<f32>(x);
return exact_value_float(cast(f64)f);