From c314893988d4b7408383d5c0357319082c347fc6 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 10 Dec 2020 13:20:53 +0100 Subject: 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 Reviewed-By: Mike Blumenkrantz Part-of: --- src/gallium/auxiliary/util/u_bitcast.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 -- cgit v1.2.3