[NDS32] Implement more C ISR extension.
commitd08b1d22dd38398949fb3ae86e7db96e9519f2ef
authorjasonwucj <jasonwucj@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 12 Aug 2018 07:38:40 +0000 (12 07:38 +0000)
committerjasonwucj <jasonwucj@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 12 Aug 2018 07:38:40 +0000 (12 07:38 +0000)
tree7acf8d7580c0a7c12800740f68ef42e0a4f3cd91
parent23fc2d9850f219d280ce043f96b79b78b7074828
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263493 138bc75d-0d04-0410-961f-82ee72b054a4
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 [copied from libgcc/config/nds32/isr-library/adj_intr_lvl.inc with 73% similarity]
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 [copied from libgcc/config/nds32/isr-library/adj_intr_lvl.inc with 62% similarity]
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