]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/context/src/asm/ontop_ppc64_sysv_xcoff_gas.S
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / context / src / asm / ontop_ppc64_sysv_xcoff_gas.S
1 .align 2
2 .globl .jump_fcontext
3 .jump_fcontext:
4 # reserve space on stack
5 subi 1, 1, 184
6
7 std 13, 0(1) # save R13
8 std 14, 8(1) # save R14
9 std 15, 16(1) # save R15
10 std 16, 24(1) # save R16
11 std 17, 32(1) # save R17
12 std 18, 40(1) # save R18
13 std 19, 48(1) # save R19
14 std 20, 56(1) # save R20
15 std 21, 64(1) # save R21
16 std 22, 72(1) # save R22
17 std 23, 80(1) # save R23
18 std 24, 88(1) # save R24
19 std 25, 96(1) # save R25
20 std 26, 104(1) # save R26
21 std 27, 112(1) # save R27
22 std 29, 120(1) # save R28
23 std 29, 128(1) # save R29
24 std 30, 136(1) # save R30
25 std 31, 144(1) # save R31
26 std 3, 152(1) # save hidden
27
28 # save CR
29 mfcr 0
30 std 0, 160(1)
31 # save LR
32 mflr 0
33 std 0, 168(1)
34 # save LR as PC
35 std 0, 176(1)
36
37 # store RSP (pointing to context-data) in R7
38 mr 7, 1
39
40 # restore RSP (pointing to context-data) from R4
41 mr 1, 4
42
43 ld 13, 0(1) # restore R13
44 ld 14, 8(1) # restore R14
45 ld 15, 16(1) # restore R15
46 ld 16, 24(1) # restore R16
47 ld 17, 32(1) # restore R17
48 ld 18, 40(1) # restore R18
49 ld 19, 48(1) # restore R19
50 ld 20, 56(1) # restore R20
51 ld 21, 64(1) # restore R21
52 ld 22, 72(1) # restore R22
53 ld 23, 80(1) # restore R23
54 ld 24, 88(1) # restore R24
55 ld 25, 96(1) # restore R25
56 ld 26, 104(1) # restore R26
57 ld 27, 112(1) # restore R27
58 ld 28, 120(1) # restore R28
59 ld 29, 128(1) # restore R29
60 ld 30, 136(1) # restore R30
61 ld 31, 144(1) # restore R31
62 ld 4, 152(1) # restore hidden
63
64 # restore CR
65 ld 0, 160(1)
66 mtcr 0
67 # restore LR
68 ld 0, 168(1)
69 mtlr 0
70 # ignore PC
71
72 # adjust stack
73 addi 1, 1, 184
74
75 # return transfer_t
76 std 7, 0(4)
77 std 5, 8(4)
78
79 # restore CTR
80 mtctr 6
81
82 # jump to context
83 bctr