Commit ef482a86 by Andreas Tobler Committed by Andreas Tobler

bb-reorder.c (fix_crossing_conditional_branches): Adjust the previous fix to…

bb-reorder.c (fix_crossing_conditional_branches): Adjust the previous fix to check HAVE_return at runtime too.

2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>

	* bb-reorder.c (fix_crossing_conditional_branches): Adjust the
	previous fix to check HAVE_return at runtime too.

From-SVN: r80685
parent d7afe286
2004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
* bb-reorder.c (fix_crossing_conditional_branches): Adjust the
previous fix to check HAVE_return at runtime too.
2004-04-14 Nick Clifton <nickc@redhat.com> 2004-04-14 Nick Clifton <nickc@redhat.com>
* config/arm/arm.c (arm_override_options): If the user has not * config/arm/arm.c (arm_override_options): If the user has not
......
...@@ -78,6 +78,7 @@ ...@@ -78,6 +78,7 @@
#include "fibheap.h" #include "fibheap.h"
#include "target.h" #include "target.h"
#include "function.h" #include "function.h"
#include "tm_p.h"
#include "obstack.h" #include "obstack.h"
#include "expr.h" #include "expr.h"
#include "regs.h" #include "regs.h"
...@@ -87,6 +88,15 @@ ...@@ -87,6 +88,15 @@
the .o file there will be an extra round.*/ the .o file there will be an extra round.*/
#define N_ROUNDS 5 #define N_ROUNDS 5
/* Stubs in case we don't have a return insn.
We have to check at runtime too, not only compiletime. */
#ifndef HAVE_return
#define HAVE_return 0
#define gen_return() NULL_RTX
#endif
/* Branch thresholds in thousandths (per mille) of the REG_BR_PROB_BASE. */ /* Branch thresholds in thousandths (per mille) of the REG_BR_PROB_BASE. */
static int branch_threshold[N_ROUNDS] = {400, 200, 100, 0, 0}; static int branch_threshold[N_ROUNDS] = {400, 200, 100, 0, 0};
...@@ -1684,11 +1694,10 @@ fix_crossing_conditional_branches (void) ...@@ -1684,11 +1694,10 @@ fix_crossing_conditional_branches (void)
(old_label), (old_label),
BB_END (new_bb)); BB_END (new_bb));
} }
#ifdef HAVE_return else if (HAVE_return
else if (GET_CODE (old_label) == RETURN) && GET_CODE (old_label) == RETURN)
new_jump = emit_jump_insn_after (gen_return (), new_jump = emit_jump_insn_after (gen_return (),
BB_END (new_bb)); BB_END (new_bb));
#endif
else else
abort (); abort ();
......
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