summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/m68k/bsd-_setjmp.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/m68k/bsd-_setjmp.S')
-rw-r--r--libc/sysdeps/linux/m68k/bsd-_setjmp.S24
1 files changed, 24 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/m68k/bsd-_setjmp.S b/libc/sysdeps/linux/m68k/bsd-_setjmp.S
new file mode 100644
index 000000000..0380c3dee
--- /dev/null
+++ b/libc/sysdeps/linux/m68k/bsd-_setjmp.S
@@ -0,0 +1,24 @@
+
+/* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
+/* This file is released under the LGPL, any version you like */
+
+#define _ASM
+#define _SETJMP_H
+#include <bits/setjmp.h>
+
+.globl _setjmp;
+.type _setjmp,@function
+.align 4;
+
+_setjmp:
+ moveal %sp@(4), %a0
+ movel %sp@(0), %a0@(JB_PC)
+ moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
+#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
+ fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
+#endif
+ clrl %d0
+ movl %d0, JB_SIZE(%a0) /* No signal mask set. */
+ rts
+
+