diff options
author | Andreas Krebbel <krebbel1@de.ibm.com> | 2007-07-06 10:47:31 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2007-07-06 10:47:31 +0000 |
commit | c7ff6e7a7a943f9eed6a66dd41c8e35e9df2bf6c (patch) | |
tree | 5d263d30ab0db65a0e38c1d8aa4ab05795f921c6 /gcc/libgcc2.h | |
parent | 713df810031e8183d0ec88a490a8677ab0932e2c (diff) | |
download | gcc-c7ff6e7a7a943f9eed6a66dd41c8e35e9df2bf6c.zip gcc-c7ff6e7a7a943f9eed6a66dd41c8e35e9df2bf6c.tar.gz gcc-c7ff6e7a7a943f9eed6a66dd41c8e35e9df2bf6c.tar.bz2 |
libgcc2.h (word_type): Type definition removed.
2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
* libgcc2.h (word_type): Type definition removed.
(cmp_return_type, shift_count_type): Type definitions added.
(__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
replaced with shift_count_type.
(__cmpdi2, __ucmpdi2): word_type of return type replaced with
cmp_return_type.
* libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
changed from word_type to Wtype.
(__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
replaced with shift_count_type.
(__cmpdi2, __ucmpdi2): word_type of return type replaced with
cmp_return_type.
* c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return and
libgcc_shift_count attribute added.
* target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
(TARGET_INITIALIZER): New target hooks added.
* targhooks.c (default_libgcc_cmp_return_mode,
default_libgcc_shift_count_mode): Default implementations for the new
target hooks added.
* targhooks.h (default_libgcc_cmp_return_mode,
default_libgcc_shift_count_mode): Function prototypes added.
* target.h (struct gcc_target): Fields for the new target hooks added.
* optabs.c (expand_binop): Use shift_count_mode when expanding shift
as library call.
(prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
library call.
* doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
* config/s390/s390.c (s390_libgcc_cmp_return_mode,
s390_libgcc_shift_count_mode): Functions added.
(TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE): Target
hooks defined.
From-SVN: r126410
Diffstat (limited to 'gcc/libgcc2.h')
-rw-r--r-- | gcc/libgcc2.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/libgcc2.h b/gcc/libgcc2.h index d6b980e..944f6fa 100644 --- a/gcc/libgcc2.h +++ b/gcc/libgcc2.h @@ -173,7 +173,8 @@ typedef float TFtype __attribute__ ((mode (TF))); typedef _Complex float TCtype __attribute__ ((mode (TC))); #endif -typedef int word_type __attribute__ ((mode (__word__))); +typedef int cmp_return_type __attribute__((mode (__libgcc_cmp_return__))); +typedef int shift_count_type __attribute__((mode (__libgcc_shift_count__))); /* Make sure that we don't accidentally use any normal C language built-in type names in the first part of this file. Instead we want to use *only* @@ -329,9 +330,9 @@ extern UDWtype __udivmoddi4 (UDWtype, UDWtype, UDWtype *); extern DWtype __negdi2 (DWtype); #endif -extern DWtype __lshrdi3 (DWtype, word_type); -extern DWtype __ashldi3 (DWtype, word_type); -extern DWtype __ashrdi3 (DWtype, word_type); +extern DWtype __lshrdi3 (DWtype, shift_count_type); +extern DWtype __ashldi3 (DWtype, shift_count_type); +extern DWtype __ashrdi3 (DWtype, shift_count_type); /* __udiv_w_sdiv is static inline when building other libgcc2 portions. */ #if (!defined(L_udivdi3) && !defined(L_divdi3) && \ @@ -339,8 +340,8 @@ extern DWtype __ashrdi3 (DWtype, word_type); extern UWtype __udiv_w_sdiv (UWtype *, UWtype, UWtype, UWtype); #endif -extern word_type __cmpdi2 (DWtype, DWtype); -extern word_type __ucmpdi2 (DWtype, DWtype); +extern cmp_return_type __cmpdi2 (DWtype, DWtype); +extern cmp_return_type __ucmpdi2 (DWtype, DWtype); #if MIN_UNITS_PER_WORD > 1 extern SItype __bswapsi2 (SItype); |