]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/context/src/asm/ontop_ppc32_sysv_elf_gas.S
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / context / src / asm / ontop_ppc32_sysv_elf_gas.S
CommitLineData
7c673cae
FG
1/*
2 Copyright Oliver Kowalke 2009.
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
6*/
7
8/*******************************************************
9 * *
10 * ------------------------------------------------- *
11 * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | *
12 * ------------------------------------------------- *
13 * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | *
14 * ------------------------------------------------- *
15 * | R13 | R14 | R15 | R16 | R17 | R18 | R19 | R20 | *
16 * ------------------------------------------------- *
17 * ------------------------------------------------- *
18 * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | *
19 * ------------------------------------------------- *
20 * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | *
21 * ------------------------------------------------- *
22 * | R21 | R22 | R23 | R24 | R25 | R26 | R27 | R28 | *
23 * ------------------------------------------------- *
24 * ------------------------------------------------- *
25 * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
26 * ------------------------------------------------- *
27 * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | *
28 * ------------------------------------------------- *
29 * | R29 | R30 | R31 |hiddn| CR | LR | PC | FCTX| *
30 * ------------------------------------------------- *
31 * ------------------------------------------------- *
32 * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | *
33 * ------------------------------------------------- *
34 * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | *
35 * ------------------------------------------------- *
36 * | DATA| | | | | *
37 * ------------------------------------------------- *
38 * *
39 *******************************************************/
40
41.text
42.globl ontop_fcontext
43.align 2
44.type ontop_fcontext,@function
45ontop_fcontext:
46 # reserve space on stack
47 subi %r1, %r1, 92
48
49 stw %r13, 0(%r1) # save R13
50 stw %r14, 4(%r1) # save R14
51 stw %r15, 8(%r1) # save R15
52 stw %r16, 12(%r1) # save R16
53 stw %r17, 16(%r1) # save R17
54 stw %r18, 20(%r1) # save R18
55 stw %r19, 24(%r1) # save R19
56 stw %r20, 28(%r1) # save R20
57 stw %r21, 32(%r1) # save R21
58 stw %r22, 36(%r1) # save R22
59 stw %r23, 40(%r1) # save R23
60 stw %r24, 44(%r1) # save R24
61 stw %r25, 48(%r1) # save R25
62 stw %r26, 52(%r1) # save R26
63 stw %r27, 56(%r1) # save R27
64 stw %r28, 60(%r1) # save R28
65 stw %r29, 64(%r1) # save R29
66 stw %r30, 68(%r1) # save R30
67 stw %r31, 72(%r1) # save R31
68 stw %r3, 76(%r1) # save hidden
69
70 # save CR
71 mfcr %r0
72 stw %r0, 80(%r1)
73 # save LR
74 mflr %r0
75 stw %r0, 84(%r1)
76 # save LR as PC
77 stw %r0, 88(%r1)
78
79 # store RSP (pointing to context-data) in R7
80 mr %r7, %r1
81
82 # restore RSP (pointing to context-data) from R4
83 mr %r1, %r4
84
85 lwz %r13, 0(%r1) # restore R13
86 lwz %r14, 4(%r1) # restore R14
87 lwz %r15, 8(%r1) # restore R15
88 lwz %r16, 12(%r1) # restore R16
89 lwz %r17, 16(%r1) # restore R17
90 lwz %r18, 20(%r1) # restore R18
91 lwz %r19, 24(%r1) # restore R19
92 lwz %r20, 28(%r1) # restore R20
93 lwz %r21, 32(%r1) # restore R21
94 lwz %r22, 36(%r1) # restore R22
95 lwz %r23, 40(%r1) # restore R23
96 lwz %r24, 44(%r1) # restore R24
97 lwz %r25, 48(%r1) # restore R25
98 lwz %r26, 52(%r1) # restore R26
99 lwz %r27, 56(%r1) # restore R27
100 lwz %r28, 60(%r1) # restore R28
101 lwz %r29, 64(%r1) # restore R29
102 lwz %r30, 68(%r1) # restore R30
103 lwz %r31, 72(%r1) # restore R31
104 lwz %r4, 76(%r1) # restore hidden
105
106 # restore CR
107 lwz %r0, 80(%r1)
108 mtcr %r0
109 # restore LR
110 lwz %r0, 84(%r1)
111 mtlr %r0
112 # ignore PC
113
114 # adjust stack
115 addi %r1, %r1, 92
116
117 # return transfer_t
118 stw %r7, 0(%r4)
119 stw %r5, 4(%r4)
120
121 # restore CTR
122 mtctr %r6
123
124 # jump to ontop-function
125 bctr
126.size ontop_fcontext, .-ontop_fcontext
127
128/* Mark that we don't need executable stack. */
129.section .note.GNU-stack,"",%progbits