[Bug target/43698] [4.5/4.6 Regression] Wrong use of ARMv6 REV instruction for endian bytewapping with -Os or -O2 optimizations

2010-07-30 Thread ramana at gcc dot gnu dot org


--- 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

2010-07-30 Thread ramana at gcc dot gnu dot org


--- 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

2010-07-23 Thread ramana at gcc dot gnu dot org


--- 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

2010-07-23 Thread rguenther at suse dot de


--- 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

2010-07-22 Thread ramana at gcc dot gnu dot org


--- 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

2010-07-22 Thread siarhei dot siamashka at gmail dot com


--- 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

2010-07-19 Thread siarhei dot siamashka at gmail dot com


--- 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