__longjmp.S 536 B

1234567891011121314151617181920212223242526
  1. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  2. /* This file is released under the LGPL, any version you like */
  3. #define _ASM
  4. #define _SETJMP_H
  5. #include <features.h>
  6. #include <bits/setjmp.h>
  7. .globl __longjmp
  8. .type __longjmp,@function
  9. .align 4
  10. __longjmp:
  11. moveal %sp@(4), %a0
  12. movel %sp@(8), %d0
  13. bne 1f
  14. movel #1, %d0
  15. 1:
  16. moveml %a0@(JB_REGS), %d2-%d7/%a2-%a7
  17. #if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  18. fmovemx %a0@(JB_FPREGS), %fp2-%fp7
  19. #endif
  20. movel %a0@(JB_PC), %sp@
  21. rts
  22. libc_hidden_def(__longjmp)