[v3] move more num_put speedups to 3.3
Benjamin Kosnik
bkoz@redhat.com
Tue Mar 4 02:16:00 GMT 2003
My previous attempt was way off. Here's something that works. This adds
17 new symbols to gcc-3.2.x.
__num_base::_S_atoms_in
__num_base::_S_atoms_out
and in num_put:
_M_group_int x 2
_M_group_float x 2
_M_convert_int x 2 x 4
_M_pad x 2
tested x86/linux
gcc-3_3-branch
2003-03-03 Benjamin Kosnik <benjamin@redhat.com>
* config/linker-map.gnu (GLIBCPP_3.2.3): New.
Add new symbols.
* testsuite/abi_check.cc: Update.
2003-03-03 Jerry Quinn <jlquinn@optonline.net>
Benjamin Kosnik <benjamin@redhat.com>
* include/bits/locale_facets.h (__num_base): Add _S_atoms_out.
Add indexes into this array.
(__num_base::_S_atoms): To _S_atoms_in.
(num_put::_M_insert): Rename to _M_pad.
(num_put::_M_convert_int): Adjust remove __mod, __modl arguments.
(num_put::_M_widen_int): Rename to _M_group_int.
(num_put::_M_widen_float): Rename to _M_group_float.
* include/bits/locale_facets.tcc (__int_to_char): New inline
function and adapter functions.
(num_put::_M_group_int): Streamline.
(num_put::_M_group_float): Streamline.
(num_put::_M_convert_int): Remove unused parameter names. Choose
large enough buffer for text. Use __int_to_char instead of
__convert_from_v. Formatted text is now at the end of the buffer.
(num_put::_M_convert_float): Preliminary fixups.
* src/locale-inst.cc (__convert_from_v<long long>): Add ifdef.
(__int_to_char<unsigned long long>): Same.
(__int_to_char<char, unsigned long>): New.
(__int_to_char<char, unsigned long long>): New.
(__int_to_char<wchar_t, unsigned long>): New.
(__int_to_char<wchar_t, unsigned long long>): New.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p.20030303-gcc-3_3-merge
Type: application/octet-stream
Size: 62679 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030304/9c6cb742/attachment.obj>
More information about the Gcc-patches
mailing list