diff options
Diffstat (limited to 'src/broadcom/cle/v3d_packet_helpers.h')
-rw-r--r-- | src/broadcom/cle/v3d_packet_helpers.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/broadcom/cle/v3d_packet_helpers.h b/src/broadcom/cle/v3d_packet_helpers.h index d01ff6ef0ad..c86cad85266 100644 --- a/src/broadcom/cle/v3d_packet_helpers.h +++ b/src/broadcom/cle/v3d_packet_helpers.h @@ -177,6 +177,22 @@ __gen_unpack_sint(const uint8_t *restrict cl, uint32_t start, uint32_t end) } static inline float +__gen_unpack_sfixed(const uint8_t *restrict cl, uint32_t start, uint32_t end, + uint32_t fractional_size) +{ + int32_t bits = __gen_unpack_sint(cl, start, end); + return (float)bits / (1 << fractional_size); +} + +static inline float +__gen_unpack_ufixed(const uint8_t *restrict cl, uint32_t start, uint32_t end, + uint32_t fractional_size) +{ + int32_t bits = __gen_unpack_uint(cl, start, end); + return (float)bits / (1 << fractional_size); +} + +static inline float __gen_unpack_float(const uint8_t *restrict cl, uint32_t start, uint32_t end) { assert(start % 8 == 0); |