mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-26 12:35:05 +08:00
re PR libstdc++/58804 (dynamic_bitset<> uses popcountl on long long)
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(). From-SVN: r203893
This commit is contained in:
parent
0e7504c8a1
commit
390dafb79d
@ -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 <timshen91@gmail.com>
|
||||
|
||||
* include/bits/regex.h: Remove virtual class _Automaton.
|
||||
|
@ -287,7 +287,7 @@ public:
|
||||
if (_M_w[__i] != ~static_cast<block_type>(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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user