diff options
Diffstat (limited to 'newlib/libc/machine/d10v/setjmp.S')
-rw-r--r-- | newlib/libc/machine/d10v/setjmp.S | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/newlib/libc/machine/d10v/setjmp.S b/newlib/libc/machine/d10v/setjmp.S deleted file mode 100644 index 22287dd..0000000 --- a/newlib/libc/machine/d10v/setjmp.S +++ /dev/null @@ -1,55 +0,0 @@ -; setjmp/longjmp for D10V. The jmpbuf looks like this: -; -; Register jmpbuf offset -; R6 0x00 -; R7 0x02 -; R8 0x04 -; R9 0x06 -; R10 0x08 -; R11 0x0a -; R13 (return address) 0x0c -; R15 (SP) 0x0E - - .text - .globl setjmp - .type setjmp,@function - .stabs "setjmp.S",100,0,0,setjmp - .stabs "int:t(0,1)=r(0,1);-65536;65535;",128,0,0,0 - .stabs "setjmp:F(0,1)",36,0,1,setjmp - -setjmp: -; Address of jmpbuf is passed in R0. Save the appropriate registers. - st2w r6, @r0+ - st2w r8, @r0+ - st2w r10, @r0+ - st r13, @r0+ - st r15, @r0+ - -; Return 0 to caller - ldi r0, 0 - jmp r13 -.Lsetjmp: - .size setjmp,.Lsetjmp-setjmp - .stabs "",36,0,0,.Lsetjmp-setjmp - - .globl longjmp - .type longjmp,@function - .stabs "longjmp:F(0,1)",36,0,1,longjmp -longjmp: -; Address of jmpbuf is in R0. Restore the registers. - ld2w r6, @r0+ - ld2w r8, @r0+ - ld2w r10, @r0+ - ld r13, @r0+ - ld r15, @r0+ - -; Value to return to caller is in R1. If caller attemped to return 0, -; return 1 instead. - - mv r0, r1 - cmpeqi r0, 0 - exef0t || ldi r0,1 - jmp r13 -.Llongjmp: - .size longjmp,.Llongjmp-longjmp - .stabs "",36,0,0,.Llongjmp-longjmp |