[Bug target/43698] [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations
--- Comment #17 from ramana at gcc dot gnu dot org 2010-07-30 22:36 --- Subject: Bug 43698 Author: ramana Date: Fri Jul 30 22:35:40 2010 New Revision: 162725 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=162725 Log: Backport fix for PR target/43698. 2010-07-30 Ramana Radhakrishnan ramana.radhakrish...@arm.com Backport from mainline. 2010-07-22 Ramana Radhakrishnan ramana.radhakrish...@arm.com PR target/43698 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev. Set *arm_rev to be predicable. 2010-07-30 Ramana Radhakrishnan ramana.radhakrish...@arm.com Backport from mainline 2010-07-22 Ramana Radhakrishnan ramana.radhakrish...@arm.com PR target/43698 * gcc.target/arm/pr43698.c: New test. Added: branches/gcc-4_5-branch/gcc/testsuite/gcc.target/arm/pr43698.c - copied unchanged from r162404, trunk/gcc/testsuite/gcc.target/arm/pr43698.c Modified: branches/gcc-4_5-branch/ (props changed) branches/gcc-4_5-branch/gcc/ChangeLog branches/gcc-4_5-branch/gcc/config/arm/arm.md branches/gcc-4_5-branch/gcc/testsuite/ChangeLog Propchange: branches/gcc-4_5-branch/ ('svn:mergeinfo' added) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698
[Bug target/43698] [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations
--- Comment #18 from ramana at gcc dot gnu dot org 2010-07-30 22:38 --- And hence fixed. Thanks for allowing the backport. Ramana -- ramana at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698
[Bug target/43698] [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations
--- Comment #15 from ramana at gcc dot gnu dot org 2010-07-23 12:21 --- Patch can be backported and tested. But since 4.5 is frozen right now, needs RM permission. Adding RM to CC. cheers Ramana -- ramana at gcc dot gnu dot org changed: What|Removed |Added CC||rguenth at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698
[Bug target/43698] [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations
--- Comment #16 from rguenther at suse dot de 2010-07-23 12:27 --- Subject: Re: [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations On Fri, 23 Jul 2010, ramana at gcc dot gnu dot org wrote: --- Comment #15 from ramana at gcc dot gnu dot org 2010-07-23 12:21 --- Patch can be backported and tested. But since 4.5 is frozen right now, needs RM permission. Adding RM to CC. Please wait until after the 4.5.1 release. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698
[Bug target/43698] [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations
--- Comment #13 from ramana at gcc dot gnu dot org 2010-07-22 08:31 --- Subject: Bug 43698 Author: ramana Date: Thu Jul 22 08:30:36 2010 New Revision: 162404 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=162404 Log: Fix PR target/43698 2010-07-22 Ramana Radhakrishnan ramana.radhakrish...@arm.com PR target/43698 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev. Set *arm_rev to be predicable. 2010-07-22 Ramana Radhakrishnan ramana.radhakrish...@arm.com PR target/43698 * gcc.target/arm/pr43698.c: New test. Added: trunk/gcc/testsuite/gcc.target/arm/pr43698.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/arm.md trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698
[Bug target/43698] [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations
--- Comment #14 from siarhei dot siamashka at gmail dot com 2010-07-22 20:54 --- Thanks, this final variant of fix seems to work fine. Can this patch be backported to 4.5 branch and released with gcc 4.5.1 too? As I see it, the risk should be minimal because current gcc 4.5 branch is so broken on armv6/armv7 because of this bug, that it simply can't become any worse. As recently discovered in MeeGo [1], this bug has a high chance of breaking just about any program which does endian byteswapping. The list of broken packages includes 'dbus' and 'utils-linux-ng' to name a few, but surely there are more. 1. http://bugs.meego.com/show_bug.cgi?id=3936 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698
[Bug target/43698] [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations
--- Comment #12 from siarhei dot siamashka at gmail dot com 2010-07-19 13:54 --- Updated the summary to better describe the problem (which is distro independent). The fact that this bug breaks pax-utils tool, which is a vital part of gentoo packaging system, thus rendering the system unusable is probably not so interesting in gcc bugzilla context :) -- siarhei dot siamashka at gmail dot com changed: What|Removed |Added Summary|[4.5/4.6 Regression] Invalid|[4.5/4.6 Regression] Wrong |code when building gentoo |use of ARMv6 REV instruction |pax-utils-0.1.19 with -Os |for endian bytewapping with |optimizations |-Os or -O2 optimizations http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698