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