[NDS32] Refine movcc, cmov, cstore and cbranch patterns.
authorChung-Ju Wu <jasonwucj@gmail.com>
Wed, 4 Apr 2018 08:48:56 +0000 (08:48 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Wed, 4 Apr 2018 08:48:56 +0000 (08:48 +0000)
commit6e9ca9328ae625ad366d6a1043f2b8df58b56cb6
treee5a377918a8b280b3fbb5af53e7e8c0bbd60c7c0
parent5ba6d58573ac8f5e9437be68df85d9651deb04db
[NDS32] Refine movcc, cmov, cstore and cbranch patterns.

gcc/
* config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code,
nds32_cond_code_str, output_cond_branch,
output_cond_branch_compare_zero, nds32_expand_cbranch,
nds32_expand_cstore, nds32_expand_movcc,
nds32_output_cbranchsi4_equality_zero,
nds32_output_cbranchsi4_equality_reg,
nds32_output_cbranchsi4_equality_reg_or_const_int,
nds32_output_cbranchsi4_greater_less_zero: New functions.
* config/nds32/nds32-protos.h (nds32_expand_cbranch,
nds32_expand_cstore, nds32_expand_movcc,
nds32_output_cbranchsi4_equality_zero,
nds32_output_cbranchsi4_equality_reg,
nds32_output_cbranchsi4_equality_reg_or_const_int,
nds32_output_cbranchsi4_greater_less_zero): Declare.
* config/nds32/predicates.md (nds32_movecc_comparison_operator,
nds32_rimm11s_operand): New predicates.
* config/nds32/nds32.h (nds32_expand_result_type): New enum type.
* config/nds32/nds32.md: Rewrite all the branch and conditional move
patterns.

Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
From-SVN: r259070
gcc/ChangeLog
gcc/config/nds32/nds32-md-auxiliary.c
gcc/config/nds32/nds32-protos.h
gcc/config/nds32/nds32.h
gcc/config/nds32/nds32.md
gcc/config/nds32/predicates.md