Commit 721cedf2 by Kazuhiro Inaoka Committed by Nick Clifton

re PR target/28508 (Assembler Error: operand out of range (145 not between -128…

re PR target/28508 (Assembler Error: operand out of range (145 not between -128 and 127) form m32r-target)

PR gcc/28508
* config/m32r/m32r.md (branch_insn): Reduce pc range for short branch.
 (rev_branch_insn): Likewise.

From-SVN: r115773
parent 5587bfea
2006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
PR gcc/28508
* config/m32r/m32r.md (branch_insn): Reduce pc range for short
branch.
(rev_branch_insn): Likewise.
2006-07-27 Jan Hubicka <jh@suse.cz> 2006-07-27 Jan Hubicka <jh@suse.cz>
PR rtl-optimization/28071 PR rtl-optimization/28071
......
...@@ -1378,15 +1378,16 @@ ...@@ -1378,15 +1378,16 @@
return instruction; return instruction;
}" }"
[(set_attr "type" "branch") [(set_attr "type" "branch")
; We use 400/800 instead of 512,1024 to account for inaccurate insn ; cf PR gcc/28508
; We use 300/600 instead of 512,1024 to account for inaccurate insn
; lengths and insn alignments that are complex to track. ; lengths and insn alignments that are complex to track.
; It's not important that we be hyper-precise here. It may be more ; It's not important that we be hyper-precise here. It may be more
; important blah blah blah when the chip supports parallel execution ; important blah blah blah when the chip supports parallel execution
; blah blah blah but until then blah blah blah this is simple and ; blah blah blah but until then blah blah blah this is simple and
; suffices. ; suffices.
(set (attr "length") (if_then_else (ltu (plus (minus (match_dup 0) (pc)) (set (attr "length") (if_then_else (ltu (plus (minus (match_dup 0) (pc))
(const_int 400)) (const_int 300))
(const_int 800)) (const_int 600))
(const_int 2) (const_int 2)
(const_int 4)))]) (const_int 4)))])
...@@ -1407,15 +1408,16 @@ ...@@ -1407,15 +1408,16 @@
return instruction; return instruction;
}" }"
[(set_attr "type" "branch") [(set_attr "type" "branch")
; We use 400/800 instead of 512,1024 to account for inaccurate insn ; cf PR gcc/28508
; We use 300/600 instead of 512,1024 to account for inaccurate insn
; lengths and insn alignments that are complex to track. ; lengths and insn alignments that are complex to track.
; It's not important that we be hyper-precise here. It may be more ; It's not important that we be hyper-precise here. It may be more
; important blah blah blah when the chip supports parallel execution ; important blah blah blah when the chip supports parallel execution
; blah blah blah but until then blah blah blah this is simple and ; blah blah blah but until then blah blah blah this is simple and
; suffices. ; suffices.
(set (attr "length") (if_then_else (ltu (plus (minus (match_dup 0) (pc)) (set (attr "length") (if_then_else (ltu (plus (minus (match_dup 0) (pc))
(const_int 400)) (const_int 300))
(const_int 800)) (const_int 600))
(const_int 2) (const_int 2)
(const_int 4)))]) (const_int 4)))])
......
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