[NDS32] Refine implementation of sibcall patterns.
authorChung-Ju Wu <jasonwucj@gmail.com>
Wed, 4 Apr 2018 00:56:16 +0000 (00:56 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Wed, 4 Apr 2018 00:56:16 +0000 (00:56 +0000)
commitcc48a87f9d1eae385269d87882517c183a06c383
tree8c64481b3536726aae27b23b9257fb85095ed3d5
parenta1b81a03200461827fcfd851af085ab4f7837190
[NDS32] Refine implementation of sibcall patterns.

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.

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