]> sourceware.org Git - newlib-cygwin.git/commitdiff
2002-11-20 Ryo Tsuruta <ryo@kitanet.ne.jp>
authorJeff Johnston <jjohnstn@redhat.com>
Wed, 20 Nov 2002 17:24:57 +0000 (17:24 +0000)
committerJeff Johnston <jjohnstn@redhat.com>
Wed, 20 Nov 2002 17:24:57 +0000 (17:24 +0000)
        * libc/machine/h8300/setjmp.S (setjmp, longjmp): Combine common
        code for __H8300H__ and __H8300S__.  Also return 32-bit return code
        when -mint32 is used.

newlib/ChangeLog
newlib/libc/machine/h8300/setjmp.S

index 63e1be2b77da99975dc7faccdeb5ce6176c54140..b3fcc5838d27b85b01bb49dd673db044acf76d37 100644 (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.
index 9e7164095077694cb533566ac08efbfb4f950af6..5c44973c04bd8cd67afc1a6d2b5f48e153c62547 100644 (file)
        .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
This page took 0.043647 seconds and 5 git commands to generate.