aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-12-10 14:21:03 -0800
committerRichard Henderson <rth@gcc.gnu.org>2001-12-10 14:21:03 -0800
commit864962bd13d3c56213579ce9676b3c5d8ff11ff4 (patch)
treeb103cd7ec6f40df6c1826fbabed50a7ed5ce677a
parentc5997381fc478503d29f0360d43b1ecf39097fc9 (diff)
downloadgcc-864962bd13d3c56213579ce9676b3c5d8ff11ff4.zip
gcc-864962bd13d3c56213579ce9676b3c5d8ff11ff4.tar.gz
gcc-864962bd13d3c56213579ce9676b3c5d8ff11ff4.tar.bz2
alpha.md (unaligned_extendhidi): Call gen_lowpart instead of hardcoding subregs into the _be and _le patterns.
* config/alpha/alpha.md (unaligned_extendhidi): Call gen_lowpart instead of hardcoding subregs into the _be and _le patterns. From-SVN: r47852
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/alpha/alpha.md12
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d13270b..3ca218d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-12-10 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.md (unaligned_extendhidi): Call gen_lowpart
+ instead of hardcoding subregs into the _be and _le patterns.
+
2001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
* c-lex.c, c-parse.in, c-typeck.c: Revert concatenation changes.
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index c9dbbae..b4a31ba 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -1806,10 +1806,10 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
(use (match_operand:DI 1 "address_operand" ""))]
""
{
- if (WORDS_BIG_ENDIAN)
- emit_insn (gen_unaligned_extendhidi_be (operands[0], operands[1]));
- else
- emit_insn (gen_unaligned_extendhidi_le (operands[0], operands[1]));
+ operands[0] = gen_lowpart (DImode, operands[0]);
+ emit_insn ((WORDS_BIG_ENDIAN
+ ? gen_unaligned_extendhidi_be
+ : gen_unaligned_extendhidi_le) (operands[0], operands[1]));
DONE;
})
@@ -1824,7 +1824,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
(ashift:DI
(and:DI (match_dup 2) (const_int 7))
(const_int 3)))))
- (set (subreg:DI (match_operand:QI 0 "register_operand" "") 0)
+ (set (match_operand:DI 0 "register_operand" "")
(ashiftrt:DI (match_dup 4) (const_int 48)))]
"! WORDS_BIG_ENDIAN"
{
@@ -1847,7 +1847,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
(plus:DI (match_dup 5) (const_int 1))
(const_int 7))
(const_int 3))))
- (set (subreg:DI (match_operand:QI 0 "register_operand" "") 0)
+ (set (match_operand:DI 0 "register_operand" "")
(ashiftrt:DI (match_dup 6) (const_int 48)))]
"WORDS_BIG_ENDIAN"
{