http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53689
--- Comment #1 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-07-06 17:59:34
UTC ---
(In reply to comment #0)
> Under target (sh-elf) big-endian SuperH-2 (SH7604) (options -m2 -mb
> -fno-omit-frame-pointer).
>
> When defining an interrupt handler:
> static void __attribute__ ((interrupt_handler))
> foo(void)
> {
> }
>
> GCC 4.5.3 emits the following:
>
> 00000000 <_foo>:
> 0: 2f e6 mov.l r14,@-r15
> 2: 6e f3 mov r15,r14
> 4: 6f e3 mov r14,r15
> 6: 00 2b rte
> 8: 6e f6 mov.l @r15+,r14
>
Please notice that GCC 4.5.x is no longer supported.
The last official GCC 4.5.x version is GCC 4.5.4 which was released
on 2012-07-02.
I've checked this case with SVN rev 189268 (GCC 4.8) and this problem is not
present.