[NDS32] Refine implementation of sibcall patterns

Programming / Compilers / GCC - jasonwucj [138bc75d-0d04-0410-961f-82ee72b054a4] - 4 April 2018 00:56 EDT

gcc/
- config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function.
- config/nds32/nds32-protos.h (nds32_long_call_p): Declare.
- config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function. (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
- config/nds32/nds32.md (sibcall_internal): New. (sibcall_register): Remove. (sibcall_immediate): Remove. (sibcall_value_internal): New. (sibcall_value_register): Remove. (sibcall_value_immediate): Remove.
- config/nds32/predicates.md (nds32_general_register_operand): New. (nds32_call_address_operand): New.

8a02cf8bda2 [NDS32] Refine implementation of sibcall patterns.
gcc/ChangeLog | 16 +++++
gcc/config/nds32/nds32-md-auxiliary.c | 7 ++
gcc/config/nds32/nds32-protos.h | 3 +
gcc/config/nds32/nds32.c | 23 +++++++
gcc/config/nds32/nds32.md | 123 ++++++++++++++++++----------------
gcc/config/nds32/predicates.md | 15 +++++
6 files changed, 130 insertions(+), 57 deletions(-)

Upstream: gcc.gnu.org


  • Share