4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-21 00:07:36 +08:00

2002-11-20 Ryo Tsuruta <ryo@kitanet.ne.jp>

* libc/machine/h8300/setjmp.S (setjmp, longjmp): Combine common
        code for __H8300H__ and __H8300S__.  Also return 32-bit return code
        when -mint32 is used.
This commit is contained in:
Jeff Johnston 2002-11-20 17:24:57 +00:00
parent 647b92a7d4
commit 505746ad22
2 changed files with 18 additions and 21 deletions

View File

@ -1,3 +1,9 @@
2002-11-20 Ryo Tsuruta <ryo@kitanet.ne.jp>
* libc/machine/h8300/setjmp.S (setjmp, longjmp): Combine common
code for __H8300H__ and __H8300S__. Also return 32-bit return code
when -mint32 is used.
2002-11-18 Nick Clifton <nickc@redhat.com>
* libc/sys/arm/crt0.S: Add NULL to end of argv array.

View File

@ -12,21 +12,14 @@
.align 2
.global _setjmp
_setjmp:
#ifdef __H8300H__
mov.l er7,@er0
mov.l er6,@(4,er0)
mov.l er5,@(8,er0)
mov.l er4,@(12,er0)
mov.l @sp,er1
mov.l er1,@(16,er0)
#else
#ifdef __H8300S__
#if defined(__H8300H__) || defined(__H8300S__)
mov.l er7,@er0
mov.l er6,@(4,er0)
mov.l er5,@(8,er0)
mov.l er4,@(12,er0)
mov.l @sp,er1
mov.l er1,@(16,er0)
sub.l er0,er0
#else
mov.w r7,@r0
mov.w r6,@(2,r0)
@ -34,28 +27,27 @@ _setjmp:
mov.w r4,@(6,r0)
mov.w @sp,r1
mov.w r1,@(8,r0)
#endif
#endif
sub.w r0,r0
#endif
rts
.global _longjmp
_longjmp:
#ifdef __H8300H__
#if defined(__H8300H__) || defined (__H8300S__)
mov.l @er0+,er7
mov.l @er0+,er6
mov.l @er0+,er5
mov.l @er0+,er4
mov.l @er0,er2
mov.l er2,@sp
#if (__INT_MAX__ <= 32767)
mov.w r1,r0
#else
#ifdef __H8300S__
mov.l @er0+,er7
mov.l @er0+,er6
mov.l @er0+,er5
mov.l @er0+,er4
mov.l @er0,er2
mov.l er2,@sp
mov.l er1,er0
#endif
bne .L1
sub er0,er0
adds #1,er0
#else
mov.w @r0+,r7
mov.w @r0+,r6
@ -63,10 +55,9 @@ _longjmp:
mov.w @r0+,r4
mov.w @r0,r2
mov.w r2,@sp
#endif
#endif
mov.w r1,r0
bne .L1
mov.w #1,r0
#endif
.L1:
rts