[NDS32] Support dwarf exception handling.
authorChung-Ju Wu <jasonwucj@gmail.com>
Sat, 7 Apr 2018 10:52:19 +0000 (10:52 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Sat, 7 Apr 2018 10:52:19 +0000 (10:52 +0000)
commitca3a4a555d8e973aa7b8d851038c18efec4c2dcd
tree4dcb66b834f503e2bd784139d1850f1ce6fc3c40
parent30044989cc76c1cca7a7967f29bed07d909faf9e
[NDS32] Support dwarf exception handling.

gcc/
* config/nds32/constants.md (unspec_volatile_element): Add
UNSPEC_VOLATILE_EH_RETURN.
* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push,
nds32_output_stack_pop): Support dwarf exception handling process.
* config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare.
* config/nds32/nds32.c (nds32_init_machine_status): Support dwarf
exception handling process.
(nds32_compute_stack_frame): Likewise.
(nds32_return_addr_rtx): Likewise.
(nds32_initial_elimination_offset): Likewise.
(nds32_expand_prologue): Likewise.
(nds32_expand_epilogue): Likewise.
(nds32_dynamic_chain_address): New function.
* config/nds32/nds32.h (machine_function): Add fields for dwarf
exception handling.
(DYNAMIC_CHAIN_ADDRESS): Define.
(EH_RETURN_DATA_REGNO): Define.
(EH_RETURN_STACKADJ_RTX): Define.
* config/nds32/nds32.md (eh_return, nds32_eh_return): Implement
patterns for dwarf exception handling.

From-SVN: r259210
gcc/ChangeLog
gcc/config/nds32/constants.md
gcc/config/nds32/nds32-md-auxiliary.c
gcc/config/nds32/nds32-protos.h
gcc/config/nds32/nds32.c
gcc/config/nds32/nds32.h
gcc/config/nds32/nds32.md