4 * Created on: Aug 23, 2010
9 The jmp_buf is filled as follows (d0/d1/a0/a1 are not saved):
11 _jmp_buf offset contents
30 #include "aros/m68k/asm.h"
34 .global AROS_CDEFNAME(vfork)
35 .type AROS_CDEFNAME(vfork),%function
38 move.
l %sp@
+,%d1
/* Return address -> d1 */
39 move.
l %sp
, %a0
/* Save aside %sp */
40 lea.
l %sp@
(-4 * 16),%sp
/* Reverse space for jmp_buf */
41 movem.
l %d1-
%d7
/%a2-
%a6
,%sp@
/* Registers */
42 move.
l %a0
, %sp@
(4 * 12) /* Set %sp in jmp_buf */
44 move.
l #(DEBUG_MAGIC+1),%sp@(4 * 15)
46 move.
l %sp
,%sp@
- /* Push jmp_buf (sp) address */
47 jsr __vfork
/* __vfork call won't return */