[NDS32] Refine movcc, cmov, cstore and cbranch patterns.
commit81788af7677247c03a30cd8fccb9709be0f79ed6
authorjasonwucj <jasonwucj@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Apr 2018 08:48:56 +0000 (4 08:48 +0000)
committerjasonwucj <jasonwucj@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Apr 2018 08:48:56 +0000 (4 08:48 +0000)
treee5a377918a8b280b3fbb5af53e7e8c0bbd60c7c0
parent78d8553cdafe18988a2833c795fcf8cf04b249c4
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@259070 138bc75d-0d04-0410-961f-82ee72b054a4
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