* config/bfin/bfin.h (splitting_loops): Declare.
commit0fead507b0bbd5e7ef37e2be8741edeb59d938ce
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Apr 2009 14:13:30 +0000 (29 14:13 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Apr 2009 14:13:30 +0000 (29 14:13 +0000)
tree605b2645dd503827a41c1698cdd031e1168173e7
parentd7730ba706be83376f4def36908e5a391d397fb8
* config/bfin/bfin.h (splitting_loops): Declare.
* config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
Reorder bit definitions to be ascending.
(WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
* config/bfin/bfin.c (splitting_loops): New variable.
(bfin_cpus): Add WA_LOAD_LCREGS as needed.
(struct loop_info): Remove members INIT and LOOP_INIT.
(bfin_optimize_loop): Don't set them.  Reorder the code that generates
the LSETUP sequence.  Allow LC to be loaded from any register, but also
add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
(bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
set to 1.
* config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
of reload_completed.
From Jie Zhang:
* config/bfin/bfin.md (movsi_insn): Refine constraints.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146971 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/bfin/bfin-protos.h
gcc/config/bfin/bfin.c
gcc/config/bfin/bfin.h
gcc/config/bfin/bfin.md