.file "setjmp.S" .section .text .align 1 .global _setjmp #ifdef __AM33__ #ifdef __AM33_2__ .am33_2 #else .am33 #endif #endif _setjmp: mov d0,a0 mov d2,(0,a0) mov d3,(4,a0) mov mdr,d1 mov d1,(8,a0) mov a2,(12,a0) mov a3,(16,a0) mov sp,a1 mov a1,(20,a0) #ifdef __AM33__ add 24,a0 mov r4,(a0+) mov r5,(a0+) mov r6,(a0+) mov r7,(a0+) #ifdef __AM33_2__ fmov fs4,(a0+) fmov fs5,(a0+) fmov fs6,(a0+) fmov fs7,(a0+) fmov fs8,(a0+) fmov fs9,(a0+) fmov fs10,(a0+) fmov fs11,(a0+) fmov fs12,(a0+) fmov fs13,(a0+) fmov fs14,(a0+) fmov fs15,(a0+) fmov fs16,(a0+) fmov fs17,(a0+) fmov fs18,(a0+) fmov fs19,(a0+) #endif #endif sub d0,d0 rets .global _longjmp _longjmp: mov d0,a0 mov (8,a0),d2 mov d2,mdr mov (0,a0),d2 mov (4,a0),d3 mov (12,a0),a2 mov (16,a0),a3 mov (20,a0),a1 mov a1,sp #ifdef __AM33__ add 24,a0 mov (a0+),r4 mov (a0+),r5 mov (a0+),r6 mov (a0+),r7 #ifdef __AM33_2__ fmov (a0+),fs4 fmov (a0+),fs5 fmov (a0+),fs6 fmov (a0+),fs7 fmov (a0+),fs8 fmov (a0+),fs9 fmov (a0+),fs10 fmov (a0+),fs11 fmov (a0+),fs12 fmov (a0+),fs13 fmov (a0+),fs14 fmov (a0+),fs15 fmov (a0+),fs16 fmov (a0+),fs17 fmov (a0+),fs18 fmov (a0+),fs19 #endif #endif cmp 0,d1 bne L1 mov 1,d1 L1: mov d1,d0 retf [],0