summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-10 22:21:03 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-10 22:21:03 +0000
commita11f49aa59dd7ec510f00ccb08e1a91f8f08350b (patch)
treeb103cd7ec6f40df6c1826fbabed50a7ed5ce677a /gcc
parent8cdc637ecc683b3faa5f38c2678844c0d98c2206 (diff)
downloadgcc-a11f49aa59dd7ec510f00ccb08e1a91f8f08350b.tar.gz
* config/alpha/alpha.md (unaligned_extendhidi): Call gen_lowpart
instead of hardcoding subregs into the _be and _le patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47852 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-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 d13270b45d6..3ca218db100 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 c9dbbaea737..b4a31ba31f5 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"
{