diff options
Diffstat (limited to 'newlib/libc/machine/mips/setjmp.S')
-rw-r--r-- | newlib/libc/machine/mips/setjmp.S | 65 |
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 |