This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: powerpc-ibm-aix43.2.0 2.96 19991213 longlong/reload problem


	The following revised patch at least does no harm on 64-bit PowerPC:

	* longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
	with W_TYPE_SIZE == 32.  Do not fall through to POWER archiecture
	for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.

Index: longlong.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/longlong.h,v
retrieving revision 1.12
diff -c -p -r1.12 longlong.h
*** longlong.h	1999/12/14 12:53:39	1.12
--- longlong.h	1999/12/14 22:47:31
*************** UDItype __umulsidi3 (USItype, USItype);
*** 758,764 ****
    } while (0)
  #endif /* __ns32000__ */
  
! #if (defined (_ARCH_PPC) || defined (_IBMR2)) && W_TYPE_SIZE == 32
  #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
    do {									\
      if (__builtin_constant_p (bh) && (bh) == 0)				\
--- 758,765 ----
    } while (0)
  #endif /* __ns32000__ */
  
! #if (defined (_ARCH_PPC) || defined (_IBMR2))
! #if W_TYPE_SIZE == 32
  #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
    do {									\
      if (__builtin_constant_p (bh) && (bh) == 0)				\
*************** UDItype __umulsidi3 (USItype, USItype);
*** 823,828 ****
--- 824,830 ----
  		 "rI" ((USItype) (al)),					\
  		 "r" ((USItype) (bl)));					\
    } while (0)
+ #endif
  #define count_leading_zeros(count, x) \
    __asm__ ("{cntlz|cntlzw} %0,%1"					\
  	   : "=r" ((USItype) (count))					\
*************** UDItype __umulsidi3 (USItype, USItype);
*** 850,856 ****
    } while (0)
  #define SMUL_TIME 14
  #define UDIV_TIME 120
! #else
  #define umul_ppmm(xh, xl, m0, m1) \
    do {									\
      USItype __m0 = (m0), __m1 = (m1);					\
--- 852,858 ----
    } while (0)
  #define SMUL_TIME 14
  #define UDIV_TIME 120
! #elif defined (_ARCH_POWER)
  #define umul_ppmm(xh, xl, m0, m1) \
    do {									\
      USItype __m0 = (m0), __m1 = (m1);					\

David
===============================================================================
David Edelsohn                                      T.J. Watson Research Center
dje@watson.ibm.com                                  P.O. Box 218
+1 914 945 4364 (TL 862)                            Yorktown Heights, NY 10598


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]