* emit-rtl.c (gen_lowpart_common): Handle more case where converting
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Jan 1998 23:05:08 +0000 (23:05 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Jan 1998 23:05:08 +0000 (23:05 +0000)
        a CONST_INT into SFmode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17498 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/emit-rtl.c

index 518c8e5..ce25f7e 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jan 27 00:07:02 1998  Jeffrey A Law  (law@cygnus.com)
+
+        * emit-rtl.c (gen_lowpart_common): Handle more case where converting
+       a CONST_INT into SFmode.
+
 Tue Jan 20 16:01:03 1998  Anthony Green  <green@cygnus.com>
 
        * flags.h: New flag (optimize_size).
index c20a9c3..602766d 100644 (file)
@@ -795,14 +795,10 @@ gen_lowpart_common (mode, x)
 #endif
 
   /* We need an extra case for machines where HOST_BITS_PER_WIDE_INT is the
-     same as sizeof (double), such as the alpha.  We only handle the
-     REAL_ARITHMETIC case, which is easy.  Testing HOST_BITS_PER_WIDE_INT
-     is not strictly necessary, but is done to restrict this code to cases
-     where it is known to work.  */
+     same as sizeof (double) or when sizeof (float) is larger than the
+     size of a word on the target machine.  */
 #ifdef REAL_ARITHMETIC
-  else if (mode == SFmode
-          && GET_CODE (x) == CONST_INT
-          && GET_MODE_BITSIZE (mode) * 2 == HOST_BITS_PER_WIDE_INT)
+  else if (mode == SFmode && GET_CODE (x) == CONST_INT)
     {
       REAL_VALUE_TYPE r;
       HOST_WIDE_INT i;