bsd-setjmp.S 469 B

123456789101112131415161718192021222324252627282930
  1. /* BSD `_setjmp' entry point to `sigsetjmp (..., 1)'. H8/300 version. */
  2. #define _ASM
  3. #define _SETJMP_H
  4. #include <bits/setjmp.h>
  5. #ifdef __H8300S__
  6. .h8300s
  7. #else
  8. .h8300h
  9. #endif
  10. .text
  11. .global _setjmp
  12. _setjmp:
  13. add.l #JB_SIZE,er0
  14. mov.l @sp,er1 ; return PC
  15. mov.l er1,@-er0
  16. mov.l sp,@-er0
  17. mov.l er6,@-er0
  18. mov.l er5,@-er0
  19. mov.l er4,@-er0
  20. sub.l er0,er0
  21. #if !defined(__PIC__)
  22. jmp @___sigjmp_save
  23. #else
  24. mov.l @(___sigjmp_save@GOTOFF,er5),er1
  25. jmp @er3
  26. #endif