diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-12-10 22:21:03 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-12-10 22:21:03 +0000 |
commit | a11f49aa59dd7ec510f00ccb08e1a91f8f08350b (patch) | |
tree | b103cd7ec6f40df6c1826fbabed50a7ed5ce677a /gcc | |
parent | 8cdc637ecc683b3faa5f38c2678844c0d98c2206 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.md | 12 |
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" { |