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

David Edelsohn dje@watson.ibm.com
Fri Dec 31 20:54:00 GMT 1999


	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



More information about the Gcc-bugs mailing list