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