__longjmp.S 885 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * libc/sysdeps/linux/v850/longjmp.S -- `longjmp' for v850
  3. *
  4. * Copyright (C) 2001,02 NEC Corporation
  5. * Copyright (C) 2001,02 Miles Bader <miles@gnu.org>
  6. *
  7. * This file is subject to the terms and conditions of the GNU Lesser
  8. * General Public License. See the file COPYING.LIB in the main
  9. * directory of this archive for more details.
  10. *
  11. * Written by Miles Bader <miles@gnu.org>
  12. */
  13. #include <features.h>
  14. #define _SETJMP_H
  15. #define _ASM
  16. #include <bits/setjmp.h>
  17. #include <clinkage.h>
  18. .text
  19. C_ENTRY(__longjmp):
  20. /* Save registers */
  21. mov r6, ep
  22. sld.w 0[ep], sp
  23. sld.w 4[ep], lp
  24. sld.w 8[ep], r2
  25. sld.w 12[ep], r20
  26. sld.w 16[ep], r21
  27. sld.w 20[ep], r22
  28. sld.w 24[ep], r23
  29. sld.w 28[ep], r24
  30. sld.w 32[ep], r25
  31. sld.w 36[ep], r26
  32. sld.w 40[ep], r27
  33. sld.w 44[ep], r28
  34. sld.w 48[ep], r29
  35. mov 1, r10 // return val
  36. jmp [lp]
  37. C_END(__longjmp)
  38. libc_hidden_def(__longjmp)