Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
+/* As a special exception, if you link this library with other files,
+ some of which are compiled with GCC, to produce an executable,
+ this library does not by itself cause the resulting executable
+ to be covered by the GNU General Public License.
+ This exception does not however invalidate any other reasons why
+ the executable file might be covered by the GNU General Public License. */
+
+
#ifndef GCC_LIBGCC2_H
#define GCC_LIBGCC2_H
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));
#if MIN_UNITS_PER_WORD > 1
-/* These typedefs are usually forbidden on dsp's with UNITS_PER_WORD 1 */
+/* These typedefs are usually forbidden on dsp's with UNITS_PER_WORD 1. */
typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
#if LONG_LONG_TYPE_SIZE > 32
-/* These typedefs are usually forbidden on archs with UNITS_PER_WORD 2 */
+/* These typedefs are usually forbidden on archs with UNITS_PER_WORD 2. */
typedef int DItype __attribute__ ((mode (DI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
#if MIN_UNITS_PER_WORD > 4
-/* These typedefs are usually forbidden on archs with UNITS_PER_WORD 4 */
+/* These typedefs are usually forbidden on archs with UNITS_PER_WORD 4. */
typedef int TItype __attribute__ ((mode (TI)));
typedef unsigned int UTItype __attribute__ ((mode (TI)));
#endif
#define __fixunssfSI __NW(fixunssf,)
#define __ffsSI2 __NW(ffs,2)
+#define __clzSI2 __NW(clz,2)
+#define __ctzSI2 __NW(ctz,2)
+#define __popcountSI2 __NW(popcount,2)
+#define __paritySI2 __NW(parity,2)
#define __ffsDI2 __NDW(ffs,2)
+#define __clzDI2 __NDW(clz,2)
+#define __ctzDI2 __NDW(ctz,2)
+#define __popcountDI2 __NDW(popcount,2)
+#define __parityDI2 __NDW(parity,2)
extern DWtype __muldi3 (DWtype, DWtype);
extern DWtype __divdi3 (DWtype, DWtype);
extern DWtype __ashldi3 (DWtype, word_type);
extern DWtype __ashrdi3 (DWtype, word_type);
-/* ??? Ought to get these named properly for DSPs. */
-#if BITS_PER_UNIT != 8 || MIN_UNITS_PER_WORD < 4
-# undef L_clzsi2
-# undef L_ctzsi2
-# undef L_popcountsi2
-# undef L_paritysi2
-# if LONG_LONG_TYPE_SIZE <= 32
-# undef L_clzdi2
-# undef L_ctzdi2
-# undef L_popcountdi2
-# undef L_paritydi2
-# endif
-#endif
-
/* __udiv_w_sdiv is static inline when building other libgcc2 portions. */
#if (!defined(L_udivdi3) && !defined(L_divdi3) && \
!defined(L_umoddi3) && !defined(L_moddi3))