2 * This file is part of the LibreOffice project.
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 * This file incorporates work covered by the following license notice:
10 * Licensed to the Apache Software Foundation (ASF) under one or more
11 * contributor license agreements. See the NOTICE file distributed
12 * with this work for additional information regarding copyright
13 * ownership. The ASF licenses this file to you under the Apache
14 * License, Version 2.0 (the "License"); you may not use this file
15 * except in compliance with the License. You may obtain a copy of
16 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 .globl privateSnippetExecutorGeneral
22 .type privateSnippetExecutorGeneral,@function
23 privateSnippetExecutorGeneral
:
26 pushl
%ebp
# proper stack frame needed for exception handling
30 subl $
0x8,%esp
# 32bit returnValue, and preserve potential 128bit
32 pushl
%esp
# 32bit &returnValue
33 pushl
%ecx
# 32bit pCallStack
34 pushl
%edx
# 32bit nVtableOffset
35 pushl
%eax
# 32bit nFunctionIndex
37 movl
16(%esp
),%eax
# 32bit returnValue
41 .size privateSnippetExecutorGeneral,.-privateSnippetExecutorGeneral
43 .globl privateSnippetExecutorVoid
44 .type privateSnippetExecutorVoid,@function
45 privateSnippetExecutorVoid
:
48 pushl
%ebp
# proper stack frame needed for exception handling
52 andl $
0xFFFFFFF0,%esp
# preserve potential 128bit stack alignment
53 pushl $
0 # 32bit null pointer (returnValue not used)
54 pushl
%ecx
# 32bit pCallStack
55 pushl
%edx
# 32bit nVtableOffset
56 pushl
%eax
# 32bit nFunctionIndex
61 .size privateSnippetExecutorVoid,.-privateSnippetExecutorVoid
63 .globl privateSnippetExecutorHyper
64 .type privateSnippetExecutorHyper,@function
65 privateSnippetExecutorHyper
:
68 pushl
%ebp
# proper stack frame needed for exception handling
72 subl $
0x8,%esp
# 64bit returnValue (preserves potential 128bit
74 pushl
%esp
# 32bit &returnValue
75 pushl
%ecx
# 32bit pCallStack
76 pushl
%edx
# 32bit nVtableOffset
77 pushl
%eax
# 32bit nFunctionIndex
79 movl
16(%esp
),%eax
# 64bit returnValue, lower half
80 movl
20(%esp
),%edx
# 64bit returnValue, upper half
84 .size privateSnippetExecutorHyper,.-privateSnippetExecutorHyper
86 .globl privateSnippetExecutorFloat
87 .type privateSnippetExecutorFloat,@function
88 privateSnippetExecutorFloat
:
91 pushl
%ebp
# proper stack frame needed for exception handling
95 subl $
0x8,%esp
# 32bit returnValue, and preserve potential 128bit
97 pushl
%esp
# 32bit &returnValue
98 pushl
%ecx
# 32bit pCallStack
99 pushl
%edx
# 32bit nVtableOffset
100 pushl
%eax
# 32bit nFunctionIndex
102 flds
16(%esp
) # 32bit returnValue
106 .size privateSnippetExecutorFloat,.-privateSnippetExecutorFloat
108 .globl privateSnippetExecutorDouble
109 .type privateSnippetExecutorDouble,@function
110 privateSnippetExecutorDouble
:
113 pushl
%ebp
# proper stack frame needed for exception handling
117 subl $
0x8,%esp
# 64bit returnValue (preserves potential 128bit
119 pushl
%esp
# 32bit &returnValue
120 pushl
%ecx
# 32bit pCallStack
121 pushl
%edx
# 32bit nVtableOffset
122 pushl
%eax
# 32bit nFunctionIndex
124 fldl
16(%esp
) # 64bit returnValue
128 .size privateSnippetExecutorDouble,.-privateSnippetExecutorDouble
130 .globl privateSnippetExecutorClass
131 .type privateSnippetExecutorClass,@function
132 privateSnippetExecutorClass
:
135 pushl
%ebp
# proper stack frame needed for exception handling
139 subl $
0x8,%esp
# 32bit returnValue, and preserve potential 128bit
141 pushl
%esp
# 32bit &returnValue
142 pushl
%ecx
# 32bit pCallStack
143 pushl
%edx
# 32bit nVtableOffset
144 pushl
%eax
# 32bit nFunctionIndex
146 movl
16(%esp
),%eax
# 32bit returnValue
150 .size privateSnippetExecutorClass,.-privateSnippetExecutorClass
152 .section .eh_frame,"a",@progbits
154 .long .LECIE1-.LSCIE1 # length
158 .string "zR" # augmentation
159 .uleb128 1 # code_alignment_factor
160 .sleb128 -4 # data_alignment_factor
161 .byte 8 # return_address_register
162 .uleb128 1 # augmentation size 1:
163 .byte 0x1B # FDE Encoding (pcrel sdata4)
164 # initial_instructions:
165 .byte 0x0C # DW_CFA_def_cfa %esp, 4
168 .byte 0x88 # DW_CFA_offset ret, 1
173 .long .LEFDEg-.LASFDEg # length
175 .long .LASFDEg-.Lframe1 # CIE_pointer
176 .long .LFBg-. # initial_location
177 .long .LFEg-.LFBg # address_range
178 .uleb128 0 # augmentation size 0
180 .byte 0x04 # DW_CFA_advance_loc4
182 .byte 0x0E # DW_CFA_def_cfa_offset 8
184 .byte 0x85 # DW_CFA_offset %ebp, 2
186 .byte 0x04 # DW_CFA_advance_loc4
187 .long .LCFIg1-.LCFIg0
188 .byte 0x0D # DW_CFA_def_cfa_register %ebp
193 .long .LEFDEv-.LASFDEv # length
195 .long .LASFDEv-.Lframe1 # CIE_pointer
196 .long .LFBv-. # initial_location
197 .long .LFEv-.LFBv # address_range
198 .uleb128 0 # augmentation size 0
200 .byte 0x04 # DW_CFA_advance_loc4
202 .byte 0x0E # DW_CFA_def_cfa_offset 8
204 .byte 0x85 # DW_CFA_offset %ebp, 2
206 .byte 0x04 # DW_CFA_advance_loc4
207 .long .LCFIv1-.LCFIv0
208 .byte 0x0D # DW_CFA_def_cfa_register %ebp
213 .long .LEFDEh-.LASFDEh # length
215 .long .LASFDEh-.Lframe1 # CIE_pointer
216 .long .LFBh-. # initial_location
217 .long .LFEh-.LFBh # address_range
218 .uleb128 0 # augmentation size 0
220 .byte 0x04 # DW_CFA_advance_loc4
222 .byte 0x0E # DW_CFA_def_cfa_offset 8
224 .byte 0x85 # DW_CFA_offset %ebp, 2
226 .byte 0x04 # DW_CFA_advance_loc4
227 .long .LCFIh1-.LCFIh0
228 .byte 0x0D # DW_CFA_def_cfa_register %ebp
233 .long .LEFDEf-.LASFDEf # length
235 .long .LASFDEf-.Lframe1 # CIE_pointer
236 .long .LFBf-. # initial_location
237 .long .LFEf-.LFBf # address_range
238 .uleb128 0 # augmentation size 0
240 .byte 0x04 # DW_CFA_advance_loc4
242 .byte 0x0E # DW_CFA_def_cfa_offset 8
244 .byte 0x85 # DW_CFA_offset %ebp, 2
246 .byte 0x04 # DW_CFA_advance_loc4
247 .long .LCFIf1-.LCFIf0
248 .byte 0x0D # DW_CFA_def_cfa_register %ebp
253 .long .LEFDEd-.LASFDEd # length
255 .long .LASFDEd-.Lframe1 # CIE_pointer
256 .long .LFBd-. # initial_location
257 .long .LFEd-.LFBd # address_range
258 .uleb128 0 # augmentation size 0
260 .byte 0x04 # DW_CFA_advance_loc4
262 .byte 0x0E # DW_CFA_def_cfa_offset 8
264 .byte 0x85 # DW_CFA_offset %ebp, 2
266 .byte 0x04 # DW_CFA_advance_loc4
267 .long .LCFId1-.LCFId0
268 .byte 0x0D # DW_CFA_def_cfa_register %ebp
273 .long .LEFDEc-.LASFDEc # length
275 .long .LASFDEc-.Lframe1 # CIE_pointer
276 .long .LFBc-. # initial_location
277 .long .LFEc-.LFBc # address_range
278 .uleb128 0 # augmentation size 0
280 .byte 0x04 # DW_CFA_advance_loc4
282 .byte 0x0E # DW_CFA_def_cfa_offset 8
284 .byte 0x85 # DW_CFA_offset %ebp, 2
286 .byte 0x04 # DW_CFA_advance_loc4
287 .long .LCFIc1-.LCFIc0
288 .byte 0x0D # DW_CFA_def_cfa_register %ebp
292 .section .note.GNU-stack,"",@progbits
293 .section .note.gnu.property,"a"