From 3f1f9228ce8368e771f369a83a9ce6394ca39399 Mon Sep 17 00:00:00 2001 From: Denis Chertykov Date: Thu, 2 Sep 2004 17:20:05 +0000 Subject: [PATCH] re PR target/16884 ([fweb related] bug while initialising variables) PR target/16884 * config/avr/avr.md ("movmemhi"): Substitute match_dup to match_scratch. (*movmemqi_insn): Likewise. (*movmemhi): Likewise. (clrmemhi): Likewise. (*clrmemqi): Likewise. (*clrmemhi): Likewise. From-SVN: r86970 --- gcc/ChangeLog | 11 +++++++++++ gcc/config/avr/avr.md | 36 +++++++++++++++--------------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index deafaa9b844..0d76135b82e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2004-09-02 Denis Chertykov + + PR target/16884 + * config/avr/avr.md ("movmemhi"): Substitute match_dup to + match_scratch. + (*movmemqi_insn): Likewise. + (*movmemhi): Likewise. + (clrmemhi): Likewise. + (*clrmemqi): Likewise. + (*clrmemhi): Likewise. + 2004-09-02 Paul Brook * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index e90af1c757a..0ab6e5f467c 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -350,8 +350,8 @@ (match_operand:BLK 1 "memory_operand" "")) (use (match_operand:HI 2 "const_int_operand" "")) (use (match_operand:HI 3 "const_int_operand" "")) - (clobber (match_dup 4)) - (clobber (match_dup 5)) + (clobber (match_scratch:HI 4 "")) + (clobber (match_scratch:HI 5 "")) (clobber (match_dup 6))])] "" "{ @@ -363,15 +363,12 @@ FAIL; cnt8 = byte_immediate_operand (operands[2], GET_MODE (operands[2])); mode = cnt8 ? QImode : HImode; + operands[6] = gen_rtx_SCRATCH (mode); operands[2] = copy_to_mode_reg (mode, gen_int_mode (INTVAL (operands[2]), mode)); - operands[4] = operands[2]; addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); addr1 = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); - operands[5] = addr0; - operands[6] = addr1; - operands[0] = gen_rtx_MEM (BLKmode, addr0); operands[1] = gen_rtx_MEM (BLKmode, addr1); }") @@ -381,9 +378,9 @@ (mem:BLK (match_operand:HI 1 "register_operand" "e"))) (use (match_operand:QI 2 "register_operand" "r")) (use (match_operand:QI 3 "const_int_operand" "i")) - (clobber (match_dup 2)) - (clobber (match_dup 0)) - (clobber (match_dup 1))] + (clobber (match_scratch:HI 4 "=0")) + (clobber (match_scratch:HI 5 "=1")) + (clobber (match_scratch:QI 6 "=2"))] "" "ld __tmp_reg__,%a1+ st %a0+,__tmp_reg__ @@ -397,9 +394,9 @@ (mem:BLK (match_operand:HI 1 "register_operand" "e,e"))) (use (match_operand:HI 2 "register_operand" "!w,d")) (use (match_operand:HI 3 "const_int_operand" "")) - (clobber (match_dup 2)) - (clobber (match_dup 0)) - (clobber (match_dup 1))] + (clobber (match_scratch:HI 4 "=0,0")) + (clobber (match_scratch:HI 5 "=1,1")) + (clobber (match_scratch:HI 6 "=2,2"))] "" "*{ if (which_alternative==0) @@ -425,7 +422,7 @@ (const_int 0)) (use (match_operand:HI 1 "const_int_operand" "")) (use (match_operand:HI 2 "const_int_operand" "n")) - (clobber (match_dup 3)) + (clobber (match_scratch:HI 3 "")) (clobber (match_dup 4))])] "" "{ @@ -438,13 +435,10 @@ cnt8 = byte_immediate_operand (operands[1], GET_MODE (operands[1])); mode = cnt8 ? QImode : HImode; + operands[4] = gen_rtx_SCRATCH (mode); operands[1] = copy_to_mode_reg (mode, gen_int_mode (INTVAL (operands[1]), mode)); - operands[3] = operands[1]; - addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); - operands[4] = addr0; - operands[0] = gen_rtx_MEM (BLKmode, addr0); }") @@ -453,8 +447,8 @@ (const_int 0)) (use (match_operand:QI 1 "register_operand" "r")) (use (match_operand:QI 2 "const_int_operand" "n")) - (clobber (match_dup 1)) - (clobber (match_dup 0))] + (clobber (match_scratch:HI 3 "=0")) + (clobber (match_scratch:QI 4 "=1"))] "" "st %a0+,__zero_reg__ dec %1 @@ -467,8 +461,8 @@ (const_int 0)) (use (match_operand:HI 1 "register_operand" "!w,d")) (use (match_operand:HI 2 "const_int_operand" "n,n")) - (clobber (match_dup 1)) - (clobber (match_dup 0))] + (clobber (match_scratch:HI 3 "=0,0")) + (clobber (match_scratch:HI 4 "=1,1"))] "" "*{ if (which_alternative==0) -- 2.30.2