diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2002-02-08 07:11:13 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2002-02-08 07:11:13 +0000 |
commit | 9f25eed9c96cb37ee58fcb65aafb44f9c6183dde (patch) | |
tree | 883185ab319291de419f4bba42754e7a71b23560 /newlib/libc/sys/sh/trap.S | |
parent | 561486e7f1220b06414524d9b72eca3794a45dd3 (diff) | |
download | cygnal-9f25eed9c96cb37ee58fcb65aafb44f9c6183dde.tar.gz cygnal-9f25eed9c96cb37ee58fcb65aafb44f9c6183dde.tar.bz2 cygnal-9f25eed9c96cb37ee58fcb65aafb44f9c6183dde.zip |
Contribute sh64-elf.
2001-03-13 Alexandre Oliva <aoliva@redhat.com>
* configure.host (newlib_cflags) [sh*-*-*]: Enable long long
support in printf.
2001-01-29 Alexandre Oliva <aoliva@redhat.com>
* libc/machine/sh/setjmp.S [SH5]: Switch to SHmedia mode before
any labels.
2001-01-24 Alexandre Oliva <aoliva@redhat.com>
* libc/sys/sh/trap.S (___trap34) [SH5]: Don't trash r2.
2000-12-16 Alexandre Oliva <aoliva@redhat.com>
* libc/machine/sh/configure.in: Rework conditionals.
* libc/machine/sh/Makefile.am: Likewise.
* libc/machine/sh/configure, libc/machine/sh/Makefile.in: Rebuilt.
2000-12-01 Alexandre Oliva <aoliva@redhat.com>
* configure.host: Match `sh*'.
* libc/include/machine/setjmp.h: Define for SH5.
* libc/machine/sh/configure.in: Detect SH5.
* libc/machine/sh/configure: Rebuilt.
* libc/machine/sh/Makefile.am: Use only setjmp.S for SH5.
* libc/machine/sh/Makefile.in: Rebuilt.
* libc/machine/sh/asm.h: Adjust for SH5.
* libc/machine/sh/setjmp.S: Implement in SHmedia.
* libc/sys/sh/crt0.S: Likewise.
* libc/sys/sh/trap.S: Likewise.
Diffstat (limited to 'newlib/libc/sys/sh/trap.S')
-rw-r--r-- | newlib/libc/sys/sh/trap.S | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/newlib/libc/sys/sh/trap.S b/newlib/libc/sys/sh/trap.S index 4512293e3..0eb6e5dfe 100644 --- a/newlib/libc/sys/sh/trap.S +++ b/newlib/libc/sys/sh/trap.S @@ -1,3 +1,30 @@ +#if __SH5__ + .mode SHmedia +#if __SH5__ == 32 && __SHMEDIA__ + .section .text..SHmedia32, "ax" +#else + .text +#endif + .global ___trap34 +___trap34: + movi 34, r0 + trapa r0 + pt/l ret, tr1 + ptabs/l r18, tr0 + beqi r1, 0, tr1 +#if __SH5__ == 64 + movi ((_errno >> 48) & 65535), r0 + shori ((_errno >> 32) & 65535), r0 + shori ((_errno >> 16) & 65535), r0 +#else + movi ((_errno >> 16) & 65535), r0 +#endif + shori (_errno & 65535), r0 + stx.l r0, r63, r1 +ret: + blink tr0, r63 + +#else .text .global ___trap34 ___trap34: @@ -13,3 +40,4 @@ ret: .align 2 perrno: .long _errno +#endif /* ! __SH5__ */ |