diff options
Diffstat (limited to 'newlib/libc/machine/frv/setjmp.S')
-rw-r--r-- | newlib/libc/machine/frv/setjmp.S | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/newlib/libc/machine/frv/setjmp.S b/newlib/libc/machine/frv/setjmp.S deleted file mode 100644 index 296eff719..000000000 --- a/newlib/libc/machine/frv/setjmp.S +++ /dev/null @@ -1,126 +0,0 @@ -# setjmp/longjmp for Frv. The jmpbuf looks like this: -# -# Register jmpbuf offset -# R16-R31 0x0-0x03c -# R48-R63 0x40-0x7c -# FR16-FR31 0x80-0xbc -# FR48-FR63 0xc0-0xfc -# LR 0x100 -# SP 0x104 -# FP 0x108 -# -# R8 contains the pointer to jmpbuf - -#include <frv-asm.h> - - .text - .global EXT(setjmp) - .type EXT(setjmp),@function -EXT(setjmp): - stdi gr16, @(gr8,0) - stdi gr18, @(gr8,8) - stdi gr20, @(gr8,16) - stdi gr22, @(gr8,24) - stdi gr24, @(gr8,32) - stdi gr26, @(gr8,40) - stdi gr28, @(gr8,48) - stdi gr30, @(gr8,56) -#if __FRV_GPR__ != 32 - stdi gr48, @(gr8,64) - stdi gr50, @(gr8,72) - stdi gr52, @(gr8,80) - stdi gr54, @(gr8,88) - stdi gr56, @(gr8,96) - stdi gr58, @(gr8,104) - stdi gr60, @(gr8,112) - stdi gr62, @(gr8,120) -#endif - -#if __FRV_FPR__ != 0 - stdfi fr16, @(gr8,128) - stdfi fr18, @(gr8,136) - stdfi fr20, @(gr8,144) - stdfi fr22, @(gr8,152) - stdfi fr24, @(gr8,160) - stdfi fr26, @(gr8,168) - stdfi fr28, @(gr8,176) - stdfi fr30, @(gr8,184) -#if __FRV_FPR__ != 32 - stdfi fr48, @(gr8,192) - stdfi fr50, @(gr8,200) - stdfi fr52, @(gr8,208) - stdfi fr54, @(gr8,216) - stdfi fr56, @(gr8,224) - stdfi fr58, @(gr8,232) - stdfi fr60, @(gr8,240) - stdfi fr62, @(gr8,248) -#endif -#endif - - movsg lr, gr4 - sti gr4, @(gr8,256) - sti sp, @(gr8,260) - sti fp, @(gr8,264) - - mov gr0,gr8 - ret -.Lend1: - .size EXT(setjmp),.Lend1-EXT(setjmp) - - .global EXT(longjmp) - .type EXT(longjmp),@function -EXT(longjmp): - lddi @(gr8,0), gr16 - lddi @(gr8,8), gr18 - lddi @(gr8,16), gr20 - lddi @(gr8,24), gr22 - lddi @(gr8,32), gr24 - lddi @(gr8,40), gr26 - lddi @(gr8,48), gr28 - lddi @(gr8,56), gr30 -#if __FRV_GPR__ != 32 - lddi @(gr8,64), gr48 - lddi @(gr8,72), gr50 - lddi @(gr8,80), gr52 - lddi @(gr8,88), gr54 - lddi @(gr8,96), gr56 - lddi @(gr8,104), gr58 - lddi @(gr8,112), gr60 - lddi @(gr8,120), gr62 -#endif - -#if __FRV_FPR__ != 0 - lddfi @(gr8,128), fr16 - lddfi @(gr8,136), fr18 - lddfi @(gr8,144), fr20 - lddfi @(gr8,152), fr22 - lddfi @(gr8,160), fr24 - lddfi @(gr8,168), fr26 - lddfi @(gr8,176), fr28 - lddfi @(gr8,184), fr30 -#if __FRV_FPR__ != 32 - lddfi @(gr8,192), fr48 - lddfi @(gr8,200), fr50 - lddfi @(gr8,208), fr52 - lddfi @(gr8,216), fr54 - lddfi @(gr8,224), fr56 - lddfi @(gr8,232), fr58 - lddfi @(gr8,240), fr60 - lddfi @(gr8,248), fr62 -#endif -#endif - - ldi @(gr8,256), gr4 - movgs gr4,lr - - ldi @(gr8,260), sp - ldi @(gr8,264), fp - -# Value to return is in r9. If zero, return 1 - cmp gr9, gr0, icc0 - setlos #1, gr8 - ckne icc0, cc4 - cmov gr9, gr8, cc4, 1 - ret -.Lend2: - .size EXT(longjmp),.Lend2-EXT(longjmp2) |