|
From: | GNU bug Tracking System |
Subject: | [debbugs-tracker] bug#12754: closed (factor.c selects 64 bit code from longlong.h on 32-bit hppa systems) |
Date: | Sun, 04 Nov 2012 00:58:01 +0000 |
Your message dated Sun, 04 Nov 2012 00:54:09 +0000 with message-id <address@hidden> and subject line Re: bug#12754: factor.c selects 64 bit code from longlong.h on 32-bit hppa systems has caused the debbugs.gnu.org bug report #12754, regarding factor.c selects 64 bit code from longlong.h on 32-bit hppa systems to be marked as done. (If you believe you have received this mail in error, please contact address@hidden) -- 12754: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12754 GNU Bug Tracking System Contact address@hidden with problems
--- Begin Message ---Subject: factor.c selects 64 bit code from longlong.h on 32-bit hppa systems Date: Sun, 28 Oct 2012 15:46:44 -0400 User-agent: Mutt/1.5.16 (2007-06-09) When USE_LONGLONG_H is defined, factor.c unilaterally defines W_TYPE_SIZE to 64. This selects the wrong code from longlong.h on 32-bit hppa systems causing an assembly failure. Attached is a hack which should work on most but probably not all systems. Dave -- J. David Anglin address@hidden National Research Council of Canada (613) 990-0752 (FAX: 952-6602)factor.c.d
Description: Text document
--- End Message ---
--- Begin Message ---Subject: Re: bug#12754: factor.c selects 64 bit code from longlong.h on 32-bit hppa systems Date: Sun, 04 Nov 2012 00:54:09 +0000 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1 On 10/30/2012 01:59 AM, Pádraig Brady wrote:Since 2.0 is the only arch that supports the 64 bit hppa code in longlong.h, the following enables the code to compile by default. diff --git a/src/longlong.h b/src/longlong.h index 8d71611..8b01696 100644 --- a/src/longlong.h +++ b/src/longlong.h @@ -679,7 +679,7 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype); /* These macros are for ABI=2.0w. In ABI=2.0n they can't be used, since GCC (3.2) puts longlong into two adjacent 32-bit registers. Presumably this is just a case of no direct support for 2.0n but treating it like 1.0. */ -#if defined (__hppa) && W_TYPE_SIZE == 64 && ! defined (_LONG_LONG_LIMB) +#if defined (__hppa) && defined (_PA_RISC2_0) && W_TYPE_SIZE == 64 && ! defined (_LONG_LONG_LIMB) #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ __asm__ ("add%I5 %5,%r4,%1\n\tadd,dc %r2,%r3,%0" \ : "=r" (sh), "=&r" (sl) \ Note even though I've not encountered a system yet where uintmax_t != 64 bit, I'll add the guards around "#define W_TYPE_SIZE", previously mentioned in this thread, in a separate patch.I've now pushed the patch set discussed in this thread, so I'm marking this bug as done. cheers, Pádraig.
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |