gcc-4.5/4.4: Bug in .subreg1 pass?
Jeff Law
law@redhat.com
Thu Feb 24 18:27:00 GMT 2011
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 02/24/11 10:04, Michael Matz wrote:
>
> Funny. As far back as I remember we consistently said that bits of the
> same word, but outside the subreg are left with undefined values after
> storing into the subreg, except if wrapped with a strict_low_part. In
> fact that's the whole point of strict_low_part. I'm pretty sure we assume
> this documented semantics in various parts of the compiler.
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.
And perhaps that means my statement to Georg is wrong -- I hadn't
considered the possibility that the subreg was smaller than a word. I
don't know the last time I saw a subreg like that :-)
jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJNZpRjAAoJEBRtltQi2kC7oywIAJSMlrcnulxq+/psqUoWinAT
J51bewFyhz/OXJvTVbctR4xcI1CwZeg7sQYgd3atPOYdKxKBNoIAdYjkEqtMxDrk
GVAQULQC7keT5hOuNrmKTKaPc2/uWl+68/hbrurG9JXkOzKqWRL2egLkeP/Pwnau
L++wEF0VtGJmbup1pbtuy1oITMgczFuvqzsN/49bZ69Br+C7J9rcNc8Y8QhPPIVg
hvC3WVUtta77L+20KVQFaQU5zHv3VFtjkPeu8eIcpaUWVuDQpl2jREZmaKRogoaw
XEGjmitKsMMQpyRUp/F5Uv+8xRamIMenOHl/C/c0AyCUkZoXxIddYwFqcCRhElc=
=m8rr
-----END PGP SIGNATURE-----
More information about the Gcc
mailing list