[Mesa-dev] [PATCH] amd/addrlib: limit fastcall/regparm to GCC i386

Nicolai Hähnle nhaehnle at gmail.com
Wed Nov 2 16:00:59 UTC 2016


On 02.11.2016 16:32, Emil Velikov wrote:
> From: Emil Velikov <emil.velikov at collabora.com>
>
> The use of regparm causes an error on arm/arm64 builds with clang.
> fastcall is allowed, but still throws a warning. As both options only
> have effect on 32-bit x86 builds, limit them to that case.
>
> v2: keep the __i386__ within GCC (Nicolai)
>
> Cc: 13.0 <mesa-stable at lists.freedesktop.org>
> Cc: Rob Herring <robh at kernel.org>
> Cc: Nicolai Hähnle <nhaehnle at gmail.com>
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
> I'm having doubts whether the whole "let's change calling conventions"
> thing is worth the effort, but considering the "let's ignore standard
> primitives/types and use the Windows ones" et al. it's pretty much
> nothing ;-)

Yeah, it is a bit questionable. But who knows, it's possible that they 
actually profiled it! ;-)

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

>
> </rant>
> ---
>  src/amd/addrlib/addrtypes.h | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/amd/addrlib/addrtypes.h b/src/amd/addrlib/addrtypes.h
> index 4c68ac5..4dd7bab 100644
> --- a/src/amd/addrlib/addrtypes.h
> +++ b/src/amd/addrlib/addrtypes.h
> @@ -88,7 +88,11 @@ typedef int            INT;
>
>  #ifndef ADDR_FASTCALL
>      #if defined(__GNUC__)
> -        #define ADDR_FASTCALL __attribute__((regparm(0)))
> +        #if defined(__i386__)
> +            #define ADDR_FASTCALL __attribute__((regparm(0)))
> +        #else
> +            #define ADDR_FASTCALL
> +        #endif
>      #else
>          #define ADDR_FASTCALL __fastcall
>      #endif
>


More information about the mesa-dev mailing list