[NDS32] Implement more C ISR extension.
authorChung-Ju Wu <jasonwucj@gmail.com>
Sun, 12 Aug 2018 07:38:40 +0000 (07:38 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Sun, 12 Aug 2018 07:38:40 +0000 (07:38 +0000)
commita49317452416282f4cb4da0149754c58d87b2241
tree7acf8d7580c0a7c12800740f68ef42e0a4f3cd91
parent39d2c7ed9f6dd2d716b046bc28524bd26b3a9d46
[NDS32] Implement more C ISR extension.

gcc/
* config.gcc (nds32*): Add nds32_isr.h and nds32_init.inc in
extra_headers.
* common/config/nds32/nds32-common.c (nds32_handle_option): Handle
OPT_misr_secure_ case.
* config/nds32/nds32-isr.c: Implementation of backward compatibility.
* config/nds32/nds32-protos.h (nds32_isr_function_critical_p): New.
* config/nds32/nds32.c (nds32_attribute_table): Add critical and
secure attribute.
* config/nds32/nds32.h (nds32_isr_nested_type): Add NDS32_CRITICAL.
(nds32_isr_info): New field security_level.
(TARGET_ISR_VECTOR_SIZE_4_BYTE): New macro.
* config/nds32/nds32.md (return_internal): Consider critical attribute.
* config/nds32/nds32.opt (misr-secure): New option.
* config/nds32/nds32_init.inc: New file.
* config/nds32/nds32_isr.h: New file.

libgcc/
* config/nds32/t-nds32-isr: Rearrange object dependency.
* config/nds32/initfini.c: Add dwarf2 unwinding support.
* config/nds32/isr-library/adj_intr_lvl.inc: Consider new extensions
and registers usage.
* config/nds32/isr-library/excp_isr.S: Ditto.
* config/nds32/isr-library/intr_isr.S: Ditto.
* config/nds32/isr-library/reset.S: Ditto.
* config/nds32/isr-library/restore_all.inc: Ditto.
* config/nds32/isr-library/restore_mac_regs.inc: Ditto.
* config/nds32/isr-library/restore_partial.inc: Ditto.
* config/nds32/isr-library/restore_usr_regs.inc: Ditto.
* config/nds32/isr-library/save_all.inc: Ditto.
* config/nds32/isr-library/save_mac_regs.inc: Ditto.
* config/nds32/isr-library/save_partial.inc: Ditto.
* config/nds32/isr-library/save_usr_regs.inc: Ditto.
* config/nds32/isr-library/vec_vid*.S: Consider 4-byte vector size.

From-SVN: r263493
99 files changed:
gcc/ChangeLog
gcc/common/config/nds32/nds32-common.c
gcc/config.gcc
gcc/config/nds32/nds32-isr.c
gcc/config/nds32/nds32-protos.h
gcc/config/nds32/nds32.c
gcc/config/nds32/nds32.h
gcc/config/nds32/nds32.md
gcc/config/nds32/nds32.opt
gcc/config/nds32/nds32_init.inc [new file with mode: 0644]
gcc/config/nds32/nds32_isr.h [new file with mode: 0644]
libgcc/ChangeLog
libgcc/config/nds32/initfini.c
libgcc/config/nds32/isr-library/adj_intr_lvl.inc
libgcc/config/nds32/isr-library/excp_isr.S
libgcc/config/nds32/isr-library/intr_isr.S
libgcc/config/nds32/isr-library/reset.S
libgcc/config/nds32/isr-library/restore_all.inc
libgcc/config/nds32/isr-library/restore_mac_regs.inc
libgcc/config/nds32/isr-library/restore_partial.inc
libgcc/config/nds32/isr-library/restore_usr_regs.inc [new file with mode: 0644]
libgcc/config/nds32/isr-library/save_all.inc
libgcc/config/nds32/isr-library/save_mac_regs.inc
libgcc/config/nds32/isr-library/save_partial.inc
libgcc/config/nds32/isr-library/save_usr_regs.inc [new file with mode: 0644]
libgcc/config/nds32/isr-library/vec_vid00.S
libgcc/config/nds32/isr-library/vec_vid01.S
libgcc/config/nds32/isr-library/vec_vid02.S
libgcc/config/nds32/isr-library/vec_vid03.S
libgcc/config/nds32/isr-library/vec_vid04.S
libgcc/config/nds32/isr-library/vec_vid05.S
libgcc/config/nds32/isr-library/vec_vid06.S
libgcc/config/nds32/isr-library/vec_vid07.S
libgcc/config/nds32/isr-library/vec_vid08.S
libgcc/config/nds32/isr-library/vec_vid09.S
libgcc/config/nds32/isr-library/vec_vid10.S
libgcc/config/nds32/isr-library/vec_vid11.S
libgcc/config/nds32/isr-library/vec_vid12.S
libgcc/config/nds32/isr-library/vec_vid13.S
libgcc/config/nds32/isr-library/vec_vid14.S
libgcc/config/nds32/isr-library/vec_vid15.S
libgcc/config/nds32/isr-library/vec_vid16.S
libgcc/config/nds32/isr-library/vec_vid17.S
libgcc/config/nds32/isr-library/vec_vid18.S
libgcc/config/nds32/isr-library/vec_vid19.S
libgcc/config/nds32/isr-library/vec_vid20.S
libgcc/config/nds32/isr-library/vec_vid21.S
libgcc/config/nds32/isr-library/vec_vid22.S
libgcc/config/nds32/isr-library/vec_vid23.S
libgcc/config/nds32/isr-library/vec_vid24.S
libgcc/config/nds32/isr-library/vec_vid25.S
libgcc/config/nds32/isr-library/vec_vid26.S
libgcc/config/nds32/isr-library/vec_vid27.S
libgcc/config/nds32/isr-library/vec_vid28.S
libgcc/config/nds32/isr-library/vec_vid29.S
libgcc/config/nds32/isr-library/vec_vid30.S
libgcc/config/nds32/isr-library/vec_vid31.S
libgcc/config/nds32/isr-library/vec_vid32.S
libgcc/config/nds32/isr-library/vec_vid33.S
libgcc/config/nds32/isr-library/vec_vid34.S
libgcc/config/nds32/isr-library/vec_vid35.S
libgcc/config/nds32/isr-library/vec_vid36.S
libgcc/config/nds32/isr-library/vec_vid37.S
libgcc/config/nds32/isr-library/vec_vid38.S
libgcc/config/nds32/isr-library/vec_vid39.S
libgcc/config/nds32/isr-library/vec_vid40.S
libgcc/config/nds32/isr-library/vec_vid41.S
libgcc/config/nds32/isr-library/vec_vid42.S
libgcc/config/nds32/isr-library/vec_vid43.S
libgcc/config/nds32/isr-library/vec_vid44.S
libgcc/config/nds32/isr-library/vec_vid45.S
libgcc/config/nds32/isr-library/vec_vid46.S
libgcc/config/nds32/isr-library/vec_vid47.S
libgcc/config/nds32/isr-library/vec_vid48.S
libgcc/config/nds32/isr-library/vec_vid49.S
libgcc/config/nds32/isr-library/vec_vid50.S
libgcc/config/nds32/isr-library/vec_vid51.S
libgcc/config/nds32/isr-library/vec_vid52.S
libgcc/config/nds32/isr-library/vec_vid53.S
libgcc/config/nds32/isr-library/vec_vid54.S
libgcc/config/nds32/isr-library/vec_vid55.S
libgcc/config/nds32/isr-library/vec_vid56.S
libgcc/config/nds32/isr-library/vec_vid57.S
libgcc/config/nds32/isr-library/vec_vid58.S
libgcc/config/nds32/isr-library/vec_vid59.S
libgcc/config/nds32/isr-library/vec_vid60.S
libgcc/config/nds32/isr-library/vec_vid61.S
libgcc/config/nds32/isr-library/vec_vid62.S
libgcc/config/nds32/isr-library/vec_vid63.S
libgcc/config/nds32/isr-library/vec_vid64.S
libgcc/config/nds32/isr-library/vec_vid65.S
libgcc/config/nds32/isr-library/vec_vid66.S
libgcc/config/nds32/isr-library/vec_vid67.S
libgcc/config/nds32/isr-library/vec_vid68.S
libgcc/config/nds32/isr-library/vec_vid69.S
libgcc/config/nds32/isr-library/vec_vid70.S
libgcc/config/nds32/isr-library/vec_vid71.S
libgcc/config/nds32/isr-library/vec_vid72.S
libgcc/config/nds32/t-nds32-isr