__longjmp.S 808 B

123456789101112131415161718192021222324252627282930313233343536
  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 <clinkage.h>
  14. .text
  15. C_ENTRY(__longjmp):
  16. /* Save registers */
  17. mov r6, ep
  18. sld.w 0[ep], sp
  19. sld.w 4[ep], lp
  20. sld.w 8[ep], r2
  21. sld.w 12[ep], r20
  22. sld.w 16[ep], r21
  23. sld.w 20[ep], r22
  24. sld.w 24[ep], r23
  25. sld.w 28[ep], r24
  26. sld.w 32[ep], r25
  27. sld.w 36[ep], r26
  28. sld.w 40[ep], r27
  29. sld.w 44[ep], r28
  30. sld.w 48[ep], r29
  31. mov 1, r10 /* return val */
  32. jmp [lp]
  33. C_END(__longjmp)
  34. libc_hidden_def(__longjmp)