mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-27 09:34:14 +08:00
stormy16.md (negsi2): Allocate the pseudos before reload, but defer the split until after.
* config/stormy16/stormy16.md (negsi2): Allocate the pseudos before reload, but defer the split until after. * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify to match. From-SVN: r66485
This commit is contained in:
parent
517f33152b
commit
9be132116f
@ -1,3 +1,10 @@
|
||||
2003-05-05 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* config/stormy16/stormy16.md (negsi2): Allocate the pseudos
|
||||
before reload, but defer the split until after.
|
||||
* config/stormy16/stormy16.c (xstormy16_expand_arith): Modify
|
||||
to match.
|
||||
|
||||
2003-05-05 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support.
|
||||
|
@ -1873,22 +1873,15 @@ xstormy16_expand_arith (mode, code, dest, src0, src1, carry)
|
||||
int firstloop = 1;
|
||||
|
||||
if (code == NEG)
|
||||
{
|
||||
rtx zero_reg = gen_reg_rtx (word_mode);
|
||||
emit_move_insn (zero_reg, src0);
|
||||
src0 = zero_reg;
|
||||
}
|
||||
emit_move_insn (src0, const0_rtx);
|
||||
|
||||
for (i = 0; i < num_words; i++)
|
||||
{
|
||||
rtx w_src0, w_src1, w_dest;
|
||||
rtx insn;
|
||||
|
||||
if (code == NEG)
|
||||
w_src0 = src0;
|
||||
else
|
||||
w_src0 = simplify_gen_subreg (word_mode, src0, mode,
|
||||
i * UNITS_PER_WORD);
|
||||
w_src0 = simplify_gen_subreg (word_mode, src0, mode,
|
||||
i * UNITS_PER_WORD);
|
||||
w_src1 = simplify_gen_subreg (word_mode, src1, mode, i * UNITS_PER_WORD);
|
||||
w_dest = simplify_gen_subreg (word_mode, dest, mode, i * UNITS_PER_WORD);
|
||||
|
||||
|
@ -603,11 +603,23 @@
|
||||
[(set_attr "length" "4")])
|
||||
|
||||
(define_expand "negsi2"
|
||||
[(set (match_operand:SI 0 "register_operand" "")
|
||||
(neg:SI (match_operand:SI 1 "register_operand" "")))]
|
||||
[(parallel [(set (match_operand:SI 0 "register_operand" "")
|
||||
(neg:SI (match_operand:SI 1 "register_operand" "")))
|
||||
(clobber (match_scratch:BI 2 ""))])]
|
||||
""
|
||||
"{ xstormy16_expand_arith (SImode, NEG, operands[0], const0_rtx,
|
||||
operands[1], gen_reg_rtx (BImode)); DONE; }")
|
||||
"{ operands[2] = gen_reg_rtx (HImode);
|
||||
operands[3] = gen_reg_rtx (BImode); }")
|
||||
|
||||
(define_insn_and_split "*negsi2_internal"
|
||||
[(set (match_operand:SI 0 "register_operand" "=&r")
|
||||
(neg:SI (match_operand:SI 1 "register_operand" "r")))
|
||||
(clobber (match_scratch:BI 2 "=y"))]
|
||||
""
|
||||
"#"
|
||||
"reload_completed"
|
||||
[(pc)]
|
||||
"{ xstormy16_expand_arith (SImode, NEG, operands[0], operands[0],
|
||||
operands[1], operands[2]); DONE; }")
|
||||
|
||||
;; ::::::::::::::::::::
|
||||
;; ::
|
||||
|
Loading…
Reference in New Issue
Block a user