[Bug rtl-optimization/25703] [4.2 Regression] ACATS cxa4024 failure
ebotcazou at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Jan 25 20:15:00 GMT 2006
------- 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
More information about the Gcc-bugs
mailing list