Commit 0a8f8c45 by Bernd Schmidt Committed by Bernd Schmidt

bfin.md (doloop_end): Fail for loops that can iterate 2^32-1 or more times unless...

	* config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
	2^32-1 or more times unless flag_unsafe_loop_optimizations.

From-SVN: r122262
parent 94217473
2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
2^32-1 or more times unless flag_unsafe_loop_optimizations.
2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.c (fold_builtin_logb, fold_builtin_significand): New.
......
......@@ -1639,7 +1639,16 @@
(unspec [(const_int 0)] UNSPEC_LSETUP_END)
(clobber (match_scratch:SI 5 ""))])]
""
{bfin_hardware_loop ();})
{
/* Due to limitations in the hardware (an initial loop count of 0
does not loop 2^32 times) we must avoid to generate a hardware
loops when we cannot rule out this case. */
if (!flag_unsafe_loop_optimizations
&& (unsigned HOST_WIDE_INT) INTVAL (operands[2]) >= 0xFFFFFFFF)
FAIL;
bfin_hardware_loop ();
})
(define_insn "loop_end"
[(set (pc)
......
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