diff options
| author | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-28 11:24:21 +0000 |
|---|---|---|
| committer | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-28 11:24:21 +0000 |
| commit | 4e110ef607ac6a8a956bf4e966f590bebe6c7d7e (patch) | |
| tree | fce63da8f5fdb073aafeb8f95a7067fdc76d84d9 | |
| parent | 15943825f61000481adcae55e35a999e29f563b0 (diff) | |
| download | ppe42-gcc-4e110ef607ac6a8a956bf4e966f590bebe6c7d7e.tar.gz ppe42-gcc-4e110ef607ac6a8a956bf4e966f590bebe6c7d7e.zip | |
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
generate non-offsettable DImode lo_sum addresses.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92670 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/rs6000/rs6000.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a81f33249b..fd24ff28402 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-12-28 Alan Modra <amodra@bigpond.net.au> + + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't + generate non-offsettable DImode lo_sum addresses. + 2004-12-28 Zdenek Dvorak <dvorakz@suse.cz> PR rtl-optimization/19103 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 95a7b1619bf..7802e3835e5 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -3845,8 +3845,10 @@ rs6000_legitimize_reload_address (rtx x, enum machine_mode mode, && DEFAULT_ABI == ABI_DARWIN && !ALTIVEC_VECTOR_MODE (mode) && (flag_pic || MACHO_DYNAMIC_NO_PIC_P) - /* Don't do this for TFmode, since the result isn't offsettable. */ - && mode != TFmode) + /* Don't do this for TFmode, since the result isn't offsettable. + The same goes for DImode without 64-bit gprs. */ + && mode != TFmode + && (mode != DImode || TARGET_POWERPC64)) { if (flag_pic) { |

