small alphaev4 tweak
Richard Henderson
rth@twiddle.net
Mon Dec 10 14:23:00 GMT 2001
Noticed while debugging another problem that we generated
(subreg:DI (reg:DI X) 0)
r~
* config/alpha/alpha.md (unaligned_extendhidi): Call gen_lowpart
instead of hardcoding subregs into the _be and _le patterns.
Index: alpha.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.md,v
retrieving revision 1.163
diff -c -p -d -r1.163 alpha.md
*** alpha.md 2001/12/09 20:13:05 1.163
--- alpha.md 2001/12/10 22:06:26
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1806,1815 ****
(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]));
DONE;
})
--- 1806,1815 ----
(use (match_operand:DI 1 "address_operand" ""))]
""
{
! 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;
})
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1824,1830 ****
(ashift:DI
(and:DI (match_dup 2) (const_int 7))
(const_int 3)))))
! (set (subreg:DI (match_operand:QI 0 "register_operand" "") 0)
(ashiftrt:DI (match_dup 4) (const_int 48)))]
"! WORDS_BIG_ENDIAN"
{
--- 1824,1830 ----
(ashift:DI
(and:DI (match_dup 2) (const_int 7))
(const_int 3)))))
! (set (match_operand:DI 0 "register_operand" "")
(ashiftrt:DI (match_dup 4) (const_int 48)))]
"! WORDS_BIG_ENDIAN"
{
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 1847,1853 ****
(plus:DI (match_dup 5) (const_int 1))
(const_int 7))
(const_int 3))))
! (set (subreg:DI (match_operand:QI 0 "register_operand" "") 0)
(ashiftrt:DI (match_dup 6) (const_int 48)))]
"WORDS_BIG_ENDIAN"
{
--- 1847,1853 ----
(plus:DI (match_dup 5) (const_int 1))
(const_int 7))
(const_int 3))))
! (set (match_operand:DI 0 "register_operand" "")
(ashiftrt:DI (match_dup 6) (const_int 48)))]
"WORDS_BIG_ENDIAN"
{
More information about the Gcc-patches
mailing list