* expmed.c (emit_store_flag_1): New function.
commit595d88b592402d3f629fa77662f81ea572a8a1bf
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Nov 2006 23:25:43 +0000 (14 23:25 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Nov 2006 23:25:43 +0000 (14 23:25 +0000)
tree07b49d656bca875286894404e9122b058e2a2a0e
parentae0788d3e71731902b1b55ee6af8a6e767443a4e
* expmed.c (emit_store_flag_1): New function.
(emit_store_flag): Call it.  If we can't find a suitable scc insn,
try a cstore insn.
* expr.c (do_store_flag): If we can't find a scc insn, try cstore.
Use do_compare_rtx_and_jump.
* arm.h (BRANCH_COST): Increase to 2 on Thumb.
* arm.md (cstoresi4): New define_expand.
(cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
(cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
(cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.

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