Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/h8300/setjmp.S')
-rw-r--r--newlib/libc/machine/h8300/setjmp.S54
1 files changed, 29 insertions, 25 deletions
diff --git a/newlib/libc/machine/h8300/setjmp.S b/newlib/libc/machine/h8300/setjmp.S
index cb79e49b3..9e7164095 100644
--- a/newlib/libc/machine/h8300/setjmp.S
+++ b/newlib/libc/machine/h8300/setjmp.S
@@ -1,26 +1,32 @@
-#include "setarch.h"
-
.file "setjmp.S"
+#ifdef __H8300H__
+ .h8300h
+#endif
+
+#ifdef __H8300S__
+ .h8300s
+#endif
+
.section .text
.align 2
.global _setjmp
_setjmp:
-#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__)
+#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__
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)
@@ -28,31 +34,28 @@ _setjmp:
mov.w r4,@(6,r0)
mov.w @sp,r1
mov.w r1,@(8,r0)
- sub.w r0,r0
#endif
+#endif
+ sub.w r0,r0
rts
.global _longjmp
_longjmp:
-#if defined(__H8300H__) || defined (__H8300S__) || defined (__H8300SX__)
+#ifdef __H8300H__
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
- mov.l er1,er0
-#endif
- bne .L1
- sub er0,er0
- adds #1,er0
+#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
#else
mov.w @r0+,r7
mov.w @r0+,r6
@@ -60,9 +63,10 @@ _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