public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/14798] [3.4/4.0/4.1 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted.
       [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
@ 2005-10-30 22:09 ` pinskia at gcc dot gnu dot org
  2005-10-30 23:39 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-10-30 22:09 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.1.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14798


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/14798] [3.4/4.0/4.1 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted.
       [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
  2005-10-30 22:09 ` [Bug target/14798] [3.4/4.0/4.1 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted pinskia at gcc dot gnu dot org
@ 2005-10-30 23:39 ` pinskia at gcc dot gnu dot org
  2005-12-17  2:27 ` [Bug target/14798] [3.4/4.0/4.1/4.2 " kazu at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-10-30 23:39 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14798


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/14798] [3.4/4.0/4.1/4.2 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted.
       [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
  2005-10-30 22:09 ` [Bug target/14798] [3.4/4.0/4.1 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted pinskia at gcc dot gnu dot org
  2005-10-30 23:39 ` pinskia at gcc dot gnu dot org
@ 2005-12-17  2:27 ` kazu at gcc dot gnu dot org
  2006-01-25 17:27 ` amylaar at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: kazu at gcc dot gnu dot org @ 2005-12-17  2:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from kazu at gcc dot gnu dot org  2005-12-17 02:27 -------
Anil, would you care to post your patch on gcc-patches?
In general, people don't review patches in PRs.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14798


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/14798] [3.4/4.0/4.1/4.2 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted.
       [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2005-12-17  2:27 ` [Bug target/14798] [3.4/4.0/4.1/4.2 " kazu at gcc dot gnu dot org
@ 2006-01-25 17:27 ` amylaar at gcc dot gnu dot org
  2006-01-26 15:22 ` amylaar at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2006-01-25 17:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from amylaar at gcc dot gnu dot org  2006-01-25 17:27 -------
There is even more wrong with the way we translate function pro-epilogue
affecting pragmas to attributes.
When we used only pragmas, the pragma could placed not only in front of the
function, but also anywhere within the function, and it would affect the
prologue/epilogue generation of that function.
In order to restore this behaviour, the pragma hooks should check cfun, and
apply the pragma to the current function if cfun is set.


-- 

amylaar at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|joern dot rennecke at superh|joern dot rennecke at st dot
                   |dot com                     |com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14798


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/14798] [3.4/4.0/4.1/4.2 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted.
       [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2006-01-25 17:27 ` amylaar at gcc dot gnu dot org
@ 2006-01-26 15:22 ` amylaar at gcc dot gnu dot org
  2006-01-30 15:07 ` amylaar at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2006-01-26 15:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from amylaar at gcc dot gnu dot org  2006-01-26 15:22 -------
http://gcc.gnu.org/ml/gcc-patches/2006-01/msg01782.html was regression tested
successfully for sh-elf in Revision 110178.
However, it makes sense to write or collect a number of new test cases to test
the affected pragmas and attributes.


-- 

amylaar at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |amylaar at gcc dot gnu dot
                   |dot org                     |org
                URL|                            |http://gcc.gnu.org/ml/gcc-
                   |                            |patches/2006-
                   |                            |01/msg01782.html
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2005-06-04 16:55:35         |2006-01-26 15:22:23
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14798


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/14798] [3.4/4.0/4.1/4.2 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted.
       [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2006-01-26 15:22 ` amylaar at gcc dot gnu dot org
@ 2006-01-30 15:07 ` amylaar at gcc dot gnu dot org
  2006-01-30 16:19 ` amylaar at gcc dot gnu dot org
  2006-01-30 17:22 ` amylaar at gcc dot gnu dot org
  7 siblings, 0 replies; 8+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2006-01-30 15:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from amylaar at gcc dot gnu dot org  2006-01-30 15:07 -------
Subject: Bug 14798

Author: amylaar
Date: Mon Jan 30 15:07:43 2006
New Revision: 110398

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110398
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.
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:
    trunk/gcc/config/sh/sh-c.c
    trunk/gcc/testsuite/gcc.dg/attr-isr-nosave_low_regs.c
    trunk/gcc/testsuite/gcc.dg/attr-isr-trap_exit.c
    trunk/gcc/testsuite/gcc.dg/attr-isr-trapa.c
    trunk/gcc/testsuite/gcc.dg/attr-isr.c
    trunk/gcc/testsuite/gcc.dg/pragma-isr-nosave_low_regs.c
    trunk/gcc/testsuite/gcc.dg/pragma-isr-trap_exit.c
    trunk/gcc/testsuite/gcc.dg/pragma-isr-trapa.c
    trunk/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c
    trunk/gcc/testsuite/gcc.dg/pragma-isr2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config.gcc
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sh/sh.h
    trunk/gcc/config/sh/sh.md
    trunk/gcc/config/sh/t-sh
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/pragma-isr.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14798


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/14798] [3.4/4.0/4.1/4.2 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted.
       [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2006-01-30 15:07 ` amylaar at gcc dot gnu dot org
@ 2006-01-30 16:19 ` amylaar at gcc dot gnu dot org
  2006-01-30 17:22 ` amylaar at gcc dot gnu dot org
  7 siblings, 0 replies; 8+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2006-01-30 16:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from amylaar at gcc dot gnu dot org  2006-01-30 16:19 -------
Subject: Bug 14798

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


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14798


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug target/14798] [3.4/4.0/4.1/4.2 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted.
       [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2006-01-30 16:19 ` amylaar at gcc dot gnu dot org
@ 2006-01-30 17:22 ` amylaar at gcc dot gnu dot org
  7 siblings, 0 replies; 8+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2006-01-30 17:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from amylaar at gcc dot gnu dot org  2006-01-30 17:22 -------
Fixed on mainline and the 4.1 branch.


-- 

amylaar at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14798


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2006-01-30 17:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-14798-6675@http.gcc.gnu.org/bugzilla/>
2005-10-30 22:09 ` [Bug target/14798] [3.4/4.0/4.1 Regression] In case of SH target with -O2 option #pragma interrupt doesn't get resetted pinskia at gcc dot gnu dot org
2005-10-30 23:39 ` pinskia at gcc dot gnu dot org
2005-12-17  2:27 ` [Bug target/14798] [3.4/4.0/4.1/4.2 " kazu at gcc dot gnu dot org
2006-01-25 17:27 ` amylaar at gcc dot gnu dot org
2006-01-26 15:22 ` amylaar at gcc dot gnu dot org
2006-01-30 15:07 ` amylaar at gcc dot gnu dot org
2006-01-30 16:19 ` amylaar at gcc dot gnu dot org
2006-01-30 17:22 ` amylaar at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).