Compiling following code for Arm Cortex-r52: extern int another_func(int); void __attribute__ ((interrupt ("IRQ"))) IRQ_Handler(void) { another_func(0); } gcc generates epilogue respectively: ldmfd sp!, {r0, r1, r2, r3, r4, fp, ip, pc}^ The problem is that on Cortex-R52 virtualization is used so that when IRQ interrupt happens in Hypervisor mode (EL2) return from interrupt must use ERET instruction. Otherwise Undefined exception occurs (what actually corresponds to chapter F5.1.65 LDM (exception return) in https://static.docs.arm.com/ddi0487/da/DDI0487D_a_armv8_arm.pdf?_ga=2.927729.1146405679.1554127327-529207546.1554127327) Probably we should introduce new ISR attribute like IRQ_el2 or IRQ_hyp.
Author: marxin Date: Fri Apr 5 08:37:44 2019 New Revision: 270163 URL: https://gcc.gnu.org/viewcvs?rev=270163&root=gcc&view=rev Log: Remove usage of apostrophes in error and warning messages (PR translation/89935). 2019-04-05 Martin Liska <mliska@suse.cz> PR translation/89935 * check-internal-format-escaping.py: Properly detect wrong apostrophes. 2019-04-05 Martin Liska <mliska@suse.cz> PR translation/89935 * collect-utils.c (collect_execute): Use %< and %>, or %qs in order to wrap keywords or arguments. * collect2.c (main): Likewise. (scan_prog_file): Likewise. (scan_libraries): Likewise. * common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Likewise. (riscv_subset_list::parse_std_ext): Likewise. * config/aarch64/aarch64.c (aarch64_override_options_internal): Likewise. * config/arm/arm.c (arm_option_override): Likewise. * config/cris/cris.c (cris_print_operand): Likewise. * config/darwin-c.c (darwin_pragma_options): Likewise. (darwin_pragma_unused): Likewise. (darwin_pragma_ms_struct): Likewise. * config/ft32/ft32.c (ft32_print_operand): Likewise. * config/i386/i386.c (print_reg): Likewise. (ix86_print_operand): Likewise. * config/i386/xm-djgpp.h: Likewise. * config/iq2000/iq2000.c (iq2000_print_operand): Likewise. * config/m32c/m32c.c (m32c_option_override): Likewise. * config/msp430/msp430.c (msp430_option_override): Likewise. * config/nds32/nds32.c (nds32_option_override): Likewise. * config/nvptx/mkoffload.c (main): Likewise. * config/rx/rx.c (rx_print_operand): Likewise. (valid_psw_flag): Likewise. * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise. (vms_pragma_nomember_alignment): Likewise. (vms_pragma_extern_model): Likewise. * lto-wrapper.c (compile_offload_image): Likewise. * omp-offload.c (oacc_parse_default_dims): Likewise. * symtab.c (symtab_node::verify_base): Likewise. * tlink.c (recompile_files): Likewise. (start_tweaking): Likewise. * tree-profile.c (parse_profile_filter): Likewise. 2019-04-05 Martin Liska <mliska@suse.cz> PR translation/89935 * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in order to wrap keywords or arguments. (objc_add_synthesize_declaration_for_property): Likewise. Modified: trunk/contrib/ChangeLog trunk/contrib/check-internal-format-escaping.py trunk/gcc/ChangeLog trunk/gcc/collect-utils.c trunk/gcc/collect2.c trunk/gcc/common/config/riscv/riscv-common.c trunk/gcc/config/aarch64/aarch64.c trunk/gcc/config/arm/arm.c trunk/gcc/config/cris/cris.c trunk/gcc/config/darwin-c.c trunk/gcc/config/ft32/ft32.c trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/xm-djgpp.h trunk/gcc/config/iq2000/iq2000.c trunk/gcc/config/m32c/m32c.c trunk/gcc/config/msp430/msp430.c trunk/gcc/config/nds32/nds32.c trunk/gcc/config/nvptx/mkoffload.c trunk/gcc/config/rx/rx.c trunk/gcc/config/vms/vms-c.c trunk/gcc/lto-wrapper.c trunk/gcc/objc/ChangeLog trunk/gcc/objc/objc-act.c trunk/gcc/omp-offload.c trunk/gcc/symtab.c trunk/gcc/tlink.c trunk/gcc/tree-profile.c
(In reply to Martin Liška from comment #1) > Author: marxin > Date: Fri Apr 5 08:37:44 2019 > New Revision: 270163 > > URL: https://gcc.gnu.org/viewcvs?rev=270163&root=gcc&view=rev > Log: > Remove usage of apostrophes in error and warning messages (PR > translation/89935). > > 2019-04-05 Martin Liska <mliska@suse.cz> > > PR translation/89935 > * check-internal-format-escaping.py: Properly detect wrong > apostrophes. > 2019-04-05 Martin Liska <mliska@suse.cz> > > PR translation/89935 > * collect-utils.c (collect_execute): Use %< and %>, or %qs in > order to wrap keywords or arguments. > * collect2.c (main): Likewise. > (scan_prog_file): Likewise. > (scan_libraries): Likewise. > * common/config/riscv/riscv-common.c > (riscv_subset_list::parsing_subset_version): Likewise. > (riscv_subset_list::parse_std_ext): Likewise. > * config/aarch64/aarch64.c (aarch64_override_options_internal): Likewise. > * config/arm/arm.c (arm_option_override): Likewise. > * config/cris/cris.c (cris_print_operand): Likewise. > * config/darwin-c.c (darwin_pragma_options): Likewise. > (darwin_pragma_unused): Likewise. > (darwin_pragma_ms_struct): Likewise. > * config/ft32/ft32.c (ft32_print_operand): Likewise. > * config/i386/i386.c (print_reg): Likewise. > (ix86_print_operand): Likewise. > * config/i386/xm-djgpp.h: Likewise. > * config/iq2000/iq2000.c (iq2000_print_operand): Likewise. > * config/m32c/m32c.c (m32c_option_override): Likewise. > * config/msp430/msp430.c (msp430_option_override): Likewise. > * config/nds32/nds32.c (nds32_option_override): Likewise. > * config/nvptx/mkoffload.c (main): Likewise. > * config/rx/rx.c (rx_print_operand): Likewise. > (valid_psw_flag): Likewise. > * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise. > (vms_pragma_nomember_alignment): Likewise. > (vms_pragma_extern_model): Likewise. > * lto-wrapper.c (compile_offload_image): Likewise. > * omp-offload.c (oacc_parse_default_dims): Likewise. > * symtab.c (symtab_node::verify_base): Likewise. > * tlink.c (recompile_files): Likewise. > (start_tweaking): Likewise. > * tree-profile.c (parse_profile_filter): Likewise. > 2019-04-05 Martin Liska <mliska@suse.cz> > > PR translation/89935 > * objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in > order to wrap keywords or arguments. > (objc_add_synthesize_declaration_for_property): Likewise. > > Modified: > trunk/contrib/ChangeLog > trunk/contrib/check-internal-format-escaping.py > trunk/gcc/ChangeLog > trunk/gcc/collect-utils.c > trunk/gcc/collect2.c > trunk/gcc/common/config/riscv/riscv-common.c > trunk/gcc/config/aarch64/aarch64.c > trunk/gcc/config/arm/arm.c > trunk/gcc/config/cris/cris.c > trunk/gcc/config/darwin-c.c > trunk/gcc/config/ft32/ft32.c > trunk/gcc/config/i386/i386.c > trunk/gcc/config/i386/xm-djgpp.h > trunk/gcc/config/iq2000/iq2000.c > trunk/gcc/config/m32c/m32c.c > trunk/gcc/config/msp430/msp430.c > trunk/gcc/config/nds32/nds32.c > trunk/gcc/config/nvptx/mkoffload.c > trunk/gcc/config/rx/rx.c > trunk/gcc/config/vms/vms-c.c > trunk/gcc/lto-wrapper.c > trunk/gcc/objc/ChangeLog > trunk/gcc/objc/objc-act.c > trunk/gcc/omp-offload.c > trunk/gcc/symtab.c > trunk/gcc/tlink.c > trunk/gcc/tree-profile.c Sorry for wrong commit entry, itb elongs to PR89935.