aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Lehotsky <alehotsky@cygnus.com>2000-09-25 17:44:09 +0000
committerRichard Henderson <rth@gcc.gnu.org>2000-09-25 10:44:09 -0700
commit90e9ee6cc719c32595e2a9936229e6d4e87d88ac (patch)
tree6d7aed6b1f0dfc7a7d16ba327ff3375278ce95ac
parentbe54495730aff9630aca762dd7f03c5b897cc787 (diff)
downloadgcc-90e9ee6cc719c32595e2a9936229e6d4e87d88ac.zip
gcc-90e9ee6cc719c32595e2a9936229e6d4e87d88ac.tar.gz
gcc-90e9ee6cc719c32595e2a9936229e6d4e87d88ac.tar.bz2
emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when UNITS_PER_WORD is small.
* emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when UNITS_PER_WORD is small. From-SVN: r36625
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/emit-rtl.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0c08c8e..b4d4ba5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index ac5e965..2a4bdb9 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -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)