On 10/03/2017 12:01 PM, Jochen Rollwagen wrote:
From 4cebe50a9bade6717923e104c954f3fad75f71bb Mon Sep 17 00:00:00 2001 From: Jochen Rollwagen <[email protected]> Date: Tue, 3 Oct 2017 19:54:10 +0200 Subject: [PATCH] Replace byte-swapping code with builtins in pack.cThis patch replaces some code for byte-swapping in pack.c with the builtin functions allowing the compiler to do its optimization magic --- src/mesa/main/pack.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/src/mesa/main/pack.c b/src/mesa/main/pack.c index 94a6d28..9bfde39 100644 --- a/src/mesa/main/pack.c +++ b/src/mesa/main/pack.c @@ -230,26 +230,8 @@ _mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source, } } - -#define SWAP2BYTE(VALUE) \ - { \ - GLubyte *bytes = (GLubyte *) &(VALUE); \ - GLubyte tmp = bytes[0]; \ - bytes[0] = bytes[1]; \ - bytes[1] = tmp; \ - } - -#define SWAP4BYTE(VALUE) \ - { \ - GLubyte *bytes = (GLubyte *) &(VALUE); \ - GLubyte tmp = bytes[0]; \ - bytes[0] = bytes[3]; \ - bytes[3] = tmp; \ - tmp = bytes[1]; \ - bytes[1] = bytes[2]; \ - bytes[2] = tmp; \ - } - +#define SWAP2BYTE(VALUE) __builtin_bswap16(VALUE) +#define SWAP4BYTE(VALUE) __builtin_bswap32(VALUE)
Looks like a gcc feature. We also need to build with other compilers like Microsoft's.
-Brian
static void extract_uint_indexes(GLuint n, GLuint indexes[], _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
