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