Commit 8dcb5295 by Richard Henderson Committed by Richard Henderson

sparc.md (jump): Don't use the annul bit around an empty loop.

* sparc.md (jump): Don't use the annul bit around an empty loop.
Patch from Kevin.Kelly@East.Sun.COM.

From-SVN: r17124
parent a99503b1
Wed Dec 17 15:06:04 1997 Richard Henderson <rth@cygnus.com>
* sparc.md (jump): Don't use the annul bit around an empty loop.
Patch from Kevin.Kelly@East.Sun.COM.
Wed Dec 17 00:51:36 1997 Stan Cox (scox@cygnus.com) Wed Dec 17 00:51:36 1997 Stan Cox (scox@cygnus.com)
* jump.c: (optimize_jump): Don't use the return register as a * jump.c: (optimize_jump): Don't use the return register as a
......
...@@ -5014,7 +5014,21 @@ ...@@ -5014,7 +5014,21 @@
(define_insn "jump" (define_insn "jump"
[(set (pc) (label_ref (match_operand 0 "" "")))] [(set (pc) (label_ref (match_operand 0 "" "")))]
"" ""
"b%* %l0%(" "*
{
/* Some implementations are reported to have problems with
foo: b,a foo
i.e. an empty loop with the annul bit set. The workaround is to use
foo: b foo; nop
instead. */
if (flag_delayed_branch
&& (insn_addresses[INSN_UID (operands[0])]
== insn_addresses[INSN_UID (insn)]))
return \"b %l0%#\";
else
return \"b%* %l0%(\";
}"
[(set_attr "type" "uncond_branch")]) [(set_attr "type" "uncond_branch")])
(define_expand "tablejump" (define_expand "tablejump"
......
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