xref: /AOO41X/main/bridges/source/cpp_uno/gcc3_macosx_intel/call.s (revision 075978e32d28aea2aa8a1c1d514af07d41b07686)
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23    .text
24
25.align 1, 0x90
26.globl _privateSnippetExecutorGeneral
27_privateSnippetExecutorGeneral:
28LFBg:
29    movl    %esp,%ecx
30    pushl   %ebp              # proper stack frame needed for exception handling
31LCFIg0:
32    movl    %esp,%ebp
33LCFIg1:
34    subl    $0x8,%esp         # padding + 32bit returnValue
35    pushl   %esp              # 32bit &returnValue
36    pushl   %ecx              # 32bit pCallStack
37    pushl   %edx              # 32bit nVtableOffset
38    pushl   %eax              # 32bit nFunctionIndex
39    call    L_cpp_vtable_call$stub
40    movl    16(%esp),%eax     # 32bit returnValue
41    leave
42    ret
43LFEg:
44    .long   .-_privateSnippetExecutorGeneral
45
46.align 1, 0x90
47.globl _privateSnippetExecutorVoid
48_privateSnippetExecutorVoid:
49LFBv:
50    movl    %esp,%ecx
51    pushl   %ebp              # proper stack frame needed for exception handling
52LCFIv0:
53    movl    %esp,%ebp
54LCFIv1:
55    sub     $8,%esp           # padding
56    pushl   $0                # 32bit null pointer (returnValue not used)
57    pushl   %ecx              # 32bit pCallStack
58    pushl   %edx              # 32bit nVtableOffset
59    pushl   %eax              # 32bit nFunctionIndex
60    call    L_cpp_vtable_call$stub
61    leave
62    ret
63LFEv:
64    .long   .-_privateSnippetExecutorVoid
65
66.align 1, 0x90
67.globl _privateSnippetExecutorHyper
68_privateSnippetExecutorHyper:
69LFBh:
70    movl    %esp,%ecx
71    pushl   %ebp              # proper stack frame needed for exception handling
72LCFIh0:
73    movl    %esp,%ebp
74LCFIh1:
75    subl    $0x8,%esp         # 64bit returnValue
76    pushl   %esp              # 32bit &returnValue
77    pushl   %ecx              # 32bit pCallStack
78    pushl   %edx              # 32bit nVtableOffset
79    pushl   %eax              # 32bit nFunctionIndex
80    call    L_cpp_vtable_call$stub
81    movl    16(%esp),%eax     # 64bit returnValue, lower half
82    movl    20(%esp),%edx     # 64bit returnValue, upper half
83    leave
84    ret
85LFEh:
86    .long   .-_privateSnippetExecutorHyper
87
88.align 1, 0x90
89.globl _privateSnippetExecutorFloat
90_privateSnippetExecutorFloat:
91LFBf:
92    movl    %esp,%ecx
93    pushl   %ebp              # proper stack frame needed for exception handling
94LCFIf0:
95    movl    %esp,%ebp
96LCFIf1:
97    subl    $0x8,%esp         # padding + 32bit returnValue
98    pushl   %esp              # 32bit &returnValue
99    pushl   %ecx              # 32bit pCallStack
100    pushl   %edx              # 32bit nVtableOffset
101    pushl   %eax              # 32bit nFunctionIndex
102    call    L_cpp_vtable_call$stub
103    flds    16(%esp)          # 32bit returnValue
104    leave
105    ret
106LFEf:
107    .long   .-_privateSnippetExecutorFloat
108
109.align 1, 0x90
110.globl _privateSnippetExecutorDouble
111_privateSnippetExecutorDouble:
112LFBd:
113    movl    %esp,%ecx
114    pushl   %ebp              # proper stack frame needed for exception handling
115LCFId0:
116    movl    %esp,%ebp
117LCFId1:
118    subl    $0x8,%esp         # 64bit returnValue
119    pushl   %esp              # 32bit &returnValue
120    pushl   %ecx              # 32bit pCallStack
121    pushl   %edx              # 32bit nVtableOffset
122    pushl   %eax              # 32bit nFunctionIndex
123    call    L_cpp_vtable_call$stub
124    fldl    16(%esp)          # 64bit returnValue
125    leave
126    ret
127LFEd:
128    .long   .-_privateSnippetExecutorDouble
129
130.align 1, 0x90
131.globl _privateSnippetExecutorClass
132_privateSnippetExecutorClass:
133LFBc:
134    movl    %esp,%ecx
135    pushl   %ebp              # proper stack frame needed for exception handling
136LCFIc0:
137    movl    %esp,%ebp
138LCFIc1:
139    subl    $0x8,%esp         # padding + 32bit returnValue
140    pushl   %esp              # 32bit &returnValue
141    pushl   %ecx              # 32bit pCallStack
142    pushl   %edx              # 32bit nVtableOffset
143    pushl   %eax              # 32bit nFunctionIndex
144    call    L_cpp_vtable_call$stub
145    movl    16(%esp),%eax     # 32bit returnValue
146    leave
147    ret     $4
148LFEc:
149    .long   .-_privateSnippetExecutorClass
150
151    .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
152EH_frame1:
153    .set L$set$frame1,LECIE1-LSCIE1
154    .long   L$set$frame1      # length
155LSCIE1:
156    .long   0                 # CIE_ID
157    .byte   1                 # version
158    .ascii  "zPR\0"           # augmentation
159    .byte   1                 # code_alignment_factor (.uleb128 1)
160    .byte   0x7c              # data_alignment_factor (.sleb128 -4)
161    .byte   8                 # return_address_register
162    .byte   0x6               # augmentation size 7:
163    .byte   0x9b              #  ???
164    .long   L___gxx_personality_v0$non_lazy_ptr-.
165    .byte   0x10
166                              # initial_instructions:
167    .byte   0x0C              #  DW_CFA_def_cfa %esp, 4
168    .byte   5
169    .byte   4
170    .byte   0x88              #  DW_CFA_offset ret, 1
171    .byte   1
172    .align 2
173LECIE1:
174    .globl _privateSnippetExecutorGeneral.eh
175_privateSnippetExecutorGeneral.eh:
176LSFDEg:
177    .set L$set$g1,LEFDEg-LASFDEg
178    .long   L$set$g1          # length
179LASFDEg:
180    .long   LASFDEg-EH_frame1 # CIE_pointer
181    .long   LFBg-.            # initial_location
182    .long   LFEg-LFBg         # address_range
183    .byte   0                 # augmentation size 0
184                              # instructions:
185    .byte   0x04              #  DW_CFA_advance_loc4
186    .long   LCFIg0-LFBg
187    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
188    .byte   8
189    .byte   0x84              #  DW_CFA_offset %ebp, 2
190    .byte   2
191    .byte   0x04              #  DW_CFA_advance_loc4
192    .long   LCFIg1-LCFIg0
193    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
194    .byte   4
195    .align 2
196LEFDEg:
197    .globl _privateSnippetExecutorVoid.eh
198_privateSnippetExecutorVoid.eh:
199LSFDEv:
200    .set L$set$v1,LEFDEv-LASFDEv
201    .long   L$set$v1          # length
202LASFDEv:
203    .long   LASFDEv-EH_frame1 # CIE_pointer
204    .long   LFBv-.            # initial_location
205    .long   LFEv-LFBv         # address_range
206    .byte   0                 # augmentation size 0
207                              # instructions:
208    .byte   0x04              #  DW_CFA_advance_loc4
209    .long   LCFIv0-LFBv
210    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
211    .byte   8
212    .byte   0x84              #  DW_CFA_offset %ebp, 2
213    .byte   2
214    .byte   0x04              #  DW_CFA_advance_loc4
215    .long   LCFIv1-LCFIv0
216    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
217    .byte   4
218    .align 2
219LEFDEv:
220    .globl _privateSnippetExecutorHyper.eh
221_privateSnippetExecutorHyper.eh:
222LSFDEh:
223    .set L$set$h1,LEFDEh-LASFDEh
224    .long   L$set$h1          # length
225LASFDEh:
226    .long   LASFDEh-EH_frame1 # CIE_pointer
227    .long   LFBh-.            # initial_location
228    .long   LFEh-LFBh         # address_range
229    .byte   0                 # augmentation size 0
230                              # instructions:
231    .byte   0x04              #  DW_CFA_advance_loc4
232    .long   LCFIh0-LFBh
233    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
234    .byte   8
235    .byte   0x84              #  DW_CFA_offset %ebp, 2
236    .byte   2
237    .byte   0x04              #  DW_CFA_advance_loc4
238    .long   LCFIh1-LCFIh0
239    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
240    .byte   4
241    .align 2
242LEFDEh:
243    .globl _privateSnippetExecutorFloat.eh
244_privateSnippetExecutorFloat.eh:
245LSFDEf:
246    .set L$set$f1,LEFDEf-LASFDEf
247    .long   L$set$f1          # length
248LASFDEf:
249    .long   LASFDEf-EH_frame1 # CIE_pointer
250    .long   LFBf-.            # initial_location
251    .long   LFEf-LFBf         # address_range
252    .byte   0                 # augmentation size 0
253                              # instructions:
254    .byte   0x04              #  DW_CFA_advance_loc4
255    .long   LCFIf0-LFBf
256    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
257    .byte   8
258    .byte   0x84              #  DW_CFA_offset %ebp, 2
259    .byte   2
260    .byte   0x04              #  DW_CFA_advance_loc4
261    .long   LCFIf1-LCFIf0
262    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
263    .byte   4
264    .align 2
265LEFDEf:
266    .globl _privateSnippetExecutorDouble.eh
267_privateSnippetExecutorDouble.eh:
268LSFDEd:
269    .set L$set$d1,LEFDEd-LASFDEd
270    .long   L$set$d1          # length
271LASFDEd:
272    .long   LASFDEd-EH_frame1 # CIE_pointer
273    .long   LFBd-.            # initial_location
274    .long   LFEd-LFBd         # address_range
275    .byte   0                 # augmentation size 0
276                              # instructions:
277    .byte   0x04              #  DW_CFA_advance_loc4
278    .long   LCFId0-LFBd
279    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
280    .byte   8
281    .byte   0x84              #  DW_CFA_offset %ebp, 2
282    .byte   2
283    .byte   0x04              #  DW_CFA_advance_loc4
284    .long   LCFId1-LCFId0
285    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
286    .byte   4
287    .align 2
288LEFDEd:
289    .globl _privateSnippetExecutorClass.eh
290_privateSnippetExecutorClass.eh:
291LSFDEc:
292    .set L$set$c1,LEFDEc-LASFDEc
293    .long   L$set$c1          # length
294LASFDEc:
295    .long   LASFDEc-EH_frame1 # CIE_pointer
296    .long   LFBc-.            # initial_location
297    .long   LFEc-LFBc         # address_range
298    .byte   0                 # augmentation size 0
299                              # instructions:
300    .byte   0x04              #  DW_CFA_advance_loc4
301    .long   LCFIc0-LFBc
302    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
303    .byte   8
304    .byte   0x84              #  DW_CFA_offset %ebp, 2
305    .byte   2
306    .byte   0x04              #  DW_CFA_advance_loc4
307    .long   LCFIc1-LCFIc0
308    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
309    .byte   4
310    .align 2
311LEFDEc:
312    .section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5
313L_cpp_vtable_call$stub:
314    .indirect_symbol _cpp_vtable_call
315    hlt ; hlt ; hlt ; hlt ; hlt
316    .section __IMPORT,__pointers,non_lazy_symbol_pointers
317L___gxx_personality_v0$non_lazy_ptr:
318    .indirect_symbol ___gxx_personality_v0
319    .long 0
320    .constructor
321    .destructor
322    .align 1
323    .subsections_via_symbols
324