aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-07-09 23:35:46 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2013-07-09 23:35:46 +0100
commitef43e8689888e0e0b56f8fd2f97b5a9e5ee7e6b8 (patch)
treebb0b3cbc44cd1ffe3e3b116d993720028396407b /gcc/config/rs6000
parentd966b2749cc7addb143788e51b2e3e6ad43fb203 (diff)
downloadgcc-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.c3
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]