setjmp.S 894 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * libc/sysdeps/linux/v850/setjmp.S -- `setjmp' for v850
  3. *
  4. * Copyright (C) 2001 NEC Corporation
  5. * Copyright (C) 2001 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. #define _SETJMP_H
  14. #define _ASM
  15. #include <bits/setjmp.h>
  16. #include <clinkage.h>
  17. .text
  18. C_ENTRY(__sigsetjmp):
  19. /* Save registers */
  20. mov r6, ep
  21. sst.w sp, 0[ep]
  22. sst.w lp, 4[ep]
  23. sst.w r2, 8[ep]
  24. sst.w r20, 12[ep]
  25. sst.w r21, 16[ep]
  26. sst.w r22, 20[ep]
  27. sst.w r23, 24[ep]
  28. sst.w r24, 28[ep]
  29. sst.w r25, 32[ep]
  30. sst.w r26, 36[ep]
  31. sst.w r27, 40[ep]
  32. sst.w r28, 44[ep]
  33. sst.w r29, 48[ep]
  34. /* Make a tail call to __sigjmp_save; it takes the same args. */
  35. jr C_SYMBOL_NAME(__sigjmp_save)
  36. C_END(__sigsetjmp)