This is the mail archive of the gcc-bugs@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]

[Bug target/10834] GCC for ARM 3.3 still generates incorrect instructions for functions with __attribute__ ((interrupt ("IRQ")))


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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


rearnsha@gcc.gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
          Component|c                           |target
         Resolution|                            |FIXED


------- Additional Comments From rearnsha@gcc.gnu.org  2003-05-22 10:40 -------
Already fixed on trunk, now fixed for 3.3.1 with:

2003-05-19  Nick Clifton  <nickc@redhat.com>

        * config/arm/arm.c (use_return_insn): Do not use a single return
        instruction for interrupt handlers which have to create a stack
        frame.
        (arm_expand_prologue): Do not pre-bias the return address of
        interrupt handlers which create a stack frame.

In both cases the code now generated is:

        str     ip, [sp, #-4]!
        mov     ip, sp
        stmfd   sp!, {r1, r2, r3, fp, ip, lr, pc}
        sub     fp, ip, #4
        sub     sp, sp, #4
        ...  @ body of function.
        ldmea   fp, {r1, r2, r3, fp, sp, lr}
        ldmfd   sp!, {ip}
        subs    pc, lr, #4




------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


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