From 2cfdf49ef0ae246d22e0e74a5bbf5b1c845f259b Mon Sep 17 00:00:00 2001 From: emsr Date: Mon, 21 Oct 2013 13:52:39 +0000 Subject: [PATCH] 2013-10-20 Edward Smith-Rowland <3dw4rd@verizon.net> PR libstdc++/58804 PR libstdc++/58729 * include/tr2/dynamic_bitset (__dynamic_bitset_base<_WordT, _Alloc>::_M_are_all_aux, __dynamic_bitset_base<_WordT, _Alloc>::_M_do_count): Use __builtin_popcountll() instead of __builtin_popcountl(). * include/tr2/dynamic_bitset.tcc (__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_first, __dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_next): Use __builtin_ctzll() instead of __builtin_ctzl(). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203893 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 13 +++++++++++++ libstdc++-v3/include/tr2/dynamic_bitset | 4 ++-- libstdc++-v3/include/tr2/dynamic_bitset.tcc | 6 +++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0957953de2f..1a4f6ebb5ae 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,16 @@ +2013-10-21 Edward Smith-Rowland <3dw4rd@verizon.net> + + PR libstdc++/58804 + PR libstdc++/58729 + * include/tr2/dynamic_bitset + (__dynamic_bitset_base<_WordT, _Alloc>::_M_are_all_aux, + __dynamic_bitset_base<_WordT, _Alloc>::_M_do_count): + Use __builtin_popcountll() instead of __builtin_popcountl(). + * include/tr2/dynamic_bitset.tcc + (__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_first, + __dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_next): + Use __builtin_ctzll() instead of __builtin_ctzl(). + 2013-10-20 Tim Shen * include/bits/regex.h: Remove virtual class _Automaton. diff --git a/libstdc++-v3/include/tr2/dynamic_bitset b/libstdc++-v3/include/tr2/dynamic_bitset index 5cd05f53c54..7d4d39256e6 100644 --- a/libstdc++-v3/include/tr2/dynamic_bitset +++ b/libstdc++-v3/include/tr2/dynamic_bitset @@ -287,7 +287,7 @@ public: if (_M_w[__i] != ~static_cast(0)) return 0; return ((this->_M_w.size() - 1) * _S_bits_per_block - + __builtin_popcountl(this->_M_hiword())); + + __builtin_popcountll(this->_M_hiword())); } bool @@ -332,7 +332,7 @@ public: { size_t __result = 0; for (size_t __i = 0; __i < this->_M_w.size(); ++__i) - __result += __builtin_popcountl(this->_M_w[__i]); + __result += __builtin_popcountll(this->_M_w[__i]); return __result; } diff --git a/libstdc++-v3/include/tr2/dynamic_bitset.tcc b/libstdc++-v3/include/tr2/dynamic_bitset.tcc index 016fdf0bd82..02e647acaa5 100644 --- a/libstdc++-v3/include/tr2/dynamic_bitset.tcc +++ b/libstdc++-v3/include/tr2/dynamic_bitset.tcc @@ -131,7 +131,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _WordT __thisword = this->_M_w[__i]; if (__thisword != static_cast<_WordT>(0)) return (__i * _S_bits_per_block - + __builtin_ctzl(__thisword)); + + __builtin_ctzll(__thisword)); } // not found, so return an indication of failure. return __not_found; @@ -158,7 +158,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (__thisword != static_cast<_WordT>(0)) return (__i * _S_bits_per_block - + __builtin_ctzl(__thisword)); + + __builtin_ctzll(__thisword)); // check subsequent words for (++__i; __i < this->_M_w.size(); ++__i) @@ -166,7 +166,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __thisword = this->_M_w[__i]; if (__thisword != static_cast<_WordT>(0)) return (__i * _S_bits_per_block - + __builtin_ctzl(__thisword)); + + __builtin_ctzll(__thisword)); } // not found, so return an indication of failure. return __not_found; -- 2.11.4.GIT