[Bug target/54009] incorrect code generated for DFmode lo_sum mem
amodra at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Jul 24 12:43:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54009
Alan Modra <amodra at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.8.0
--- Comment #2 from Alan Modra <amodra at gmail dot com> 2012-07-24 12:43:23 UTC ---
The x+32768 assembly is fixed, but errors remain. If you change the testcase
slightly, substituting 32764 with a smaller value, 2764 say, then r() accesses
x.d with an indirect address while w() does so using a lo_sum with an offset.
This is wrong if the extern x is such that d straddles a 32k boundary. In the
case of r(), the indirect address is generated in rs6000_split_multireg_move.
It seems the fix for pr42427 specifically excluded lo_sum addresses, but if I
read the diff correctly, before that patch they were split.
More information about the Gcc-bugs
mailing list