summaryrefslogtreecommitdiff
path: root/newlib/libc/machine/mips/setjmp.S
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/mips/setjmp.S')
-rw-r--r--newlib/libc/machine/mips/setjmp.S65
1 files changed, 0 insertions, 65 deletions
diff --git a/newlib/libc/machine/mips/setjmp.S b/newlib/libc/machine/mips/setjmp.S
deleted file mode 100644
index 8ffda41..0000000
--- a/newlib/libc/machine/mips/setjmp.S
+++ /dev/null
@@ -1,65 +0,0 @@
-/* This is a simple version of setjmp and longjmp.
-
- This version does NOT save the floating point register, which is
- wrong, but I don't know how to cleanly handle machines without a
- floating point coprocessor.
-
- Ian Lance Taylor, Cygnus Support, 13 May 1993. */
-
-#ifdef __mips16
-/* This file contains 32 bit assembly code. */
- .set nomips16
-#endif
-
-/* int setjmp (jmp_buf); */
- .globl setjmp
- .ent setjmp
-setjmp:
- .frame $sp,0,$31
-
- sw $16,0($4) /* $s0 */
- sw $17,4($4) /* $s1 */
- sw $18,8($4) /* $s2 */
- sw $19,12($4) /* $s3 */
- sw $20,16($4) /* $s4 */
- sw $21,20($4) /* $s5 */
- sw $22,24($4) /* $s6 */
- sw $23,28($4) /* $s7 */
- sw $30,32($4) /* $s8 */
-
- sw $sp,36($4)
- sw $31,40($4)
-
- move $2,$0
-
- j $31
-
- .end setjmp
-
-/* volatile void longjmp (jmp_buf, int); */
- .globl longjmp
- .ent longjmp
-longjmp:
- .frame $sp,0,$31
-
- lw $16,0($4) /* $s0 */
- lw $17,4($4) /* $s1 */
- lw $18,8($4) /* $s2 */
- lw $19,12($4) /* $s3 */
- lw $20,16($4) /* $s4 */
- lw $21,20($4) /* $s5 */
- lw $22,24($4) /* $s6 */
- lw $23,28($4) /* $s7 */
- lw $30,32($4) /* $s8 */
-
- lw $sp,36($4)
- lw $31,40($4)
-
- bne $5,$0,1f
- li $5,1
-1:
- move $2,$5
-
- j $31
-
- .end longjmp