* [Bug c/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
@ 2010-12-03 13:37 ` rguenth at gcc dot gnu.org
2010-12-03 13:58 ` mschulze at ivs dot cs.ovgu.de
` (17 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2010-12-03 13:37 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-12-03 13:37:46 UTC ---
at least I see r1 use in the asm but no clobber for it, instead it clobbers
the seemingly unused r31.
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug c/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
2010-12-03 13:37 ` [Bug c/46779] " rguenth at gcc dot gnu.org
@ 2010-12-03 13:58 ` mschulze at ivs dot cs.ovgu.de
2010-12-03 14:06 ` [Bug target/46779] " rguenth at gcc dot gnu.org
` (16 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: mschulze at ivs dot cs.ovgu.de @ 2010-12-03 13:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #2 from Michael Schulze <mschulze at ivs dot cs.ovgu.de> 2010-12-03 13:58:40 UTC ---
(In reply to comment #1)
> at least I see r1 use in the asm but no clobber for it, instead it clobbers
> the seemingly unused r31.
Yes correct, r1 is not clobbered, however, I tested it with clobbering this one
too. But this does not change the code generation, leading to the same
erroneous code. In case of r31, I think you are wrong because it is used in
"movw r30, %A3\n\t".
Are you agree this is a bug or not?
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
2010-12-03 13:37 ` [Bug c/46779] " rguenth at gcc dot gnu.org
2010-12-03 13:58 ` mschulze at ivs dot cs.ovgu.de
@ 2010-12-03 14:06 ` rguenth at gcc dot gnu.org
2010-12-03 14:16 ` mschulze at ivs dot cs.ovgu.de
` (15 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2010-12-03 14:06 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|c |target
Version|4.4.0 |4.4.5
--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-12-03 14:05:42 UTC ---
(In reply to comment #2)
> (In reply to comment #1)
> > at least I see r1 use in the asm but no clobber for it, instead it clobbers
> > the seemingly unused r31.
> Yes correct, r1 is not clobbered, however, I tested it with clobbering this one
> too. But this does not change the code generation, leading to the same
> erroneous code. In case of r31, I think you are wrong because it is used in
> "movw r30, %A3\n\t".
>
> Are you agree this is a bug or not?
I don't know anything about AVR, so I can't say that (I just noticed the r1
issue).
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (2 preceding siblings ...)
2010-12-03 14:06 ` [Bug target/46779] " rguenth at gcc dot gnu.org
@ 2010-12-03 14:16 ` mschulze at ivs dot cs.ovgu.de
2011-02-05 16:01 ` avr at gjlay dot de
` (14 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: mschulze at ivs dot cs.ovgu.de @ 2010-12-03 14:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #4 from Michael Schulze <mschulze at ivs dot cs.ovgu.de> 2010-12-03 14:16:30 UTC ---
> I don't know anything about AVR, so I can't say that (I just noticed the r1
> issue).
Ok due to the compiler abi for the avr, r0,r1 are fixed registers that are
never allocated by gcc for local data, but often used for fixed purposes. r0 is
a temporary register that may be globbered by any C-code. r1 is assumed to be
always zero in any C-code. This is the reason, why it is cleared at the end of
the inline assembler.
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (3 preceding siblings ...)
2010-12-03 14:16 ` mschulze at ivs dot cs.ovgu.de
@ 2011-02-05 16:01 ` avr at gjlay dot de
2011-02-23 15:55 ` avr at gjlay dot de
` (13 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: avr at gjlay dot de @ 2011-02-05 16:01 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Georg Lay <avr at gjlay dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |avr at gjlay dot de
--- Comment #5 from Georg Lay <avr at gjlay dot de> 2011-02-05 16:01:14 UTC ---
Probably we see PR45291 here introduced by the byte-shift w <<= 8. Some
versions of avr backend emit bad subreg rtx which is still present in 4.5.2 and
4.6.0
http://gcc.gnu.org/PR45291
FYI, not clobbering R1 resp. R0 will not trigger a bug because there regs are
fixed.
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (4 preceding siblings ...)
2011-02-05 16:01 ` avr at gjlay dot de
@ 2011-02-23 15:55 ` avr at gjlay dot de
2011-02-24 14:04 ` avr at gjlay dot de
` (12 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: avr at gjlay dot de @ 2011-02-23 15:55 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #6 from Georg-Johann Lay <avr at gjlay dot de> 2011-02-23 15:51:11 UTC ---
I can confirm the bug for gcc version 4.4.6 20110222 (prerelease) (GCC)
In pass .168r.asmcons we have
(insn 92 57 93 4 pr46779-1.c:17 (set (subreg:QI (reg/v:HI 85 [ w.30 ]) 1)
(mem:QI (plus:HI (reg:HI 88 [ ivtmp.21 ])
(const_int 1 [0x1])) [0 S1 A8])) 4 {*movqi} (nil))
(insn 93 92 61 4 pr46779-1.c:17 (set (subreg:QI (reg/v:HI 85 [ w.30 ]) 0)
(const_int 0 [0x0])) 4 {*movqi} (nil))
insn 93 invalidates insn 92. It accesses reg 85 as QI but doing so it
invalidated the high part. This is due to subreg semantic. After IRA we have in
.c.172r.ira:
(insn 105 57 92 4 pr46779-1.c:17 (set (reg:HI 14 r14)
(reg/v:HI 28 r28 [orig:85 w.30 ] [85])) 10 {*movhi} (nil))
(insn 92 105 107 4 pr46779-1.c:17 (set (reg:QI 22 r22)
(mem:QI (plus:HI (reg:HI 26 r26 [orig:88 ivtmp.21 ] [88])
(const_int 1 [0x1])) [0 S1 A8])) 4 {*movqi} (nil))
(insn 107 92 106 4 pr46779-1.c:17 (set (reg:QI 15 r15 [+1 ])
(reg:QI 22 r22)) 4 {*movqi} (nil))
(insn 106 107 93 4 pr46779-1.c:17 (set (reg/v:HI 28 r28 [orig:85 w.30 ] [85])
(reg:HI 14 r14)) 10 {*movhi} (nil))
(insn 93 106 108 4 pr46779-1.c:17 (set (reg:QI 22 r22)
(const_int 0 [0x0])) 4 {*movqi} (nil))
(insn 108 93 61 4 pr46779-1.c:17 (set (reg/v:HI 28 r28 [orig:85 w.30 ] [85])
(reg:HI 22 r22)) 10 {*movhi} (nil))
Now we see that insn 108 (from IRA/reload) overwrites the contents of reg 28.
So in fact we see a bug similar to PR45291 which also originates in bad
multiple subreg usage as Lvalue.
The difference is that in 4.4 the bad subreg moves come from
(define_insn_and_split "*rotlhi3_8"
(define_insn_and_split "*rotlsi3_16"
(define_insn_and_split "*rotlsi3_8"
(define_insn_and_split "*rotlsi3_24"
whereas in 4.5 and 4.6 they come from avr.c:avr_rotate_bytes()
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (5 preceding siblings ...)
2011-02-23 15:55 ` avr at gjlay dot de
@ 2011-02-24 14:04 ` avr at gjlay dot de
2011-04-14 18:52 ` gjl at gcc dot gnu.org
` (11 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: avr at gjlay dot de @ 2011-02-24 14:04 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #7 from Georg-Johann Lay <avr at gjlay dot de> 2011-02-24 13:58:58 UTC ---
Created attachment 23453
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23453
Simpler example without #include
Slightly simpler test case, compile with
avr-gcc -S -Os -mmcu=atmega128 pr46779-1.c
Pass .subreg1 emits subregs as Lvalues with the same pseudo as SUBREG_REG so
that the second insn ovewrwrites the first.
Target: avr
Configured with: /gnu/source/gcc.gnu.org/branches/gcc-4_4-branch/configure
--target=avr --prefix=/home/georg/gcc/install/gcc-4.4 --enable-languages=c,c++
--disable-libssp --disable-libada --disable-nls --disable-shared
Thread model: single
gcc version 4.4.6 20110222 (prerelease) (GCC)
[...]
GNU C (GCC) version 4.4.6 20110222 (prerelease) (avr)
compiled by GNU C version 4.3.2 [gcc-4_3-branch revision 141291], GMP
version 4.3.1, MPFR version 2.4.2.
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (6 preceding siblings ...)
2011-02-24 14:04 ` avr at gjlay dot de
@ 2011-04-14 18:52 ` gjl at gcc dot gnu.org
2011-06-16 10:01 ` gjl at gcc dot gnu.org
` (10 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-04-14 18:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #8 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-04-14 18:50:16 UTC ---
Author: gjl
Date: Thu Apr 14 18:50:02 2011
New Revision: 172442
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172442
Log:
PR target/46779
PR target/45291
PR target/41894
* gcc.target/avr/pr46779-1.c: New test case
* gcc.target/avr/pr46779-2.c: New test case
Added:
trunk/gcc/testsuite/gcc.target/avr/pr46779-1.c
trunk/gcc/testsuite/gcc.target/avr/pr46779-2.c
Modified:
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (7 preceding siblings ...)
2011-04-14 18:52 ` gjl at gcc dot gnu.org
@ 2011-06-16 10:01 ` gjl at gcc dot gnu.org
2011-06-27 15:49 ` jakub at gcc dot gnu.org
` (9 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-06-16 10:01 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011.06.16 10:01:03
CC|avr at gjlay dot de |gjl at gcc dot gnu.org
Target Milestone|--- |4.6.1
Ever Confirmed|0 |1
--- Comment #9 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-06-16 10:01:03 UTC ---
Reconfirmed with current 4.7 trunk against
gcc.target/avr/pr46779-1.c
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (8 preceding siblings ...)
2011-06-16 10:01 ` gjl at gcc dot gnu.org
@ 2011-06-27 15:49 ` jakub at gcc dot gnu.org
2011-07-08 17:40 ` gjl at gcc dot gnu.org
` (8 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-06-27 15:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.6.1 |4.6.2
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-27 12:32:54 UTC ---
GCC 4.6.1 is being released.
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (9 preceding siblings ...)
2011-06-27 15:49 ` jakub at gcc dot gnu.org
@ 2011-07-08 17:40 ` gjl at gcc dot gnu.org
2011-07-08 17:47 ` gjl at gcc dot gnu.org
` (7 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-07-08 17:40 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #11 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-07-08 17:38:43 UTC ---
Author: gjl
Date: Fri Jul 8 17:38:39 2011
New Revision: 176053
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176053
Log:
PR target/46779
* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
In particular, allow 8-bit values in r28 and r29.
(avr_hard_regno_scratch_ok): Disallow any register that might be
part of the frame pointer.
(avr_hard_regno_rename_ok): Same.
(avr_legitimate_address_p): Don't allow SUBREGs.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr.c
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (10 preceding siblings ...)
2011-07-08 17:40 ` gjl at gcc dot gnu.org
@ 2011-07-08 17:47 ` gjl at gcc dot gnu.org
2011-07-08 17:54 ` gjl at gcc dot gnu.org
` (6 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-07-08 17:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #12 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-07-08 17:46:42 UTC ---
Author: gjl
Date: Fri Jul 8 17:46:38 2011
New Revision: 176055
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176055
Log:
PR target/46779
Backport from mainline SVN 176053.
2011-07-08 Georg-Johann Lay
* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
In particular, allow 8-bit values in r28 and r29.
(avr_hard_regno_scratch_ok): Disallow any register that might be
part of the frame pointer.
(avr_hard_regno_rename_ok): Same.
(avr_legitimate_address_p): Don't allow SUBREGs.
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/avr/avr.c
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (11 preceding siblings ...)
2011-07-08 17:47 ` gjl at gcc dot gnu.org
@ 2011-07-08 17:54 ` gjl at gcc dot gnu.org
2011-07-10 20:58 ` gjl at gcc dot gnu.org
` (5 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-07-08 17:54 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |otaylor at redhat dot com
--- Comment #13 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-07-08 17:52:08 UTC ---
*** Bug 45291 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (12 preceding siblings ...)
2011-07-08 17:54 ` gjl at gcc dot gnu.org
@ 2011-07-10 20:58 ` gjl at gcc dot gnu.org
2011-07-23 15:10 ` gjl at gcc dot gnu.org
` (4 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-07-10 20:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Known to work| |4.6.2, 4.7.0
Resolution| |FIXED
Known to fail| |4.6.1
--- Comment #14 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-07-10 20:57:18 UTC ---
Closed as FIXED for 4.6.2
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] wrong code generation for array access
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (13 preceding siblings ...)
2011-07-10 20:58 ` gjl at gcc dot gnu.org
@ 2011-07-23 15:10 ` gjl at gcc dot gnu.org
2011-10-26 20:03 ` [Bug target/46779] [4.4/4.5/4.6 Regression][avr] wrong code generation for values held in R28/R29 gjl at gcc dot gnu.org
` (3 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-07-23 15:10 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |frank at mynety dot net
--- Comment #15 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-07-23 15:09:49 UTC ---
*** Bug 41894 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] [4.4/4.5/4.6 Regression][avr] wrong code generation for values held in R28/R29
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (14 preceding siblings ...)
2011-07-23 15:10 ` gjl at gcc dot gnu.org
@ 2011-10-26 20:03 ` gjl at gcc dot gnu.org
2012-02-11 10:55 ` gjl at gcc dot gnu.org
` (2 subsequent siblings)
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-10-26 20:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|wrong code generation for |[4.4/4.5/4.6
|array access |Regression][avr] wrong code
| |generation for values held
| |in R28/R29
Severity|critical |normal
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] [4.4/4.5/4.6 Regression][avr] wrong code generation for values held in R28/R29
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (15 preceding siblings ...)
2011-10-26 20:03 ` [Bug target/46779] [4.4/4.5/4.6 Regression][avr] wrong code generation for values held in R28/R29 gjl at gcc dot gnu.org
@ 2012-02-11 10:55 ` gjl at gcc dot gnu.org
2012-05-02 17:05 ` gjl at gcc dot gnu.org
2012-05-02 17:08 ` gjl at gcc dot gnu.org
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2012-02-11 10:55 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dhowells at redhat dot com
--- Comment #16 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-02-11 10:54:54 UTC ---
*** Bug 51445 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] [4.4/4.5/4.6 Regression][avr] wrong code generation for values held in R28/R29
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (16 preceding siblings ...)
2012-02-11 10:55 ` gjl at gcc dot gnu.org
@ 2012-05-02 17:05 ` gjl at gcc dot gnu.org
2012-05-02 17:08 ` gjl at gcc dot gnu.org
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2012-05-02 17:05 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
--- Comment #17 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-05-02 17:05:10 UTC ---
Author: gjl
Date: Wed May 2 17:05:04 2012
New Revision: 187055
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187055
Log:
Backport from 2011-07-08 4.6-branch r176055.
PR target/46779
* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
In particular, allow 8-bit values in r28 and r29.
(avr_hard_regno_scratch_ok): Disallow any register that might be
part of the frame pointer.
(avr_hard_regno_rename_ok): Same.
(avr_legitimate_address_p): Don't allow SUBREGs.
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/config/avr/avr.c
^ permalink raw reply [flat|nested] 20+ messages in thread
* [Bug target/46779] [4.4/4.5/4.6 Regression][avr] wrong code generation for values held in R28/R29
2010-12-03 11:31 [Bug c/46779] New: wrong code generation for array access mschulze at ivs dot cs.ovgu.de
` (17 preceding siblings ...)
2012-05-02 17:05 ` gjl at gcc dot gnu.org
@ 2012-05-02 17:08 ` gjl at gcc dot gnu.org
18 siblings, 0 replies; 20+ messages in thread
From: gjl at gcc dot gnu.org @ 2012-05-02 17:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to work| |4.5.4
Known to fail| |4.5.3
--- Comment #18 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-05-02 17:08:06 UTC ---
Backported to for 4.5.4
^ permalink raw reply [flat|nested] 20+ messages in thread