diff options
Diffstat (limited to 'newlib/libc/machine/fr30/setjmp.S')
-rw-r--r-- | newlib/libc/machine/fr30/setjmp.S | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/newlib/libc/machine/fr30/setjmp.S b/newlib/libc/machine/fr30/setjmp.S deleted file mode 100644 index 98ac44d..0000000 --- a/newlib/libc/machine/fr30/setjmp.S +++ /dev/null @@ -1,64 +0,0 @@ -# setjmp/longjmp for FR30. The jmpbuf looks like this: -# -# Register jmpbuf offset -# R8 0x00 -# R9 0x04 -# R10 0x08 -# R11 0x0c -# R12 0x10 -# R13 0x14 -# R14 (FP) 0x18 -# R15 (SP) 0x1c -# RP 0x20 - -.macro save reg - st \reg,@r4 - add #4,r4 -.endm - -.macro restore reg - ld @r4,\reg - add #4,r4 -.endm - - - .text - .global setjmp -setjmp: - save r8 - save r9 - save r10 - save r11 - save r12 - save r13 - save r14 - save r15 - mov RP,r5 - st r5,@r4 - -# Return 0 to caller. - ldi:8 #0,r4 - ret - - .global longjmp -longjmp: - restore r8 - restore r9 - restore r10 - restore r11 - restore r12 - restore r13 - restore r14 - restore r15 - ld @r4,r4 - mov r4,RP - -# If caller attempted to return 0, return 1 instead. - - mov r5,r4 - or r4,r4 - bne 1f - ldi:8 #1,r4 - 1: - ret -
\ No newline at end of file |