Replace REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target
authorH.J. Lu <hongjiu.lu@intel.com>
Wed, 22 Aug 2012 19:43:58 +0000 (19:43 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Wed, 22 Aug 2012 19:43:58 +0000 (12:43 -0700)
PR target/54347
* config/i386/i386.c (ix86_split_to_parts): Replace
REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target.

From-SVN: r190598

gcc/ChangeLog
gcc/config/i386/i386.c

index f965a4ea11453d94c7dc51440961581fbdb5b3d1..085bef1a3c7bb3900b7966ec4e7a306618cabff6 100644 (file)
@@ -1,3 +1,9 @@
+2012-08-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/54347
+       * config/i386/i386.c (ix86_split_to_parts): Replace
+       REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target.
+
 2012-08-22  Richard Guenther  <rguenther@suse.de>
 
        * tree-vectorizer.c (vectorize_loops): Do not call
index 5da4da2b8a9f0640f70642ed30275e1f286e80f9..a6fc45b047a94cae89b44171c9cf85f3a05446d2 100644 (file)
@@ -20743,7 +20743,9 @@ ix86_split_to_parts (rtx operand, rtx *parts, enum machine_mode mode)
                  parts[2] = gen_int_mode (l[2], SImode);
                  break;
                case XFmode:
-                 REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, l);
+                 /* We can't use REAL_VALUE_TO_TARGET_LONG_DOUBLE since
+                    long double may not be 80-bit.  */
+                 real_to_target (l, &r, mode);
                  parts[2] = gen_int_mode (l[2], SImode);
                  break;
                case DFmode: