This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/25703] [4.2 Regression] ACATS cxa4024 failure



------- Comment #13 from ebotcazou at gcc dot gnu dot org  2006-01-25 20:15 -------
> My apologies once again for the inconvenience.  In the previous version of the
> patch I'd mistakenly assumed that STRICT_LOW_PART was some indication that the
> SUBREG only affected the "low_part".  Investigating Jan's testcase with
> -mtune=i486, I now understand it really means STRICT_SUB_PART, and actually
> behaves identically to SUBREG in this optimization, as we preserve all of the
> unaffected bits anyway!

You're right, the manual doesn't seem to allow that kind of STRICT_LOW_PARTs:

`(strict_low_part (subreg:M (reg:N R) 0))'
     This expression code is used in only one context: as the
     destination operand of a `set' expression.  In addition, the
     operand of this expression must be a non-paradoxical `subreg'
     expression.

     The presence of `strict_low_part' says that the part of the
     register which is meaningful in mode N, but is not part of mode M,
     is not to be altered.  Normally, an assignment to such a subreg is
     allowed to have undefined effects on the rest of the register when
     M is less than a word.

Is that a typo in the manual?  What happens on big-endian?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25703


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]