emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when UNITS_PER_WORD...
authorAlan Lehotsky <alehotsky@cygnus.com>
Mon, 25 Sep 2000 17:44:09 +0000 (17:44 +0000)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 25 Sep 2000 17:44:09 +0000 (10:44 -0700)
        * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
        UNITS_PER_WORD is small.

From-SVN: r36625

gcc/ChangeLog
gcc/emit-rtl.c

index 0c08c8e0241019d87618326e1d6ca594a1b80f53..b4d4ba5da88bf2cc203ce46d3e59ea2077d5fc72 100644 (file)
@@ -1,3 +1,8 @@
+2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
+
+       * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
+       UNITS_PER_WORD is small.
+
 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
 
        * c-common.c (format_char_info): Add flags2; update comments.
index ac5e9655c36ffe6fcbb491004bbd3a53f7f5249e..2a4bdb9fcdbc8df1c2f4d68bea0e4e2a1011fb0a 100644 (file)
@@ -707,7 +707,8 @@ gen_lowpart_common (mode, x)
        return gen_rtx_fmt_e (GET_CODE (x), mode, XEXP (x, 0));
     }
   else if (GET_CODE (x) == SUBREG
-          && (GET_MODE_SIZE (mode) <= UNITS_PER_WORD
+          && (GET_MODE_SIZE (mode) <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))
+              || GET_MODE_SIZE (mode) <= UNITS_PER_WORD
               || GET_MODE_SIZE (mode) == GET_MODE_UNIT_SIZE (GET_MODE (x))))
     return (GET_MODE (SUBREG_REG (x)) == mode && SUBREG_WORD (x) == 0
            ? SUBREG_REG (x)