t-avr (intfuncs16): Add _clrsbXX2.
authorGeorg-Johann Lay <avr@gjlay.de>
Mon, 4 Jul 2011 10:02:34 +0000 (10:02 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Mon, 4 Jul 2011 10:02:34 +0000 (10:02 +0000)
libgcc/
* config/avr/t-avr (intfuncs16): Add _clrsbXX2.

gcc/
* longlong.h (count_leading_zeros, count_trailing_zeros,
COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
resp. 64.

From-SVN: r175800

gcc/ChangeLog
gcc/longlong.h
libgcc/ChangeLog
libgcc/config/avr/t-avr

index 28ff47174c10c1105bd96f756ac09b0bc6b4b366..8c0dc9ac79c9ae63a5b619b43b5fb0d2dea4c80f 100644 (file)
@@ -1,3 +1,9 @@
+2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
+
+       * longlong.h (count_leading_zeros, count_trailing_zeros,
+       COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
+       resp. 64.
+
 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
 
        PR tree-optimization/49610
index 7d11e10646e70419bdbe3ac57f3350cb89808aa6..cd4c40ff32ad5a526bfa1d2f1118bc61f7cccc28 100644 (file)
@@ -250,11 +250,27 @@ UDItype __umulsidi3 (USItype, USItype);
 #define COUNT_LEADING_ZEROS_0 32
 #endif
 
-#if defined (__AVR__) && W_TYPE_SIZE == 32
+#if defined (__AVR__)
+
+#if W_TYPE_SIZE == 16
+#define count_leading_zeros(COUNT,X)  ((COUNT) = __builtin_clz (X))
+#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctz (X))
+#define COUNT_LEADING_ZEROS_0 16
+#endif /* W_TYPE_SIZE == 16 */
+
+#if W_TYPE_SIZE == 32
 #define count_leading_zeros(COUNT,X)  ((COUNT) = __builtin_clzl (X))
 #define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctzl (X))
 #define COUNT_LEADING_ZEROS_0 32
-#endif /* defined (__AVR__) && W_TYPE_SIZE == 32 */
+#endif /* W_TYPE_SIZE == 32 */
+
+#if W_TYPE_SIZE == 64
+#define count_leading_zeros(COUNT,X)  ((COUNT) = __builtin_clzll (X))
+#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctzll (X))
+#define COUNT_LEADING_ZEROS_0 64
+#endif /* W_TYPE_SIZE == 64 */
+
+#endif /* defined (__AVR__) */
 
 #if defined (__CRIS__) && __CRIS_arch_version >= 3
 #define count_leading_zeros(COUNT, X) ((COUNT) = __builtin_clz (X))
index 358cc1eb24204875bada1388988ef671d352b31c..626a32a7fdb3d34d25f8dca1a8c53dbf75be717f 100644 (file)
@@ -1,3 +1,7 @@
+2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/t-avr (intfuncs16): Add _clrsbXX2.
+
 2011-06-28  Nick Clifton  <nickc@redhat.com>
 
        * config.host: Recognize all V850 variants.
index 7c8783ee2123c892a5fdd552505a5040f7667092..78829c76af4f9ed0133df574edbb2c02d339e9fc 100644 (file)
@@ -1,5 +1,5 @@
 # Extra 16-bit integer functions.
-intfuncs16 = _absvXX2 _addvXX3 _subvXX3 _mulvXX3 _negvXX2 
+intfuncs16 = _absvXX2 _addvXX3 _subvXX3 _mulvXX3 _negvXX2 _clrsbXX2
 
 hiintfuncs16 = $(subst XX,hi,$(intfuncs16))
 siintfuncs16 = $(subst XX,si,$(intfuncs16))