http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48090
Mikael Pettersson <mikpe at it dot uu.se> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rearnsha at gcc dot gnu.org
--- Comment #7 from Mikael Pettersson <mikpe at it dot uu.se> 2011-03-13
15:09:36 UTC ---
The miscompilation on 4.5 branch started with r154181, the PR42031 fix; see
<http://gcc.gnu.org/ml/gcc-patches/2009-11/msg00725.html>.
On the standalone test case, r154181 changed the -march=armv5t -O2 code as
follows:
--- pr48090.s-r154180 2011-03-13 15:39:16.000000000 +0100
+++ pr48090.s-r154181 2011-03-13 15:43:21.000000000 +0100
@@ -81,11 +81,9 @@
mov r6, r1
bl seek_archive
cmp r1, #0
- mov r3, r0
- mov r4, r1
blt .L14
- rsbs r1, r3, #0
- rsc r2, r4, #0
+ rsbs r1, r0, #0
+ rsc r2, r1, #0
mov r4, r2, asl #9
mov r3, r1, asl #9
orr r4, r4, r1, lsr #23
which breaks the second 'rsc' insn since it now reads the updated r1 value
instead of the original one.