aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2011-07-04 10:02:34 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2011-07-04 10:02:34 +0000
commit6dab9931f8f4b4366c3e1670902ace73e736ac4d (patch)
tree465b14227b9bdddb17ca31127b3fdfa9d0615aa3 /gcc
parentf027ee7cb0ed39a3c84b74673655bac4e22d335f (diff)
downloadgcc-6dab9931f8f4b4366c3e1670902ace73e736ac4d.zip
gcc-6dab9931f8f4b4366c3e1670902ace73e736ac4d.tar.gz
gcc-6dab9931f8f4b4366c3e1670902ace73e736ac4d.tar.bz2
t-avr (intfuncs16): Add _clrsbXX2.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/longlong.h20
2 files changed, 24 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 28ff471..8c0dc9a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/longlong.h b/gcc/longlong.h
index 7d11e10..cd4c40f 100644
--- a/gcc/longlong.h
+++ b/gcc/longlong.h
@@ -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))