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

Reply via email to