Improve performance of byte-swapped I/O.
commita01f9ef39b170e9de7229ff78193e3c2957e199f
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Jan 2013 21:56:54 +0000 (23 21:56 +0000)
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Jan 2013 21:56:54 +0000 (23 21:56 +0000)
treef0cd204c1489f4588e613e65677efe4e43b3c72e
parentc58ba4b23d1d0894c5b57dedff2fd5b93f777e22
Improve performance of byte-swapped I/O.

2013-01-23  Janne Blomqvist  <jb@gcc.gnu.org>

* io/file_pos.c (unformatted_backspace): Use __builtin_bswapXX
instead of reverse_memcpy.
* io/io.h (reverse_memcpy): Remove prototype.
* io/transfer.c (reverse_memcpy): Make static, move towards
beginning of file.
(bswap_array): New function.
(unformatted_read): Use bswap_array to byte swap the data
in-place.
(unformatted_write): Use a larger temp buffer and bswap_array.
(us_read): Use __builtin_bswapXX instead of reverse_memcpy.
(write_us_marker): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195413 138bc75d-0d04-0410-961f-82ee72b054a4
libgfortran/ChangeLog
libgfortran/io/file_pos.c
libgfortran/io/io.h
libgfortran/io/transfer.c