__longjmp.S 553 B

123456789101112131415161718192021222324
  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 <bits/setjmp.h>
  6. .globl __longjmp;
  7. .type __longjmp,@function
  8. .align 4; \
  9. __longjmp:
  10. moveal %sp@(4), %a0
  11. movel %sp@(8), %d0
  12. bne 1f
  13. movel #1, %d0
  14. 1:
  15. moveml %a0@(JB_REGS), %d2-%d7/%a2-%a7
  16. #if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  17. fmovemx %a0@(JB_FPREGS), %fp2-%fp7
  18. #endif
  19. movel %a0@(JB_PC), %sp@
  20. rts