Subject: bug#12754: factor.c selects 64 bit code from longlong.h on 32-bit hppa systems

From: John David Anglin <[email-masked]>
Date: Tue, 30 Oct 2012 09:37:19 -0400

On 10/30/2012 6:21 AM, Pádraig Brady wrote:
> -#if defined (__hppa) && W_TYPE_SIZE == 64 && ! defined (_LONG_LONG_LIMB)
> +#if defined (__hppa) && W_TYPE_SIZE == 64 && ! defined 
> (_LONG_LONG_LIMB) \
> +  && defined (_PA_RISC2_0) && (ULONGMAX_MAX == UINT64_MAX)
> +/* Note the _PA_RISC2_0 above is to exclude this code from GCC with
> +   default -march options which doesn't support these instructions.
> +   Also the width check for 'long' is to avoid ilp32 runtimes where
> +   GNU/Linux and narrow HP-UX kernels are known to have issues with
> +   clobbering of context between the add and add,dc instructions.  */
This #if looks good to me.

Note HP compilers also define _PA_RISC2_0 when generating PA 2.0
assembly code.

Thanks,
Dave

-- 
John David Anglin    [email-masked]