Added missing properties.
[tangerine.git] / arch / ppc-all / clib / vfork_longjmp.s
blob9b4f0dd48700b3d286b508522dbbd074c4fbe6a0
1 /*
2 Copyright © 1995-2008, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 /* This function works the same as longjmp() except it lacks the argument
7 check. It's used only by vfork() implementation. */
9 #include "aros/ppc/asm.h"
11 .text
12 _ALIGNMENT
13 .globl AROS_CDEFNAME(vfork_longjmp)
14 _FUNCTION(vfork_longjmp)
16 AROS_CDEFNAME(vfork_longjmp):
17 lwz %r1,(0*4)(%r3)
18 lwz %r2,(1*4)(%r3)
19 lwz %r0,(2*4)(%r3)
20 lwz %r14,((3+0)*4)(%r3)
21 lfd %f14,((22+0*2)*4)(%r3)
22 lwz %r15,((3+1)*4)(%r3)
23 lfd %f15,((22+1*2)*4)(%r3)
24 lwz %r16,((3+2)*4)(%r3)
25 lfd %f16,((22+2*2)*4)(%r3)
26 lwz %r17,((3+3)*4)(%r3)
27 lfd %f17,((22+3*2)*4)(%r3)
28 lwz %r18,((3+4)*4)(%r3)
29 lfd %f18,((22+4*2)*4)(%r3)
30 lwz %r19,((3+5)*4)(%r3)
31 lfd %f19,((22+5*2)*4)(%r3)
32 lwz %r20,((3+6)*4)(%r3)
33 lfd %f20,((22+6*2)*4)(%r3)
34 mtlr %r0
35 lwz %r21,((3+7)*4)(%r3)
36 lfd %f21,((22+7*2)*4)(%r3)
37 lwz %r22,((3+8)*4)(%r3)
38 lfd %f22,((22+8*2)*4)(%r3)
39 lwz %r0,(21*4)(%r3)
40 lwz %r23,((3+9)*4)(%r3)
41 lfd %f23,((22+9*2)*4)(%r3)
42 lwz %r24,((3+10)*4)(%r3)
43 lfd %f24,((22+10*2)*4)(%r3)
44 lwz %r25,((3+11)*4)(%r3)
45 lfd %f25,((22+11*2)*4)(%r3)
46 mtcrf 0xFF,%r0
47 lwz %r26,((3+12)*4)(%r3)
48 lfd %f26,((22+12*2)*4)(%r3)
49 lwz %r27,((3+13)*4)(%r3)
50 lfd %f27,((22+13*2)*4)(%r3)
51 lwz %r28,((3+14)*4)(%r3)
52 lfd %f28,((22+14*2)*4)(%r3)
53 lwz %r29,((3+15)*4)(%r3)
54 lfd %f29,((22+15*2)*4)(%r3)
55 lwz %r30,((3+16)*4)(%r3)
56 lfd %f30,((22+16*2)*4)(%r3)
57 lwz %r31,((3+17)*4)(%r3)
58 lfd %f31,((22+17*2)*4)(%r3)
59 mr %r3,%r4
60 blr