aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Chertykov <denisc@overta.ru>2004-09-02 17:20:05 +0000
committerDenis Chertykov <denisc@gcc.gnu.org>2004-09-02 21:20:05 +0400
commit3f1f9228ce8368e771f369a83a9ce6394ca39399 (patch)
tree51b3826b3898444786b2886651fff67acae59556
parentc0e01ad29c7a4c1b76109a7bbd7411327d6c3bbc (diff)
downloadgcc-3f1f9228ce8368e771f369a83a9ce6394ca39399.zip
gcc-3f1f9228ce8368e771f369a83a9ce6394ca39399.tar.gz
gcc-3f1f9228ce8368e771f369a83a9ce6394ca39399.tar.bz2
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
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/avr/avr.md36
2 files changed, 26 insertions, 21 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index deafaa9..0d76135 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2004-09-02 Denis Chertykov <denisc@overta.ru>
+
+ 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 <paul@codesourcery.com>
* config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index e90af1c..0ab6e5f 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)