diff options
Diffstat (limited to 'gcc/config/rs6000/rs6000.c')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 95a7b16..7802e38 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) { |