[Mesa-dev] [PATCH] Replace byte-swapping code with builtins in pack.c

Brian Paul brianp at vmware.com
Wed Oct 4 02:34:17 UTC 2017


On 10/03/2017 12:01 PM, Jochen Rollwagen wrote:
>  From 4cebe50a9bade6717923e104c954f3fad75f71bb Mon Sep 17 00:00:00 2001
> From: Jochen Rollwagen <joro-2013 at t-online.de>
> Date: Tue, 3 Oct 2017 19:54:10 +0200
> Subject: [PATCH] Replace byte-swapping code with builtins in pack.c
>
> This 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
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>



More information about the mesa-dev mailing list