mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-22 00:38:06 +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:
parent
647b92a7d4
commit
505746ad22
@ -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>
|
2002-11-18 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* libc/sys/arm/crt0.S: Add NULL to end of argv array.
|
* libc/sys/arm/crt0.S: Add NULL to end of argv array.
|
||||||
|
@ -12,21 +12,14 @@
|
|||||||
.align 2
|
.align 2
|
||||||
.global _setjmp
|
.global _setjmp
|
||||||
_setjmp:
|
_setjmp:
|
||||||
#ifdef __H8300H__
|
#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)
|
|
||||||
#else
|
|
||||||
#ifdef __H8300S__
|
|
||||||
mov.l er7,@er0
|
mov.l er7,@er0
|
||||||
mov.l er6,@(4,er0)
|
mov.l er6,@(4,er0)
|
||||||
mov.l er5,@(8,er0)
|
mov.l er5,@(8,er0)
|
||||||
mov.l er4,@(12,er0)
|
mov.l er4,@(12,er0)
|
||||||
mov.l @sp,er1
|
mov.l @sp,er1
|
||||||
mov.l er1,@(16,er0)
|
mov.l er1,@(16,er0)
|
||||||
|
sub.l er0,er0
|
||||||
#else
|
#else
|
||||||
mov.w r7,@r0
|
mov.w r7,@r0
|
||||||
mov.w r6,@(2,r0)
|
mov.w r6,@(2,r0)
|
||||||
@ -34,28 +27,27 @@ _setjmp:
|
|||||||
mov.w r4,@(6,r0)
|
mov.w r4,@(6,r0)
|
||||||
mov.w @sp,r1
|
mov.w @sp,r1
|
||||||
mov.w r1,@(8,r0)
|
mov.w r1,@(8,r0)
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
sub.w r0,r0
|
sub.w r0,r0
|
||||||
|
#endif
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.global _longjmp
|
.global _longjmp
|
||||||
_longjmp:
|
_longjmp:
|
||||||
#ifdef __H8300H__
|
#if defined(__H8300H__) || defined (__H8300S__)
|
||||||
mov.l @er0+,er7
|
mov.l @er0+,er7
|
||||||
mov.l @er0+,er6
|
mov.l @er0+,er6
|
||||||
mov.l @er0+,er5
|
mov.l @er0+,er5
|
||||||
mov.l @er0+,er4
|
mov.l @er0+,er4
|
||||||
mov.l @er0,er2
|
mov.l @er0,er2
|
||||||
mov.l er2,@sp
|
mov.l er2,@sp
|
||||||
|
#if (__INT_MAX__ <= 32767)
|
||||||
|
mov.w r1,r0
|
||||||
#else
|
#else
|
||||||
#ifdef __H8300S__
|
mov.l er1,er0
|
||||||
mov.l @er0+,er7
|
#endif
|
||||||
mov.l @er0+,er6
|
bne .L1
|
||||||
mov.l @er0+,er5
|
sub er0,er0
|
||||||
mov.l @er0+,er4
|
adds #1,er0
|
||||||
mov.l @er0,er2
|
|
||||||
mov.l er2,@sp
|
|
||||||
#else
|
#else
|
||||||
mov.w @r0+,r7
|
mov.w @r0+,r7
|
||||||
mov.w @r0+,r6
|
mov.w @r0+,r6
|
||||||
@ -63,10 +55,9 @@ _longjmp:
|
|||||||
mov.w @r0+,r4
|
mov.w @r0+,r4
|
||||||
mov.w @r0,r2
|
mov.w @r0,r2
|
||||||
mov.w r2,@sp
|
mov.w r2,@sp
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
mov.w r1,r0
|
mov.w r1,r0
|
||||||
bne .L1
|
bne .L1
|
||||||
mov.w #1,r0
|
mov.w #1,r0
|
||||||
|
#endif
|
||||||
.L1:
|
.L1:
|
||||||
rts
|
rts
|
||||||
|
Loading…
x
Reference in New Issue
Block a user