+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.
(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;
})
(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"
{
(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"
{