spirv: switch to util_bswap32 to improve portability
authorJan Beich <jbeich@FreeBSD.org>
Wed, 21 Oct 2020 17:32:02 +0000 (17:32 +0000)
committerMarge Bot <eric+marge@anholt.net>
Thu, 22 Oct 2020 17:02:49 +0000 (17:02 +0000)
`bswap_32` and `<byteswap.h>` aren't available on BSDs. Instead the
same function is spelled slightly different and is provided by
different header file. However, Mesa provides `util_bswap32` to avoid
complicated conditionals.

Fixes: fb6b243c113a ("spirv: Support big-endian strings")
Tested-by: Piotr Kubaj <pkubaj@FreeBSD.org>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7257>

src/compiler/spirv/spirv_to_nir.c

index ec976c4..35e2f55 100644 (file)
@@ -36,9 +36,6 @@
 #include "util/u_math.h"
 
 #include <stdio.h>
-#if UTIL_ARCH_BIG_ENDIAN
-#include <byteswap.h>
-#endif
 
 void
 vtn_log(struct vtn_builder *b, enum nir_spirv_debug_level level,
@@ -415,7 +412,7 @@ vtn_string_literal(struct vtn_builder *b, const uint32_t *words,
    {
       uint32_t *copy = ralloc_array(b, uint32_t, word_count);
       for (unsigned i = 0; i < word_count; i++)
-         copy[i] = bswap_32(words[i]);
+         copy[i] = util_bswap32(words[i]);
       words = copy;
    }
 #endif