From 505746ad22f5f15466be71fafb03952587165461 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Wed, 20 Nov 2002 17:24:57 +0000 Subject: 2002-11-20 Ryo Tsuruta * 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 | 6 ++++++ newlib/libc/machine/h8300/setjmp.S | 33 ++++++++++++--------------------- 2 files changed, 18 insertions(+), 21 deletions(-) (limited to 'newlib') diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 63e1be2b7..b3fcc5838 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,9 @@ +2002-11-20 Ryo Tsuruta + + * 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 * libc/sys/arm/crt0.S: Add NULL to end of argv array. diff --git a/newlib/libc/machine/h8300/setjmp.S b/newlib/libc/machine/h8300/setjmp.S index 9e7164095..5c44973c0 100644 --- a/newlib/libc/machine/h8300/setjmp.S +++ b/newlib/libc/machine/h8300/setjmp.S @@ -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 -- cgit v1.2.3