This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/41894] wrong code with -fno-split-wide-types
- From: "avr at gjlay dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 13 Mar 2011 12:07:22 +0000
- Subject: [Bug target/41894] wrong code with -fno-split-wide-types
- Auto-submitted: auto-generated
- References: <bug-41894-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41894
Georg-Johann Lay <avr at gjlay dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |avr at gjlay dot de
--- Comment #10 from Georg-Johann Lay <avr at gjlay dot de> 2011-03-13 12:07:06 UTC ---
(In reply to comment #9)
> Closing as fixed in 4.5.0.
Why and how is this bug fixed? Slight variations in source/compiler will make
this bug appear/disappear, so that testing the same source against other
compiler version does not tell wether or not the bug actually has gone.
QImode still is not allowed in r28/r29.
PR46779 (4.4.x) and PR45291 (4.5.x) are duplicates for this bug in different
compiler versions.
Some passes like subreg lowering, RTL lowering generate
(set (subreg:QI (REG:HI ...
where HI reg finally gets allocated to r29:r28, however, the subreg is not
allowed in r28 resp. r29 leading to wrong code.
See also comment in
http://gcc.gnu.org/ml/gcc/2011-02/msg00498.html
All the hacks in avr_hard_regno_mode_ok just work around prolems somewhere
else, and maybe around problems that have been fixed long ago.
IMO avr_hard_regno_mode_ok should be written according to documentation and
look what regressions that triggers, if any.
Johann