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