[PATCH] Big-endian fix for memcpy-armv7m.S

Julian Brown julian@codesourcery.com
Fri Dec 9 13:54:00 GMT 2016


Hi,

I noticed that memcpy-armv7m.S makes assumptions about little-endian
byte ordering that cause it to get copies with certain sizes/alignments
wrong in big-endian mode. We hit this with a "generic profile" ARMv7
big-endian multilib, but I guess anyone trying to run an M-profile chip
in big-endian mode (if such things exist) could hit the same problem.

I've tested this with (caveat, somewhat experimental!) QEMU patches:

http://lists.nongnu.org/archive/html/qemu-devel/2016-12/msg00972.html

running under the GCC testsuite with an ARMv7 big-endian multilib, and
results show a positive delta for about 15 tests (e.g.
gcc.c-torture/execute/memcpy-2.c, gcc.c-torture/execute/pr65369.c).

OK to apply?

Thanks,

Julian

ChangeLog

    * libc/machine/arm/memcpy-armv7m.S (mis_src_copy): Handle
    big-endian mode.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: newlib-armv7m-bigendian-memcpy-2.diff
Type: text/x-patch
Size: 902 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20161209/05a97364/attachment.bin>


More information about the Newlib mailing list