diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-09 18:35:22 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-09 18:35:22 +0000 |
commit | 0f1864262c759ba8709f615528f51986f1cad30d (patch) | |
tree | c8d1fe4271c9afc4b804ffb4eb37b6fa41c21ecb /gcc/libgcc2.h | |
parent | 5143d24d30dc98b7f30678848cbcdf46cbae03f9 (diff) | |
download | gcc-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.h | 22 |
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)) |