]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000.c (rs6000_init_hard_regno_mode_ok): Only adjust register size for TDmode and...
authorJoseph Myers <joseph@codesourcery.com>
Tue, 9 Jul 2013 22:35:46 +0000 (23:35 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 9 Jul 2013 22:35:46 +0000 (23:35 +0100)
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
adjust register size for TDmode and TFmode for VSX registers.

From-SVN: r200853

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index b7f2124ce29b0e29d9921ff34afb3c0337b23807..aeb7ccde9c1bd3d0bc8bec4918df7a2a410ed008 100644 (file)
@@ -1,3 +1,8 @@
+2013-07-09  Joseph Myers  <joseph@codesourcery.com>
+
+       * 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  <ktietz@redhat.com>
 
        PR target/56892
index 2331c5029c272250b373f2bf5bb799d64fd94532..aabef7f703c128756ac1888ba797eb5b06b892ae 100644 (file)
@@ -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]