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:
authorChristopher Faylor <me@cgf.cx>2000-02-17 22:39:52 +0300
committerChristopher Faylor <me@cgf.cx>2000-02-17 22:39:52 +0300
commit8a0efa53e44919bcf5ccb1d3353618a82afdf8bc (patch)
tree68c3dbf3f2c6fd5d49777def9914d77b5cd4589d /newlib/libc/machine/h8300/setjmp.S
parent1fd5e000ace55b323124c7e556a7a864b972a5c4 (diff)
import newlib-2000-02-17 snapshot
Diffstat (limited to 'newlib/libc/machine/h8300/setjmp.S')
-rw-r--r--newlib/libc/machine/h8300/setjmp.S72
1 files changed, 72 insertions, 0 deletions
diff --git a/newlib/libc/machine/h8300/setjmp.S b/newlib/libc/machine/h8300/setjmp.S
new file mode 100644
index 000000000..9e7164095
--- /dev/null
+++ b/newlib/libc/machine/h8300/setjmp.S
@@ -0,0 +1,72 @@
+ .file "setjmp.S"
+
+#ifdef __H8300H__
+ .h8300h
+#endif
+
+#ifdef __H8300S__
+ .h8300s
+#endif
+
+ .section .text
+ .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__
+ 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
+ mov.w r7,@r0
+ mov.w r6,@(2,r0)
+ mov.w r5,@(4,r0)
+ mov.w r4,@(6,r0)
+ mov.w @sp,r1
+ mov.w r1,@(8,r0)
+#endif
+#endif
+ sub.w r0,r0
+ rts
+
+ .global _longjmp
+_longjmp:
+#ifdef __H8300H__
+ 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
+#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
+ mov.w @r0+,r5
+ mov.w @r0+,r4
+ mov.w @r0,r2
+ mov.w r2,@sp
+#endif
+#endif
+ mov.w r1,r0
+ bne .L1
+ mov.w #1,r0
+.L1:
+ rts