Commit 7a12ea32 by Monk Chiang Committed by Chung-Ju Wu

[NDS32] Rewrite infrastructure for intrinsic.

gcc/
	* config/nds32/nds32-intrinsic.c
	(nds32_expand_builtin_null_ftype_reg): Delete.
	(nds32_expand_builtin_reg_ftype_imm): Ditto.
	(nds32_expand_builtin_null_ftype_reg_imm): Ditto.
	(nds32_read_argument): New.
	(nds32_legitimize_target): Ditto.
	(nds32_legitimize_argument): Ditto.
	(nds32_check_constant_argument): Ditto.
	(nds32_expand_unop_builtin): Ditto.
	(nds32_expand_unopimm_builtin): Ditto.
	(nds32_expand_binop_builtin): Ditto.
	(nds32_builtin_decl_impl): Ditto.
	(builtin_description): Ditto.
	(nds32_expand_builtin_impl): Rewrite with new infrastructure.
	(nds32_init_builtins_impl): Ditto.
	* config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define.
	(nds32_builtin_decl): New.
	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT.
	* config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>

From-SVN: r258211
parent c8bd326c
2018-03-03 Monk Chiang <sh.chiang04@gmail.com>
Kito Cheng <kito.cheng@gmail.com>
Chung-Ju Wu <jasonwucj@gmail.com>
* config/nds32/nds32-intrinsic.c
(nds32_expand_builtin_null_ftype_reg): Delete.
(nds32_expand_builtin_reg_ftype_imm): Ditto.
(nds32_expand_builtin_null_ftype_reg_imm): Ditto.
(nds32_read_argument): New.
(nds32_legitimize_target): Ditto.
(nds32_legitimize_argument): Ditto.
(nds32_check_constant_argument): Ditto.
(nds32_expand_unop_builtin): Ditto.
(nds32_expand_unopimm_builtin): Ditto.
(nds32_expand_binop_builtin): Ditto.
(nds32_builtin_decl_impl): Ditto.
(builtin_description): Ditto.
(nds32_expand_builtin_impl): Rewrite with new infrastructure.
(nds32_init_builtins_impl): Ditto.
* config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define.
(nds32_builtin_decl): New.
* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT.
* config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare.
2018-03-02 Jeff Law <law@redhat.com> 2018-03-02 Jeff Law <law@redhat.com>
* reorg.c (stop_search_p): Handle DEBUG_INSN. * reorg.c (stop_search_p): Handle DEBUG_INSN.
......
...@@ -125,6 +125,7 @@ extern int nds32_target_alignment (rtx_insn *); ...@@ -125,6 +125,7 @@ extern int nds32_target_alignment (rtx_insn *);
extern void nds32_init_builtins_impl (void); extern void nds32_init_builtins_impl (void);
extern rtx nds32_expand_builtin_impl (tree, rtx, rtx, extern rtx nds32_expand_builtin_impl (tree, rtx, rtx,
machine_mode, int); machine_mode, int);
extern tree nds32_builtin_decl_impl (unsigned, bool);
/* Auxiliary functions for ISR implementation. */ /* Auxiliary functions for ISR implementation. */
......
...@@ -2728,6 +2728,13 @@ nds32_init_builtins (void) ...@@ -2728,6 +2728,13 @@ nds32_init_builtins (void)
nds32_init_builtins_impl (); nds32_init_builtins_impl ();
} }
static tree
nds32_builtin_decl (unsigned code, bool initialize_p)
{
/* Implement in nds32-intrinsic.c. */
return nds32_builtin_decl_impl (code, initialize_p);
}
static rtx static rtx
nds32_expand_builtin (tree exp, nds32_expand_builtin (tree exp,
rtx target, rtx target,
...@@ -3825,6 +3832,9 @@ nds32_target_alignment (rtx_insn *label) ...@@ -3825,6 +3832,9 @@ nds32_target_alignment (rtx_insn *label)
#undef TARGET_INIT_BUILTINS #undef TARGET_INIT_BUILTINS
#define TARGET_INIT_BUILTINS nds32_init_builtins #define TARGET_INIT_BUILTINS nds32_init_builtins
#undef TARGET_BUILTIN_DECL
#define TARGET_BUILTIN_DECL nds32_builtin_decl
#undef TARGET_EXPAND_BUILTIN #undef TARGET_EXPAND_BUILTIN
#define TARGET_EXPAND_BUILTIN nds32_expand_builtin #define TARGET_EXPAND_BUILTIN nds32_expand_builtin
......
...@@ -345,7 +345,8 @@ enum nds32_builtins ...@@ -345,7 +345,8 @@ enum nds32_builtins
NDS32_BUILTIN_MTSR, NDS32_BUILTIN_MTSR,
NDS32_BUILTIN_MTUSR, NDS32_BUILTIN_MTUSR,
NDS32_BUILTIN_SETGIE_EN, NDS32_BUILTIN_SETGIE_EN,
NDS32_BUILTIN_SETGIE_DIS NDS32_BUILTIN_SETGIE_DIS,
NDS32_BUILTIN_COUNT
}; };
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
......
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