From 90e9ee6cc719c32595e2a9936229e6d4e87d88ac Mon Sep 17 00:00:00 2001 From: Alan Lehotsky Date: Mon, 25 Sep 2000 17:44:09 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/emit-rtl.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0c08c8e0241..b4d4ba5da88 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-09-24 Alan Lehotsky + + * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when + UNITS_PER_WORD is small. + 2000-09-25 Joseph S. Myers * c-common.c (format_char_info): Add flags2; update comments. diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index ac5e9655c36..2a4bdb9fcdb 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) -- 2.30.2