diff options
Diffstat (limited to 'newlib/libc/machine/h8300/setjmp.S')
-rw-r--r-- | newlib/libc/machine/h8300/setjmp.S | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/newlib/libc/machine/h8300/setjmp.S b/newlib/libc/machine/h8300/setjmp.S index c6661a926..cb79e49b3 100644 --- a/newlib/libc/machine/h8300/setjmp.S +++ b/newlib/libc/machine/h8300/setjmp.S @@ -6,7 +6,14 @@ .align 2 .global _setjmp _setjmp: -#if defined(__H8300H__) || defined(__H8300S__) +#if defined(__H8300SX__) + mov.l er7,@er0+ + mov.l er6,@er0+ + mov.l er5,@er0+ + mov.l er4,@er0+ + mov.l @sp,@er0 + sub.l er0,er0 +#elif defined(__H8300H__) || defined(__H8300S__) mov.l er7,@er0 mov.l er6,@(4,er0) mov.l er5,@(8,er0) @@ -27,13 +34,17 @@ _setjmp: .global _longjmp _longjmp: -#if defined(__H8300H__) || defined (__H8300S__) +#if defined(__H8300H__) || defined (__H8300S__) || defined (__H8300SX__) mov.l @er0+,er7 mov.l @er0+,er6 mov.l @er0+,er5 mov.l @er0+,er4 +#if defined(__H8300SX__) + mov.l @er0,@sp +#else mov.l @er0,er2 mov.l er2,@sp +#endif #if (__INT_MAX__ <= 32767) mov.w r1,r0 #else |