This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r110401 - in /branches/gcc-4_1-branch/gcc: Chan...


Author: amylaar
Date: Mon Jan 30 16:19:11 2006
New Revision: 110401

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110401
Log:
	PR target/14798:
gcc:
	* sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
	(pragma_trap, pragma_nosave_low_regs): Likewise.
	(current_function_anonymous_args): Likewise.
	(sh_deferred_function_attributes): New variable.
	(sh_deferred_function_attributes_tail): Likewise.
	(print_operand): For '@', look up trap_exit attribute.
	(calc_live_regs): Look up trapa_handler attribute.  For trapa
	handlers, save/restore fpscr, but don't do any other
	interrupt-specific saves.
	Don't save r0..r7 if the nosave_low_regs attribute is in effect.
	Fix check for partially saved registers to check for SHmedia.
	(sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
	(sh_output_function_epilogue): Don't clear any of the removed
	variables.
	(sh_insert_attributes): Don't check pragma_interrupt.
	Insert deferred attributes.  Check that interrupt attribute is
	present for other attributes that require its presence.
	(sh_attribute_table): Add new attributes trapa_handler and
	nosave_low_regs.
	(sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
	Don't check for pragma_interrupt.  Don't store argument.
	* sh.h (pragma_interrupt, sp_switch): Don't declare.
	(sh_deferred_function_attributes): Declare.
	(sh_deferred_function_attributes_tail): Likewise.
	* sh.md (sp_switch_1): Add operand.  Change generator caller.
	(sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
	(*return_i): Don't use when trap_exit attribute is in effect.
	(*return_trapa): New insn pattern.
	* sh-c.c: New file.
	* config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
	setting c_target_objs and cxx_target_objs.
	* t-sh: Add rule for sh-c.o.

	* config/sh/sh.c (sh_cfun_trap_exit_p): New function.
	* sh-protos.h (sh_cfun_trap_exit_p): Declare.

gcc/testsuite:
	* gcc.dg/pragma-isr.c: Added target sh[1234ble]*-*-*.
	* gcc.dg/pragma-isr2.c, gcc.dg/pragma-isr-trapa.c: New tests.
	* gcc.dg/pragma-isr-trapa2.c: Likewise.
	* gcc.dg/pragma-isr-nosave_low_regs.c: Likewise.
	* gcc.dg/pragma-isr-trap_exit.c: Likewise.
	* gcc.dg/attr-isr.c, gcc.dg/attr-isr-trapa.c: Likewise.
	* gcc.dg/attr-isr-trap_exit.c: Likewise.
	* gcc.dg/attr-isr-nosave_low_regs.c: Likewise.

Added:
    branches/gcc-4_1-branch/gcc/config/sh/sh-c.c
      - copied unchanged from r110398, trunk/gcc/config/sh/sh-c.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/attr-isr-nosave_low_regs.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/attr-isr-nosave_low_regs.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/attr-isr-trap_exit.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/attr-isr-trap_exit.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/attr-isr-trapa.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/attr-isr-trapa.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/attr-isr.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/attr-isr.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pragma-isr-nosave_low_regs.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/pragma-isr-nosave_low_regs.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pragma-isr-trap_exit.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/pragma-isr-trap_exit.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pragma-isr-trapa.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/pragma-isr-trapa.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pragma-isr2.c
      - copied unchanged from r110398, trunk/gcc/testsuite/gcc.dg/pragma-isr2.c
Modified:
    branches/gcc-4_1-branch/gcc/ChangeLog
    branches/gcc-4_1-branch/gcc/config.gcc
    branches/gcc-4_1-branch/gcc/config/sh/sh-protos.h
    branches/gcc-4_1-branch/gcc/config/sh/sh.c
    branches/gcc-4_1-branch/gcc/config/sh/sh.h
    branches/gcc-4_1-branch/gcc/config/sh/sh.md
    branches/gcc-4_1-branch/gcc/config/sh/t-sh
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pragma-isr.c


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]