xref: /AOO41X/main/bridges/source/cpp_uno/gcc3_freebsd_intel/call.s (revision 2611ca737120fc2a184183d26db08aa35d339500)
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    .text
23
24.globl privateSnippetExecutorGeneral
25    .type   privateSnippetExecutorGeneral,@function
26privateSnippetExecutorGeneral:
27.LFBg:
28    movl    %esp,%ecx
29    pushl   %ebp              # proper stack frame needed for exception handling
30.LCFIg0:
31    movl    %esp,%ebp
32.LCFIg1:
33    subl    $0x4,%esp         # 32bit returnValue
34    pushl   %esp              # 32bit &returnValue
35    pushl   %ecx              # 32bit pCallStack
36    pushl   %edx              # 32bit nVtableOffset
37    pushl   %eax              # 32bit nFunctionIndex
38    call    cpp_vtable_call
39    movl    16(%esp),%eax     # 32bit returnValue
40    leave
41    ret
42.LFEg:
43    .size   privateSnippetExecutorGeneral,.-privateSnippetExecutorGeneral
44
45.globl privateSnippetExecutorVoid
46    .type   privateSnippetExecutorVoid,@function
47privateSnippetExecutorVoid:
48.LFBv:
49    movl    %esp,%ecx
50    pushl   %ebp              # proper stack frame needed for exception handling
51.LCFIv0:
52    movl    %esp,%ebp
53.LCFIv1:
54    pushl   $0                # 32bit null pointer (returnValue not used)
55    pushl   %ecx              # 32bit pCallStack
56    pushl   %edx              # 32bit nVtableOffset
57    pushl   %eax              # 32bit nFunctionIndex
58    call    cpp_vtable_call
59    leave
60    ret
61.LFEv:
62    .size   privateSnippetExecutorVoid,.-privateSnippetExecutorVoid
63
64.globl privateSnippetExecutorHyper
65    .type   privateSnippetExecutorHyper,@function
66privateSnippetExecutorHyper:
67.LFBh:
68    movl    %esp,%ecx
69    pushl   %ebp              # proper stack frame needed for exception handling
70.LCFIh0:
71    movl    %esp,%ebp
72.LCFIh1:
73    subl    $0x8,%esp         # 64bit returnValue
74    pushl   %esp              # 32bit &returnValue
75    pushl   %ecx              # 32bit pCallStack
76    pushl   %edx              # 32bit nVtableOffset
77    pushl   %eax              # 32bit nFunctionIndex
78    call    cpp_vtable_call
79    movl    16(%esp),%eax     # 64bit returnValue, lower half
80    movl    20(%esp),%edx     # 64bit returnValue, upper half
81    leave
82    ret
83.LFEh:
84    .size   privateSnippetExecutorHyper,.-privateSnippetExecutorHyper
85
86.globl privateSnippetExecutorFloat
87    .type   privateSnippetExecutorFloat,@function
88privateSnippetExecutorFloat:
89.LFBf:
90    movl    %esp,%ecx
91    pushl   %ebp              # proper stack frame needed for exception handling
92.LCFIf0:
93    movl    %esp,%ebp
94.LCFIf1:
95    subl    $0x4,%esp         # 32bit returnValue
96    pushl   %esp              # 32bit &returnValue
97    pushl   %ecx              # 32bit pCallStack
98    pushl   %edx              # 32bit nVtableOffset
99    pushl   %eax              # 32bit nFunctionIndex
100    call    cpp_vtable_call
101    flds    16(%esp)          # 32bit returnValue
102    leave
103    ret
104.LFEf:
105    .size   privateSnippetExecutorFloat,.-privateSnippetExecutorFloat
106
107.globl privateSnippetExecutorDouble
108    .type   privateSnippetExecutorDouble,@function
109privateSnippetExecutorDouble:
110.LFBd:
111    movl    %esp,%ecx
112    pushl   %ebp              # proper stack frame needed for exception handling
113.LCFId0:
114    movl    %esp,%ebp
115.LCFId1:
116    subl    $0x8,%esp         # 64bit returnValue
117    pushl   %esp              # 32bit &returnValue
118    pushl   %ecx              # 32bit pCallStack
119    pushl   %edx              # 32bit nVtableOffset
120    pushl   %eax              # 32bit nFunctionIndex
121    call    cpp_vtable_call
122    fldl    16(%esp)          # 64bit returnValue
123    leave
124    ret
125.LFEd:
126    .size   privateSnippetExecutorDouble,.-privateSnippetExecutorDouble
127
128.globl privateSnippetExecutorClass
129    .type   privateSnippetExecutorClass,@function
130privateSnippetExecutorClass:
131.LFBc:
132    movl    %esp,%ecx
133    pushl   %ebp              # proper stack frame needed for exception handling
134.LCFIc0:
135    movl    %esp,%ebp
136.LCFIc1:
137    subl    $0x4,%esp         # 32bit returnValue
138    pushl   %esp              # 32bit &returnValue
139    pushl   %ecx              # 32bit pCallStack
140    pushl   %edx              # 32bit nVtableOffset
141    pushl   %eax              # 32bit nFunctionIndex
142    call    cpp_vtable_call
143    movl    16(%esp),%eax     # 32bit returnValue
144    leave
145    ret     $4
146.LFEc:
147    .size   privateSnippetExecutorClass,.-privateSnippetExecutorClass
148
149    .section .eh_frame,"a",@progbits
150.Lframe1:
151    .long   .LECIE1-.LSCIE1   # length
152.LSCIE1:
153    .long   0                 # CIE_ID
154    .byte   1                 # version
155    .string "zR"              # augmentation
156    .uleb128 1                # code_alignment_factor
157    .sleb128 -4               # data_alignment_factor
158    .byte   8                 # return_address_register
159    .uleb128 1                # augmentation size 1:
160    .byte   0x1B              #  FDE Encoding (pcrel sdata4)
161                              # initial_instructions:
162    .byte   0x0C              #  DW_CFA_def_cfa %esp, 4
163    .uleb128 4
164    .uleb128 4
165    .byte   0x88              #  DW_CFA_offset ret, 1
166    .uleb128 1
167    .align 4
168.LECIE1:
169.LSFDEg:
170    .long   .LEFDEg-.LASFDEg  # length
171.LASFDEg:
172    .long   .LASFDEg-.Lframe1 # CIE_pointer
173    .long   .LFBg-.           # initial_location
174    .long   .LFEg-.LFBg       # address_range
175    .uleb128 0                # augmentation size 0
176                              # instructions:
177    .byte   0x04              #  DW_CFA_advance_loc4
178    .long   .LCFIg0-.LFBg
179    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
180    .uleb128 8
181    .byte   0x85              #  DW_CFA_offset %ebp, 2
182    .uleb128 2
183    .byte   0x04              #  DW_CFA_advance_loc4
184    .long   .LCFIg1-.LCFIg0
185    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
186    .uleb128 5
187    .align 4
188.LEFDEg:
189.LSFDEv:
190    .long   .LEFDEv-.LASFDEv  # length
191.LASFDEv:
192    .long   .LASFDEv-.Lframe1 # CIE_pointer
193    .long   .LFBv-.           # initial_location
194    .long   .LFEv-.LFBv       # address_range
195    .uleb128 0                # augmentation size 0
196                              # instructions:
197    .byte   0x04              #  DW_CFA_advance_loc4
198    .long   .LCFIv0-.LFBv
199    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
200    .uleb128 8
201    .byte   0x85              #  DW_CFA_offset %ebp, 2
202    .uleb128 2
203    .byte   0x04              #  DW_CFA_advance_loc4
204    .long   .LCFIv1-.LCFIv0
205    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
206    .uleb128 5
207    .align 4
208.LEFDEv:
209.LSFDEh:
210    .long   .LEFDEh-.LASFDEh  # length
211.LASFDEh:
212    .long   .LASFDEh-.Lframe1 # CIE_pointer
213    .long   .LFBh-.           # initial_location
214    .long   .LFEh-.LFBh       # address_range
215    .uleb128 0                # augmentation size 0
216                              # instructions:
217    .byte   0x04              #  DW_CFA_advance_loc4
218    .long   .LCFIh0-.LFBh
219    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
220    .uleb128 8
221    .byte   0x85              #  DW_CFA_offset %ebp, 2
222    .uleb128 2
223    .byte   0x04              #  DW_CFA_advance_loc4
224    .long   .LCFIh1-.LCFIh0
225    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
226    .uleb128 5
227    .align 4
228.LEFDEh:
229.LSFDEf:
230    .long   .LEFDEf-.LASFDEf  # length
231.LASFDEf:
232    .long   .LASFDEf-.Lframe1 # CIE_pointer
233    .long   .LFBf-.           # initial_location
234    .long   .LFEf-.LFBf       # address_range
235    .uleb128 0                # augmentation size 0
236                              # instructions:
237    .byte   0x04              #  DW_CFA_advance_loc4
238    .long   .LCFIf0-.LFBf
239    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
240    .uleb128 8
241    .byte   0x85              #  DW_CFA_offset %ebp, 2
242    .uleb128 2
243    .byte   0x04              #  DW_CFA_advance_loc4
244    .long   .LCFIf1-.LCFIf0
245    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
246    .uleb128 5
247    .align 4
248.LEFDEf:
249.LSFDEd:
250    .long   .LEFDEd-.LASFDEd  # length
251.LASFDEd:
252    .long   .LASFDEd-.Lframe1 # CIE_pointer
253    .long   .LFBd-.           # initial_location
254    .long   .LFEd-.LFBd       # address_range
255    .uleb128 0                # augmentation size 0
256                              # instructions:
257    .byte   0x04              #  DW_CFA_advance_loc4
258    .long   .LCFId0-.LFBd
259    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
260    .uleb128 8
261    .byte   0x85              #  DW_CFA_offset %ebp, 2
262    .uleb128 2
263    .byte   0x04              #  DW_CFA_advance_loc4
264    .long   .LCFId1-.LCFId0
265    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
266    .uleb128 5
267    .align 4
268.LEFDEd:
269.LSFDEc:
270    .long   .LEFDEc-.LASFDEc  # length
271.LASFDEc:
272    .long   .LASFDEc-.Lframe1 # CIE_pointer
273    .long   .LFBc-.           # initial_location
274    .long   .LFEc-.LFBc       # address_range
275    .uleb128 0                # augmentation size 0
276                              # instructions:
277    .byte   0x04              #  DW_CFA_advance_loc4
278    .long   .LCFIc0-.LFBc
279    .byte   0x0E              #  DW_CFA_def_cfa_offset 8
280    .uleb128 8
281    .byte   0x85              #  DW_CFA_offset %ebp, 2
282    .uleb128 2
283    .byte   0x04              #  DW_CFA_advance_loc4
284    .long   .LCFIc1-.LCFIc0
285    .byte   0x0D              #  DW_CFA_def_cfa_register %ebp
286    .uleb128 5
287    .align 4
288.LEFDEc:
289    .section .note.GNU-stack,"",@progbits
290