summaryrefslogtreecommitdiff
path: root/gcc/libgcc2.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-09 18:35:22 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-09 18:35:22 +0000
commit0f1864262c759ba8709f615528f51986f1cad30d (patch)
treec8d1fe4271c9afc4b804ffb4eb37b6fa41c21ecb /gcc/libgcc2.h
parent5143d24d30dc98b7f30678848cbcdf46cbae03f9 (diff)
downloadgcc-0f1864262c759ba8709f615528f51986f1cad30d.tar.gz
* libgcc-std.ver (__clztf2): New.
(__ctztf2, __popcounttf2, __paritytf2): New. * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2, __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode; adjust code to match the different type sizes. * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2, __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros. * optabs.c (init_integral_libfuncs): Don't hard-code SImode and TImode; select word_mode and twice that. (init_floating_libfuncs): Don't hard-code SFmode and TFmode; select the modes from float, double, and long double. (init_optabs): Remove duplicate initializations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62606 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/libgcc2.h')
-rw-r--r--gcc/libgcc2.h22
1 files changed, 8 insertions, 14 deletions
diff --git a/gcc/libgcc2.h b/gcc/libgcc2.h
index 876e1d56c82..09c1b081020 100644
--- a/gcc/libgcc2.h
+++ b/gcc/libgcc2.h
@@ -203,7 +203,15 @@ typedef int word_type __attribute__ ((mode (__word__)));
#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);
@@ -226,20 +234,6 @@ extern DWtype __lshrdi3 (DWtype, word_type);
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))