1#include "m68kasm.h" 2 3.global SYM (setjmp) 4.global SYM (longjmp) 5 6SYM (setjmp): 7 moveal sp@(4),a0 8 movel sp@(0),a0@(12) 9 movel sp,a0@(8) 10 moveml d2-d7/a2-a6,a0@(20) 11 clrl d0 12 rts 13 14SYM (longjmp): 15 moveal sp@(4),a0 16 movel sp@(8),d0 17 bne 1f 18 movel &1,d0 191: 20 moveml a0@(20),d2-d7/a2-a6 21 moveal a0@(8),sp 22 movel a0@(12),sp@ 23 rts 24 25#ifdef M68881 26.global SYM (setjmp_68881) 27.global SYM (longjmp_68881) 28 29SYM (setjmp_68881): 30 moveal sp@(4),a0 31 movel sp@(0),a0@(12) 32 movel sp,a0@(8) 33 moveml d2-d7/a2-a6,a0@(20) 34 fmovemx fp2-fp7,a0@(64) 35 clrl d0 36 rts 37 38SYM (longjmp_68881): 39 moveal sp@(4),a0 40 fmovemx a0@(64),fp2-fp7 41 movel sp@(8),d0 42 bne 1f 43 movel &1,d0 441: 45 moveml a0@(20),d2-d7/a2-a6 46 moveal a0@(8),sp 47 movel a0@(12),sp@ 48 rts 49#endif 50