tdf#130857 qt weld: Implement QtInstanceWidget::get_text_height
[LibreOffice.git] / bridges / source / cpp_uno / gcc3_ios / ios64_helper.s
blob12308f1a9855283047b44859bbc0fb93388ceb58
1 // -*- Mode: Asm; tab-width: 4; tab-stop-list: (4 12 32); comment-column: 30; comment-start: "// "; indent-tabs-mode: nil -*-
2 //
3 // This file is part of the LibreOffice project.
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 //
9 // This file incorporates work covered by the following license notice:
11 // Licensed to the Apache Software Foundation (ASF) under one or more
12 // contributor license agreements. See the NOTICE file distributed
13 // with this work for additional information regarding copyright
14 // ownership. The ASF licenses this file to you under the Apache
15 // License, Version 2.0 (the "License"); you may not use this file
16 // except in compliance with the License. You may obtain a copy of
17 // the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 .section __TEXT,__text,regular,pure_instructions
21 .p2align 2
22 codeSnippet_0_0:
23 mov x14, 0
24 mov x15, 0
25 b _privateSnippetExecutor
26 codeSnippet_0_1:
27 mov x14, 0
28 mov x15, 1
29 b _privateSnippetExecutor
30 codeSnippet_0_2:
31 mov x14, 0
32 mov x15, 2
33 b _privateSnippetExecutor
34 codeSnippet_0_3:
35 mov x14, 0
36 mov x15, 3
37 b _privateSnippetExecutor
38 codeSnippet_1_0:
39 mov x14, 1
40 mov x15, 0
41 b _privateSnippetExecutor
42 .long 0x000001
43 .long 0
44 codeSnippet_1_1:
45 mov x14, 1
46 mov x15, 1
47 b _privateSnippetExecutor
48 codeSnippet_1_2:
49 mov x14, 1
50 mov x15, 2
51 b _privateSnippetExecutor
52 codeSnippet_1_3:
53 mov x14, 1
54 mov x15, 3
55 b _privateSnippetExecutor
56 codeSnippet_2_0:
57 mov x14, 2
58 mov x15, 0
59 b _privateSnippetExecutor
60 codeSnippet_2_1:
61 mov x14, 2
62 mov x15, 1
63 b _privateSnippetExecutor
64 codeSnippet_2_2:
65 mov x14, 2
66 mov x15, 2
67 b _privateSnippetExecutor
68 codeSnippet_2_3:
69 mov x14, 2
70 mov x15, 3
71 b _privateSnippetExecutor
72 .long 0x000002
73 .long 3
74 codeSnippet_3_0:
75 mov x14, 3
76 mov x15, 0
77 b _privateSnippetExecutor
78 codeSnippet_3_1:
79 mov x14, 3
80 mov x15, 1
81 b _privateSnippetExecutor
82 codeSnippet_3_2:
83 mov x14, 3
84 mov x15, 2
85 b _privateSnippetExecutor
86 codeSnippet_3_3:
87 mov x14, 3
88 mov x15, 3
89 b _privateSnippetExecutor
90 codeSnippet_4_0:
91 mov x14, 4
92 mov x15, 0
93 b _privateSnippetExecutor
94 codeSnippet_4_1:
95 mov x14, 4
96 mov x15, 1
97 b _privateSnippetExecutor
98 codeSnippet_4_2:
99 mov x14, 4
100 mov x15, 2
101 b _privateSnippetExecutor
102 codeSnippet_4_3:
103 mov x14, 4
104 mov x15, 3
105 b _privateSnippetExecutor
106 codeSnippet_5_0:
107 mov x14, 5
108 mov x15, 0
109 b _privateSnippetExecutor
110 codeSnippet_5_1:
111 mov x14, 5
112 mov x15, 1
113 b _privateSnippetExecutor
114 codeSnippet_5_2:
115 mov x14, 5
116 mov x15, 2
117 b _privateSnippetExecutor
118 codeSnippet_5_3:
119 mov x14, 5
120 mov x15, 3
121 b _privateSnippetExecutor
122 codeSnippet_6_0:
123 mov x14, 6
124 mov x15, 0
125 b _privateSnippetExecutor
126 codeSnippet_6_1:
127 mov x14, 6
128 mov x15, 1
129 b _privateSnippetExecutor
130 codeSnippet_6_2:
131 mov x14, 6
132 mov x15, 2
133 b _privateSnippetExecutor
134 codeSnippet_6_3:
135 mov x14, 6
136 mov x15, 3
137 b _privateSnippetExecutor
138 codeSnippet_7_0:
139 mov x14, 7
140 mov x15, 0
141 b _privateSnippetExecutor
142 codeSnippet_7_1:
143 mov x14, 7
144 mov x15, 1
145 b _privateSnippetExecutor
146 codeSnippet_7_2:
147 mov x14, 7
148 mov x15, 2
149 b _privateSnippetExecutor
150 codeSnippet_7_3:
151 mov x14, 7
152 mov x15, 3
153 b _privateSnippetExecutor
155 .globl _codeSnippets
156 _codeSnippets:
157 .long codeSnippet_0_0 - _codeSnippets
158 .long codeSnippet_0_1 - _codeSnippets
159 .long codeSnippet_0_2 - _codeSnippets
160 .long codeSnippet_0_3 - _codeSnippets
161 .long codeSnippet_1_0 - _codeSnippets
162 .long codeSnippet_1_1 - _codeSnippets
163 .long codeSnippet_1_2 - _codeSnippets
164 .long codeSnippet_1_3 - _codeSnippets
165 .long codeSnippet_2_0 - _codeSnippets
166 .long codeSnippet_2_1 - _codeSnippets
167 .long codeSnippet_2_2 - _codeSnippets
168 .long codeSnippet_2_3 - _codeSnippets
169 .long codeSnippet_3_0 - _codeSnippets
170 .long codeSnippet_3_1 - _codeSnippets
171 .long codeSnippet_3_2 - _codeSnippets
172 .long codeSnippet_3_3 - _codeSnippets
173 .long codeSnippet_4_0 - _codeSnippets
174 .long codeSnippet_4_1 - _codeSnippets
175 .long codeSnippet_4_2 - _codeSnippets
176 .long codeSnippet_4_3 - _codeSnippets
177 .long codeSnippet_5_0 - _codeSnippets
178 .long codeSnippet_5_1 - _codeSnippets
179 .long codeSnippet_5_2 - _codeSnippets
180 .long codeSnippet_5_3 - _codeSnippets
181 .long codeSnippet_6_0 - _codeSnippets
182 .long codeSnippet_6_1 - _codeSnippets
183 .long codeSnippet_6_2 - _codeSnippets
184 .long codeSnippet_6_3 - _codeSnippets
185 .long codeSnippet_7_0 - _codeSnippets
186 .long codeSnippet_7_1 - _codeSnippets
187 .long codeSnippet_7_2 - _codeSnippets
188 .long codeSnippet_7_3 - _codeSnippets
192 .private_extern _privateSnippetExecutor
193 .globl _privateSnippetExecutor
194 .p2align 2
195 _privateSnippetExecutor:
196 .cfi_startproc
197 .cfi_def_cfa w29, 16
198 .cfi_offset w30, -8
199 .cfi_offset w29, -16
201 // _privateSnippetExecutor is jumped to from codeSnippet_*
203 // push all GP, FP/SIMD registers to the stack
204 stp x6, x7, [sp, #-16]!
205 stp x4, x5, [sp, #-16]!
206 stp x2, x3, [sp, #-16]!
207 stp x0, x1, [sp, #-16]!
208 stp d6, d7, [sp, #-16]!
209 stp d4, d5, [sp, #-16]!
210 stp d2, d3, [sp, #-16]!
211 stp d0, d1, [sp, #-16]!
213 // push x8 (RC pointer) and lr to stack
214 stp x8, lr, [sp, #-16]!
216 // First argument (x15 set up in the codeSnippet instance)
217 // Second argument: The pointer to all the above
218 mov x0, x14
219 mov x1, x15
220 mov x2, sp
221 bl _cpp_vtable_call
223 // restore x8 (RC pointer) and lr (skip RC from cpp_vtable_call)
224 ldp x8, lr, [sp, #0]
226 // restore stack
227 add sp, sp, #144
229 // continue with throw/catch
230 ret lr
231 .cfi_endproc
233 // vim:set shiftwidth=4 softtabstop=4 expandtab: