Blob


1 ENTRY(_getmcontext) /* xxx: instruction scheduling */
2 mflr %r0
3 mfcr %r5
4 mfctr %r6
5 mfxer %r7
6 stw %r0, 0*4(%r3)
7 stw %r5, 1*4(%r3)
8 stw %r6, 2*4(%r3)
9 stw %r7, 3*4(%r3)
11 stw %r1, 4*4(%r3)
12 stw %r2, 5*4(%r3)
13 li %r5, 1 /* return value for setmcontext */
14 stw %r5, 6*4(%r3)
16 stw %r13, (0+7)*4(%r3) /* callee-save GPRs */
17 stw %r14, (1+7)*4(%r3) /* xxx: block move */
18 stw %r15, (2+7)*4(%r3)
19 stw %r16, (3+7)*4(%r3)
20 stw %r17, (4+7)*4(%r3)
21 stw %r18, (5+7)*4(%r3)
22 stw %r19, (6+7)*4(%r3)
23 stw %r20, (7+7)*4(%r3)
24 stw %r21, (8+7)*4(%r3)
25 stw %r22, (9+7)*4(%r3)
26 stw %r23, (10+7)*4(%r3)
27 stw %r24, (11+7)*4(%r3)
28 stw %r25, (12+7)*4(%r3)
29 stw %r26, (13+7)*4(%r3)
30 stw %r27, (14+7)*4(%r3)
31 stw %r28, (15+7)*4(%r3)
32 stw %r29, (16+7)*4(%r3)
33 stw %r30, (17+7)*4(%r3)
34 stw %r31, (18+7)*4(%r3)
36 li %r3, 0 /* return */
37 blr
39 ENTRY(_setmcontext)
40 lwz %r13, (0+7)*4(%r3) /* callee-save GPRs */
41 lwz %r14, (1+7)*4(%r3) /* xxx: block move */
42 lwz %r15, (2+7)*4(%r3)
43 lwz %r16, (3+7)*4(%r3)
44 lwz %r17, (4+7)*4(%r3)
45 lwz %r18, (5+7)*4(%r3)
46 lwz %r19, (6+7)*4(%r3)
47 lwz %r20, (7+7)*4(%r3)
48 lwz %r21, (8+7)*4(%r3)
49 lwz %r22, (9+7)*4(%r3)
50 lwz %r23, (10+7)*4(%r3)
51 lwz %r24, (11+7)*4(%r3)
52 lwz %r25, (12+7)*4(%r3)
53 lwz %r26, (13+7)*4(%r3)
54 lwz %r27, (14+7)*4(%r3)
55 lwz %r28, (15+7)*4(%r3)
56 lwz %r29, (16+7)*4(%r3)
57 lwz %r30, (17+7)*4(%r3)
58 lwz %r31, (18+7)*4(%r3)
60 lwz %r1, 4*4(%r3)
61 lwz %r2, 5*4(%r3)
63 lwz %r0, 0*4(%r3)
64 mtlr %r0
65 lwz %r0, 1*4(%r3)
66 mtcr %r0 /* mtcrf 0xFF, %r0 */
67 lwz %r0, 2*4(%r3)
68 mtctr %r0
69 lwz %r0, 3*4(%r3)
70 mtxer %r0
72 lwz %r3, 6*4(%r3)
73 blr