From 721cedf2517390c2fd7b7f2c3272177ff1a50f10 Mon Sep 17 00:00:00 2001 From: Kazuhiro Inaoka Date: Thu, 27 Jul 2006 12:21:39 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/m32r/m32r.md | 14 ++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6987f9c9b6d..31261ce4aac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2006-07-27 Kazuhiro Inaoka + + PR gcc/28508 + * config/m32r/m32r.md (branch_insn): Reduce pc range for short + branch. + (rev_branch_insn): Likewise. + 2006-07-27 Jan Hubicka PR rtl-optimization/28071 diff --git a/gcc/config/m32r/m32r.md b/gcc/config/m32r/m32r.md index 9b35d14f74f..552dd3f0ef3 100644 --- a/gcc/config/m32r/m32r.md +++ b/gcc/config/m32r/m32r.md @@ -1378,15 +1378,16 @@ return instruction; }" [(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. ; It's not important that we be hyper-precise here. It may be more ; important blah blah blah when the chip supports parallel execution ; blah blah blah but until then blah blah blah this is simple and ; suffices. (set (attr "length") (if_then_else (ltu (plus (minus (match_dup 0) (pc)) - (const_int 400)) - (const_int 800)) + (const_int 300)) + (const_int 600)) (const_int 2) (const_int 4)))]) @@ -1407,15 +1408,16 @@ return instruction; }" [(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. ; It's not important that we be hyper-precise here. It may be more ; important blah blah blah when the chip supports parallel execution ; blah blah blah but until then blah blah blah this is simple and ; suffices. (set (attr "length") (if_then_else (ltu (plus (minus (match_dup 0) (pc)) - (const_int 400)) - (const_int 800)) + (const_int 300)) + (const_int 600)) (const_int 2) (const_int 4)))]) -- 2.30.2