From d738e1ee3bb40d189c8580a3e895d1b849d65863 Mon Sep 17 00:00:00 2001 From: jsm28 Date: Tue, 9 Jul 2013 22:35:46 +0000 Subject: [PATCH] * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only adjust register size for TDmode and TFmode for VSX registers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200853 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/rs6000/rs6000.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b7f2124ce29..aeb7ccde9c1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-07-09 Joseph Myers + + * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only + adjust register size for TDmode and TFmode for VSX registers. + 2013-07-08 Kai Tietz PR target/56892 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 2331c5029c2..aabef7f703c 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] -- 2.11.4.GIT