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


	As far as I can determine, libgcc2.c has been silently broken on
AIX for a long time.  W_SIZE_TYPE never was defined on AIX, so the inlined
assembly never was utilized.  With Jakub's recent changes, the inlined
assembly is used, but does not handle common mode properly where there is
no intersection of multiply and divide instructions for both architectures.
I thought that GMP was fixing some of this, but I have not seen that new
version.

	At a minimum, longlong.h needs the following patch:

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:34:03
*************** 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);					\
--- 850,856 ----
    } 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);					\


I also am worried about the W_TYPE_SIZE test in light of 64-bit PowerPC.

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]