Commit 3f1f9228 by Denis Chertykov Committed by Denis Chertykov

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
parent c0e01ad2
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> 2004-09-02 Paul Brook <paul@codesourcery.com>
* config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
......
...@@ -350,8 +350,8 @@ ...@@ -350,8 +350,8 @@
(match_operand:BLK 1 "memory_operand" "")) (match_operand:BLK 1 "memory_operand" ""))
(use (match_operand:HI 2 "const_int_operand" "")) (use (match_operand:HI 2 "const_int_operand" ""))
(use (match_operand:HI 3 "const_int_operand" "")) (use (match_operand:HI 3 "const_int_operand" ""))
(clobber (match_dup 4)) (clobber (match_scratch:HI 4 ""))
(clobber (match_dup 5)) (clobber (match_scratch:HI 5 ""))
(clobber (match_dup 6))])] (clobber (match_dup 6))])]
"" ""
"{ "{
...@@ -363,15 +363,12 @@ ...@@ -363,15 +363,12 @@
FAIL; FAIL;
cnt8 = byte_immediate_operand (operands[2], GET_MODE (operands[2])); cnt8 = byte_immediate_operand (operands[2], GET_MODE (operands[2]));
mode = cnt8 ? QImode : HImode; mode = cnt8 ? QImode : HImode;
operands[6] = gen_rtx_SCRATCH (mode);
operands[2] = copy_to_mode_reg (mode, operands[2] = copy_to_mode_reg (mode,
gen_int_mode (INTVAL (operands[2]), mode)); gen_int_mode (INTVAL (operands[2]), mode));
operands[4] = operands[2];
addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
addr1 = copy_to_mode_reg (Pmode, XEXP (operands[1], 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[0] = gen_rtx_MEM (BLKmode, addr0);
operands[1] = gen_rtx_MEM (BLKmode, addr1); operands[1] = gen_rtx_MEM (BLKmode, addr1);
}") }")
...@@ -381,9 +378,9 @@ ...@@ -381,9 +378,9 @@
(mem:BLK (match_operand:HI 1 "register_operand" "e"))) (mem:BLK (match_operand:HI 1 "register_operand" "e")))
(use (match_operand:QI 2 "register_operand" "r")) (use (match_operand:QI 2 "register_operand" "r"))
(use (match_operand:QI 3 "const_int_operand" "i")) (use (match_operand:QI 3 "const_int_operand" "i"))
(clobber (match_dup 2)) (clobber (match_scratch:HI 4 "=0"))
(clobber (match_dup 0)) (clobber (match_scratch:HI 5 "=1"))
(clobber (match_dup 1))] (clobber (match_scratch:QI 6 "=2"))]
"" ""
"ld __tmp_reg__,%a1+ "ld __tmp_reg__,%a1+
st %a0+,__tmp_reg__ st %a0+,__tmp_reg__
...@@ -397,9 +394,9 @@ ...@@ -397,9 +394,9 @@
(mem:BLK (match_operand:HI 1 "register_operand" "e,e"))) (mem:BLK (match_operand:HI 1 "register_operand" "e,e")))
(use (match_operand:HI 2 "register_operand" "!w,d")) (use (match_operand:HI 2 "register_operand" "!w,d"))
(use (match_operand:HI 3 "const_int_operand" "")) (use (match_operand:HI 3 "const_int_operand" ""))
(clobber (match_dup 2)) (clobber (match_scratch:HI 4 "=0,0"))
(clobber (match_dup 0)) (clobber (match_scratch:HI 5 "=1,1"))
(clobber (match_dup 1))] (clobber (match_scratch:HI 6 "=2,2"))]
"" ""
"*{ "*{
if (which_alternative==0) if (which_alternative==0)
...@@ -425,7 +422,7 @@ ...@@ -425,7 +422,7 @@
(const_int 0)) (const_int 0))
(use (match_operand:HI 1 "const_int_operand" "")) (use (match_operand:HI 1 "const_int_operand" ""))
(use (match_operand:HI 2 "const_int_operand" "n")) (use (match_operand:HI 2 "const_int_operand" "n"))
(clobber (match_dup 3)) (clobber (match_scratch:HI 3 ""))
(clobber (match_dup 4))])] (clobber (match_dup 4))])]
"" ""
"{ "{
...@@ -438,13 +435,10 @@ ...@@ -438,13 +435,10 @@
cnt8 = byte_immediate_operand (operands[1], GET_MODE (operands[1])); cnt8 = byte_immediate_operand (operands[1], GET_MODE (operands[1]));
mode = cnt8 ? QImode : HImode; mode = cnt8 ? QImode : HImode;
operands[4] = gen_rtx_SCRATCH (mode);
operands[1] = copy_to_mode_reg (mode, operands[1] = copy_to_mode_reg (mode,
gen_int_mode (INTVAL (operands[1]), mode)); gen_int_mode (INTVAL (operands[1]), mode));
operands[3] = operands[1];
addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
operands[4] = addr0;
operands[0] = gen_rtx_MEM (BLKmode, addr0); operands[0] = gen_rtx_MEM (BLKmode, addr0);
}") }")
...@@ -453,8 +447,8 @@ ...@@ -453,8 +447,8 @@
(const_int 0)) (const_int 0))
(use (match_operand:QI 1 "register_operand" "r")) (use (match_operand:QI 1 "register_operand" "r"))
(use (match_operand:QI 2 "const_int_operand" "n")) (use (match_operand:QI 2 "const_int_operand" "n"))
(clobber (match_dup 1)) (clobber (match_scratch:HI 3 "=0"))
(clobber (match_dup 0))] (clobber (match_scratch:QI 4 "=1"))]
"" ""
"st %a0+,__zero_reg__ "st %a0+,__zero_reg__
dec %1 dec %1
...@@ -467,8 +461,8 @@ ...@@ -467,8 +461,8 @@
(const_int 0)) (const_int 0))
(use (match_operand:HI 1 "register_operand" "!w,d")) (use (match_operand:HI 1 "register_operand" "!w,d"))
(use (match_operand:HI 2 "const_int_operand" "n,n")) (use (match_operand:HI 2 "const_int_operand" "n,n"))
(clobber (match_dup 1)) (clobber (match_scratch:HI 3 "=0,0"))
(clobber (match_dup 0))] (clobber (match_scratch:HI 4 "=1,1"))]
"" ""
"*{ "*{
if (which_alternative==0) if (which_alternative==0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment