gcc-4.5/4.4: Bug in .subreg1 pass?
Eric Botcazou
ebotcazou@adacore.com
Thu Feb 24 19:23:00 GMT 2011
> Maybe the misunderstanding occurs when the mode of the subreg is less
> than word_size? It would certainly make sense that a subreg write of
> less than word_size leaves the bits undefined.
>
> ie, if word_size is SImode and we had a write to
>
> (subreg:HI (reg:SI) 0)
>
> Then the upper bits are left undefined.
>
>
> Contrast that to the same RTL, but word_size is HImode
>
> (subreg:HI (reg:SI) 0)
>
> Would leave the upper bits untouched.
That's the conventional wisdom I think. Sub-word and word-sized subregs don't
behave the same, in particular when they are on the LHS of an assignment.
--
Eric Botcazou
More information about the Gcc
mailing list