diff options
author | Joseph Myers <joseph@codesourcery.com> | 2013-07-09 23:35:46 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2013-07-09 23:35:46 +0100 |
commit | ef43e8689888e0e0b56f8fd2f97b5a9e5ee7e6b8 (patch) | |
tree | bb0b3cbc44cd1ffe3e3b116d993720028396407b /gcc/config/rs6000 | |
parent | d966b2749cc7addb143788e51b2e3e6ad43fb203 (diff) | |
download | gcc-ef43e8689888e0e0b56f8fd2f97b5a9e5ee7e6b8.zip gcc-ef43e8689888e0e0b56f8fd2f97b5a9e5ee7e6b8.tar.gz gcc-ef43e8689888e0e0b56f8fd2f97b5a9e5ee7e6b8.tar.bz2 |
rs6000.c (rs6000_init_hard_regno_mode_ok): Only adjust register size for TDmode and TFmode for VSX registers.
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
adjust register size for TDmode and TFmode for VSX registers.
From-SVN: r200853
Diffstat (limited to 'gcc/config/rs6000')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 2331c50..aabef7f 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -2518,7 +2518,8 @@ rs6000_init_hard_regno_mode_ok (bool global_init_p) int reg_size2 = reg_size; /* TFmode/TDmode always takes 2 registers, even in VSX. */ - if (m == TDmode || m == TFmode) + if (TARGET_VSX && VSX_REG_CLASS_P (c) + && (m == TDmode || m == TFmode)) reg_size2 = UNITS_PER_FP_WORD; rs6000_class_max_nregs[m][c] |