diff options
author | Erik Faye-Lund <erik.faye-lund@collabora.com> | 2020-12-10 13:20:53 +0100 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-12-15 15:12:41 +0000 |
commit | c314893988d4b7408383d5c0357319082c347fc6 (patch) | |
tree | 329888ab06d69d79ad8c569f72b4091317f9c7a1 | |
parent | 615c4610bb6882decc384913b28545c3cb945a1a (diff) |
gallium/util: add bitcast helpers for double and uint
This complements u_bitcast_f2u and u_bitcast_u2f with similar helpers
to cast between double and unsigned integers as well.
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8034>
-rw-r--r-- | src/gallium/auxiliary/util/u_bitcast.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_bitcast.h b/src/gallium/auxiliary/util/u_bitcast.h index 703ea64e4dd..f5b33471ad1 100644 --- a/src/gallium/auxiliary/util/u_bitcast.h +++ b/src/gallium/auxiliary/util/u_bitcast.h @@ -45,6 +45,14 @@ u_bitcast_f2u(float f) return u; } +static inline uint64_t +u_bitcast_d2u(double d) +{ + uint64_t u; + memcpy(&u, &d, sizeof(u)); + return u; +} + static inline float u_bitcast_u2f(uint32_t u) { @@ -53,6 +61,14 @@ u_bitcast_u2f(uint32_t u) return f; } +static inline double +u_bitcast_u2d(uint64_t u) +{ + double d; + memcpy(&d, &u, sizeof(d)); + return d; +} + #ifdef __cplusplus } #endif |