libgcc2.c (__ffsdi2, [...]): Change return type to "int".
* libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change return type to "int". Shuffle declarations and undef int trap. * libgcc2.h: Remove their declarations. * optabs.c (expand_unop): Force outmode to int for bitops. From-SVN: r62353
This commit is contained in:
parent
d074ed7c01
commit
dabb3f04da
4 changed files with 47 additions and 33 deletions
|
@ -1,3 +1,11 @@
|
|||
2003-02-03 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
|
||||
__popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
|
||||
return type to "int". Shuffle declarations and undef int trap.
|
||||
* libgcc2.h: Remove their declarations.
|
||||
* optabs.c (expand_unop): Force outmode to int for bitops.
|
||||
|
||||
2003-02-03 Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
|
||||
|
|
|
@ -341,7 +341,9 @@ __ashrdi3 (DWtype u, word_type b)
|
|||
#endif
|
||||
|
||||
#ifdef L_ffsdi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __ffsdi2 (DWtype u);
|
||||
int
|
||||
__ffsdi2 (DWtype u)
|
||||
{
|
||||
DWunion uu;
|
||||
|
@ -520,7 +522,9 @@ const UQItype __clz_tab[] =
|
|||
#endif
|
||||
|
||||
#ifdef L_clzsi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __clzsi2 (USItype x);
|
||||
int
|
||||
__clzsi2 (USItype x)
|
||||
{
|
||||
UWtype w = x;
|
||||
|
@ -534,7 +538,9 @@ __clzsi2 (USItype x)
|
|||
#endif
|
||||
|
||||
#ifdef L_clzdi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __clzdi2 (UDItype x);
|
||||
int
|
||||
__clzdi2 (UDItype x)
|
||||
{
|
||||
UWtype word;
|
||||
|
@ -559,7 +565,9 @@ __clzdi2 (UDItype x)
|
|||
#endif
|
||||
|
||||
#ifdef L_ctzsi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __ctzsi2 (USItype x);
|
||||
int
|
||||
__ctzsi2 (USItype x)
|
||||
{
|
||||
Wtype ret;
|
||||
|
@ -571,7 +579,9 @@ __ctzsi2 (USItype x)
|
|||
#endif
|
||||
|
||||
#ifdef L_ctzdi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __ctzdi2 (UDItype x);
|
||||
int
|
||||
__ctzdi2 (UDItype x)
|
||||
{
|
||||
UWtype word;
|
||||
|
@ -615,7 +625,9 @@ const UQItype __popcount_tab[] =
|
|||
#endif
|
||||
|
||||
#ifdef L_popcountsi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __popcountsi2 (USItype x);
|
||||
int
|
||||
__popcountsi2 (USItype x)
|
||||
{
|
||||
return __popcount_tab[(x >> 0) & 0xff]
|
||||
|
@ -626,7 +638,9 @@ __popcountsi2 (USItype x)
|
|||
#endif
|
||||
|
||||
#ifdef L_popcountdi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __popcountdi2 (UDItype x);
|
||||
int
|
||||
__popcountdi2 (UDItype x)
|
||||
{
|
||||
return __popcount_tab[(x >> 0) & 0xff]
|
||||
|
@ -641,7 +655,9 @@ __popcountdi2 (UDItype x)
|
|||
#endif
|
||||
|
||||
#ifdef L_paritysi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __paritysi2 (USItype x);
|
||||
int
|
||||
__paritysi2 (USItype x)
|
||||
{
|
||||
UWtype nx = x;
|
||||
|
@ -655,7 +671,9 @@ __paritysi2 (USItype x)
|
|||
#endif
|
||||
|
||||
#ifdef L_paritydi2
|
||||
Wtype
|
||||
#undef int
|
||||
extern int __paritydi2 (UDItype x);
|
||||
int
|
||||
__paritydi2 (UDItype x)
|
||||
{
|
||||
UWtype nx = x ^ (x >> 32);
|
||||
|
|
|
@ -223,31 +223,19 @@ extern DWtype __negdi2 (DWtype);
|
|||
extern DWtype __lshrdi3 (DWtype, word_type);
|
||||
extern DWtype __ashldi3 (DWtype, word_type);
|
||||
extern DWtype __ashrdi3 (DWtype, word_type);
|
||||
extern Wtype __ffsdi2 (DWtype);
|
||||
|
||||
/* ??? Ought to get these named properly for DSPs. */
|
||||
#if BITS_PER_UNIT == 8 && MIN_UNITS_PER_WORD >= 4
|
||||
extern Wtype __clzsi2 (USItype);
|
||||
extern Wtype __ctzsi2 (USItype);
|
||||
extern Wtype __popcountsi2 (USItype x);
|
||||
extern Wtype __paritysi2 (USItype x);
|
||||
#else
|
||||
#undef L_clzsi2
|
||||
#undef L_ctzsi2
|
||||
#undef L_popcountsi2
|
||||
#undef L_paritysi2
|
||||
#endif
|
||||
|
||||
#if BITS_PER_UNIT == 8 && MIN_UNITS_PER_WORD >= 4 && LONG_LONG_TYPE_SIZE > 32
|
||||
extern Wtype __clzdi2 (UDItype);
|
||||
extern Wtype __ctzdi2 (UDItype);
|
||||
extern Wtype __popcountdi2 (UDItype x);
|
||||
extern Wtype __paritydi2 (UDItype x);
|
||||
#else
|
||||
#undef L_clzdi2
|
||||
#undef L_ctzdi2
|
||||
#undef L_popcountdi2
|
||||
#undef L_paritydi2
|
||||
#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. */
|
||||
|
|
|
@ -2675,7 +2675,7 @@ expand_unop (mode, unoptab, op0, target, unsignedp)
|
|||
have them return something that isn't a double-word. */
|
||||
if (unoptab == ffs_optab || unoptab == clz_optab || unoptab == ctz_optab
|
||||
|| unoptab == popcount_optab || unoptab == parity_optab)
|
||||
outmode = word_mode;
|
||||
outmode = TYPE_MODE (integer_type_node);
|
||||
|
||||
start_sequence ();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue