1*b5da552cSAndrew Rist/************************************************************** 2cdf0e10cSrcweir * 3*b5da552cSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*b5da552cSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*b5da552cSAndrew Rist * distributed with this work for additional information 6*b5da552cSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*b5da552cSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*b5da552cSAndrew Rist * "License"); you may not use this file except in compliance 9*b5da552cSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*b5da552cSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*b5da552cSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*b5da552cSAndrew Rist * software distributed under the License is distributed on an 15*b5da552cSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b5da552cSAndrew Rist * KIND, either express or implied. See the License for the 17*b5da552cSAndrew Rist * specific language governing permissions and limitations 18*b5da552cSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*b5da552cSAndrew Rist *************************************************************/ 21*b5da552cSAndrew Rist 22*b5da552cSAndrew Rist 23cdf0e10cSrcweir .text 24cdf0e10cSrcweir 25cdf0e10cSrcweir.align 1, 0x90 26cdf0e10cSrcweir.globl _privateSnippetExecutorGeneral 27cdf0e10cSrcweir_privateSnippetExecutorGeneral: 28cdf0e10cSrcweirLFBg: 29cdf0e10cSrcweir movl %esp,%ecx 30cdf0e10cSrcweir pushl %ebp # proper stack frame needed for exception handling 31cdf0e10cSrcweirLCFIg0: 32cdf0e10cSrcweir movl %esp,%ebp 33cdf0e10cSrcweirLCFIg1: 34cdf0e10cSrcweir subl $0x8,%esp # padding + 32bit returnValue 35cdf0e10cSrcweir pushl %esp # 32bit &returnValue 36cdf0e10cSrcweir pushl %ecx # 32bit pCallStack 37cdf0e10cSrcweir pushl %edx # 32bit nVtableOffset 38cdf0e10cSrcweir pushl %eax # 32bit nFunctionIndex 39cdf0e10cSrcweir call L_cpp_vtable_call$stub 40cdf0e10cSrcweir movl 16(%esp),%eax # 32bit returnValue 41cdf0e10cSrcweir leave 42cdf0e10cSrcweir ret 43cdf0e10cSrcweirLFEg: 44cdf0e10cSrcweir .long .-_privateSnippetExecutorGeneral 45cdf0e10cSrcweir 46cdf0e10cSrcweir.align 1, 0x90 47cdf0e10cSrcweir.globl _privateSnippetExecutorVoid 48cdf0e10cSrcweir_privateSnippetExecutorVoid: 49cdf0e10cSrcweirLFBv: 50cdf0e10cSrcweir movl %esp,%ecx 51cdf0e10cSrcweir pushl %ebp # proper stack frame needed for exception handling 52cdf0e10cSrcweirLCFIv0: 53cdf0e10cSrcweir movl %esp,%ebp 54cdf0e10cSrcweirLCFIv1: 55cdf0e10cSrcweir sub $8,%esp # padding 56cdf0e10cSrcweir pushl $0 # 32bit null pointer (returnValue not used) 57cdf0e10cSrcweir pushl %ecx # 32bit pCallStack 58cdf0e10cSrcweir pushl %edx # 32bit nVtableOffset 59cdf0e10cSrcweir pushl %eax # 32bit nFunctionIndex 60cdf0e10cSrcweir call L_cpp_vtable_call$stub 61cdf0e10cSrcweir leave 62cdf0e10cSrcweir ret 63cdf0e10cSrcweirLFEv: 64cdf0e10cSrcweir .long .-_privateSnippetExecutorVoid 65cdf0e10cSrcweir 66cdf0e10cSrcweir.align 1, 0x90 67cdf0e10cSrcweir.globl _privateSnippetExecutorHyper 68cdf0e10cSrcweir_privateSnippetExecutorHyper: 69cdf0e10cSrcweirLFBh: 70cdf0e10cSrcweir movl %esp,%ecx 71cdf0e10cSrcweir pushl %ebp # proper stack frame needed for exception handling 72cdf0e10cSrcweirLCFIh0: 73cdf0e10cSrcweir movl %esp,%ebp 74cdf0e10cSrcweirLCFIh1: 75cdf0e10cSrcweir subl $0x8,%esp # 64bit returnValue 76cdf0e10cSrcweir pushl %esp # 32bit &returnValue 77cdf0e10cSrcweir pushl %ecx # 32bit pCallStack 78cdf0e10cSrcweir pushl %edx # 32bit nVtableOffset 79cdf0e10cSrcweir pushl %eax # 32bit nFunctionIndex 80cdf0e10cSrcweir call L_cpp_vtable_call$stub 81cdf0e10cSrcweir movl 16(%esp),%eax # 64bit returnValue, lower half 82cdf0e10cSrcweir movl 20(%esp),%edx # 64bit returnValue, upper half 83cdf0e10cSrcweir leave 84cdf0e10cSrcweir ret 85cdf0e10cSrcweirLFEh: 86cdf0e10cSrcweir .long .-_privateSnippetExecutorHyper 87cdf0e10cSrcweir 88cdf0e10cSrcweir.align 1, 0x90 89cdf0e10cSrcweir.globl _privateSnippetExecutorFloat 90cdf0e10cSrcweir_privateSnippetExecutorFloat: 91cdf0e10cSrcweirLFBf: 92cdf0e10cSrcweir movl %esp,%ecx 93cdf0e10cSrcweir pushl %ebp # proper stack frame needed for exception handling 94cdf0e10cSrcweirLCFIf0: 95cdf0e10cSrcweir movl %esp,%ebp 96cdf0e10cSrcweirLCFIf1: 97cdf0e10cSrcweir subl $0x8,%esp # padding + 32bit returnValue 98cdf0e10cSrcweir pushl %esp # 32bit &returnValue 99cdf0e10cSrcweir pushl %ecx # 32bit pCallStack 100cdf0e10cSrcweir pushl %edx # 32bit nVtableOffset 101cdf0e10cSrcweir pushl %eax # 32bit nFunctionIndex 102cdf0e10cSrcweir call L_cpp_vtable_call$stub 103cdf0e10cSrcweir flds 16(%esp) # 32bit returnValue 104cdf0e10cSrcweir leave 105cdf0e10cSrcweir ret 106cdf0e10cSrcweirLFEf: 107cdf0e10cSrcweir .long .-_privateSnippetExecutorFloat 108cdf0e10cSrcweir 109cdf0e10cSrcweir.align 1, 0x90 110cdf0e10cSrcweir.globl _privateSnippetExecutorDouble 111cdf0e10cSrcweir_privateSnippetExecutorDouble: 112cdf0e10cSrcweirLFBd: 113cdf0e10cSrcweir movl %esp,%ecx 114cdf0e10cSrcweir pushl %ebp # proper stack frame needed for exception handling 115cdf0e10cSrcweirLCFId0: 116cdf0e10cSrcweir movl %esp,%ebp 117cdf0e10cSrcweirLCFId1: 118cdf0e10cSrcweir subl $0x8,%esp # 64bit returnValue 119cdf0e10cSrcweir pushl %esp # 32bit &returnValue 120cdf0e10cSrcweir pushl %ecx # 32bit pCallStack 121cdf0e10cSrcweir pushl %edx # 32bit nVtableOffset 122cdf0e10cSrcweir pushl %eax # 32bit nFunctionIndex 123cdf0e10cSrcweir call L_cpp_vtable_call$stub 124cdf0e10cSrcweir fldl 16(%esp) # 64bit returnValue 125cdf0e10cSrcweir leave 126cdf0e10cSrcweir ret 127cdf0e10cSrcweirLFEd: 128cdf0e10cSrcweir .long .-_privateSnippetExecutorDouble 129cdf0e10cSrcweir 130cdf0e10cSrcweir.align 1, 0x90 131cdf0e10cSrcweir.globl _privateSnippetExecutorClass 132cdf0e10cSrcweir_privateSnippetExecutorClass: 133cdf0e10cSrcweirLFBc: 134cdf0e10cSrcweir movl %esp,%ecx 135cdf0e10cSrcweir pushl %ebp # proper stack frame needed for exception handling 136cdf0e10cSrcweirLCFIc0: 137cdf0e10cSrcweir movl %esp,%ebp 138cdf0e10cSrcweirLCFIc1: 139cdf0e10cSrcweir subl $0x8,%esp # padding + 32bit returnValue 140cdf0e10cSrcweir pushl %esp # 32bit &returnValue 141cdf0e10cSrcweir pushl %ecx # 32bit pCallStack 142cdf0e10cSrcweir pushl %edx # 32bit nVtableOffset 143cdf0e10cSrcweir pushl %eax # 32bit nFunctionIndex 144cdf0e10cSrcweir call L_cpp_vtable_call$stub 145cdf0e10cSrcweir movl 16(%esp),%eax # 32bit returnValue 146cdf0e10cSrcweir leave 147cdf0e10cSrcweir ret $4 148cdf0e10cSrcweirLFEc: 149cdf0e10cSrcweir .long .-_privateSnippetExecutorClass 150cdf0e10cSrcweir 151cdf0e10cSrcweir .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support 152cdf0e10cSrcweirEH_frame1: 153cdf0e10cSrcweir .set L$set$frame1,LECIE1-LSCIE1 154cdf0e10cSrcweir .long L$set$frame1 # length 155cdf0e10cSrcweirLSCIE1: 156cdf0e10cSrcweir .long 0 # CIE_ID 157cdf0e10cSrcweir .byte 1 # version 158cdf0e10cSrcweir .ascii "zPR\0" # augmentation 159cdf0e10cSrcweir .byte 1 # code_alignment_factor (.uleb128 1) 160cdf0e10cSrcweir .byte 0x7c # data_alignment_factor (.sleb128 -4) 161cdf0e10cSrcweir .byte 8 # return_address_register 162cdf0e10cSrcweir .byte 0x6 # augmentation size 7: 163cdf0e10cSrcweir .byte 0x9b # ??? 164cdf0e10cSrcweir .long L___gxx_personality_v0$non_lazy_ptr-. 165cdf0e10cSrcweir .byte 0x10 166cdf0e10cSrcweir # initial_instructions: 167cdf0e10cSrcweir .byte 0x0C # DW_CFA_def_cfa %esp, 4 168cdf0e10cSrcweir .byte 5 169cdf0e10cSrcweir .byte 4 170cdf0e10cSrcweir .byte 0x88 # DW_CFA_offset ret, 1 171cdf0e10cSrcweir .byte 1 172cdf0e10cSrcweir .align 2 173cdf0e10cSrcweirLECIE1: 174cdf0e10cSrcweir .globl _privateSnippetExecutorGeneral.eh 175cdf0e10cSrcweir_privateSnippetExecutorGeneral.eh: 176cdf0e10cSrcweirLSFDEg: 177cdf0e10cSrcweir .set L$set$g1,LEFDEg-LASFDEg 178cdf0e10cSrcweir .long L$set$g1 # length 179cdf0e10cSrcweirLASFDEg: 180cdf0e10cSrcweir .long LASFDEg-EH_frame1 # CIE_pointer 181cdf0e10cSrcweir .long LFBg-. # initial_location 182cdf0e10cSrcweir .long LFEg-LFBg # address_range 183cdf0e10cSrcweir .byte 0 # augmentation size 0 184cdf0e10cSrcweir # instructions: 185cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 186cdf0e10cSrcweir .long LCFIg0-LFBg 187cdf0e10cSrcweir .byte 0x0E # DW_CFA_def_cfa_offset 8 188cdf0e10cSrcweir .byte 8 189cdf0e10cSrcweir .byte 0x84 # DW_CFA_offset %ebp, 2 190cdf0e10cSrcweir .byte 2 191cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 192cdf0e10cSrcweir .long LCFIg1-LCFIg0 193cdf0e10cSrcweir .byte 0x0D # DW_CFA_def_cfa_register %ebp 194cdf0e10cSrcweir .byte 4 195cdf0e10cSrcweir .align 2 196cdf0e10cSrcweirLEFDEg: 197cdf0e10cSrcweir .globl _privateSnippetExecutorVoid.eh 198cdf0e10cSrcweir_privateSnippetExecutorVoid.eh: 199cdf0e10cSrcweirLSFDEv: 200cdf0e10cSrcweir .set L$set$v1,LEFDEv-LASFDEv 201cdf0e10cSrcweir .long L$set$v1 # length 202cdf0e10cSrcweirLASFDEv: 203cdf0e10cSrcweir .long LASFDEv-EH_frame1 # CIE_pointer 204cdf0e10cSrcweir .long LFBv-. # initial_location 205cdf0e10cSrcweir .long LFEv-LFBv # address_range 206cdf0e10cSrcweir .byte 0 # augmentation size 0 207cdf0e10cSrcweir # instructions: 208cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 209cdf0e10cSrcweir .long LCFIv0-LFBv 210cdf0e10cSrcweir .byte 0x0E # DW_CFA_def_cfa_offset 8 211cdf0e10cSrcweir .byte 8 212cdf0e10cSrcweir .byte 0x84 # DW_CFA_offset %ebp, 2 213cdf0e10cSrcweir .byte 2 214cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 215cdf0e10cSrcweir .long LCFIv1-LCFIv0 216cdf0e10cSrcweir .byte 0x0D # DW_CFA_def_cfa_register %ebp 217cdf0e10cSrcweir .byte 4 218cdf0e10cSrcweir .align 2 219cdf0e10cSrcweirLEFDEv: 220cdf0e10cSrcweir .globl _privateSnippetExecutorHyper.eh 221cdf0e10cSrcweir_privateSnippetExecutorHyper.eh: 222cdf0e10cSrcweirLSFDEh: 223cdf0e10cSrcweir .set L$set$h1,LEFDEh-LASFDEh 224cdf0e10cSrcweir .long L$set$h1 # length 225cdf0e10cSrcweirLASFDEh: 226cdf0e10cSrcweir .long LASFDEh-EH_frame1 # CIE_pointer 227cdf0e10cSrcweir .long LFBh-. # initial_location 228cdf0e10cSrcweir .long LFEh-LFBh # address_range 229cdf0e10cSrcweir .byte 0 # augmentation size 0 230cdf0e10cSrcweir # instructions: 231cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 232cdf0e10cSrcweir .long LCFIh0-LFBh 233cdf0e10cSrcweir .byte 0x0E # DW_CFA_def_cfa_offset 8 234cdf0e10cSrcweir .byte 8 235cdf0e10cSrcweir .byte 0x84 # DW_CFA_offset %ebp, 2 236cdf0e10cSrcweir .byte 2 237cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 238cdf0e10cSrcweir .long LCFIh1-LCFIh0 239cdf0e10cSrcweir .byte 0x0D # DW_CFA_def_cfa_register %ebp 240cdf0e10cSrcweir .byte 4 241cdf0e10cSrcweir .align 2 242cdf0e10cSrcweirLEFDEh: 243cdf0e10cSrcweir .globl _privateSnippetExecutorFloat.eh 244cdf0e10cSrcweir_privateSnippetExecutorFloat.eh: 245cdf0e10cSrcweirLSFDEf: 246cdf0e10cSrcweir .set L$set$f1,LEFDEf-LASFDEf 247cdf0e10cSrcweir .long L$set$f1 # length 248cdf0e10cSrcweirLASFDEf: 249cdf0e10cSrcweir .long LASFDEf-EH_frame1 # CIE_pointer 250cdf0e10cSrcweir .long LFBf-. # initial_location 251cdf0e10cSrcweir .long LFEf-LFBf # address_range 252cdf0e10cSrcweir .byte 0 # augmentation size 0 253cdf0e10cSrcweir # instructions: 254cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 255cdf0e10cSrcweir .long LCFIf0-LFBf 256cdf0e10cSrcweir .byte 0x0E # DW_CFA_def_cfa_offset 8 257cdf0e10cSrcweir .byte 8 258cdf0e10cSrcweir .byte 0x84 # DW_CFA_offset %ebp, 2 259cdf0e10cSrcweir .byte 2 260cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 261cdf0e10cSrcweir .long LCFIf1-LCFIf0 262cdf0e10cSrcweir .byte 0x0D # DW_CFA_def_cfa_register %ebp 263cdf0e10cSrcweir .byte 4 264cdf0e10cSrcweir .align 2 265cdf0e10cSrcweirLEFDEf: 266cdf0e10cSrcweir .globl _privateSnippetExecutorDouble.eh 267cdf0e10cSrcweir_privateSnippetExecutorDouble.eh: 268cdf0e10cSrcweirLSFDEd: 269cdf0e10cSrcweir .set L$set$d1,LEFDEd-LASFDEd 270cdf0e10cSrcweir .long L$set$d1 # length 271cdf0e10cSrcweirLASFDEd: 272cdf0e10cSrcweir .long LASFDEd-EH_frame1 # CIE_pointer 273cdf0e10cSrcweir .long LFBd-. # initial_location 274cdf0e10cSrcweir .long LFEd-LFBd # address_range 275cdf0e10cSrcweir .byte 0 # augmentation size 0 276cdf0e10cSrcweir # instructions: 277cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 278cdf0e10cSrcweir .long LCFId0-LFBd 279cdf0e10cSrcweir .byte 0x0E # DW_CFA_def_cfa_offset 8 280cdf0e10cSrcweir .byte 8 281cdf0e10cSrcweir .byte 0x84 # DW_CFA_offset %ebp, 2 282cdf0e10cSrcweir .byte 2 283cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 284cdf0e10cSrcweir .long LCFId1-LCFId0 285cdf0e10cSrcweir .byte 0x0D # DW_CFA_def_cfa_register %ebp 286cdf0e10cSrcweir .byte 4 287cdf0e10cSrcweir .align 2 288cdf0e10cSrcweirLEFDEd: 289cdf0e10cSrcweir .globl _privateSnippetExecutorClass.eh 290cdf0e10cSrcweir_privateSnippetExecutorClass.eh: 291cdf0e10cSrcweirLSFDEc: 292cdf0e10cSrcweir .set L$set$c1,LEFDEc-LASFDEc 293cdf0e10cSrcweir .long L$set$c1 # length 294cdf0e10cSrcweirLASFDEc: 295cdf0e10cSrcweir .long LASFDEc-EH_frame1 # CIE_pointer 296cdf0e10cSrcweir .long LFBc-. # initial_location 297cdf0e10cSrcweir .long LFEc-LFBc # address_range 298cdf0e10cSrcweir .byte 0 # augmentation size 0 299cdf0e10cSrcweir # instructions: 300cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 301cdf0e10cSrcweir .long LCFIc0-LFBc 302cdf0e10cSrcweir .byte 0x0E # DW_CFA_def_cfa_offset 8 303cdf0e10cSrcweir .byte 8 304cdf0e10cSrcweir .byte 0x84 # DW_CFA_offset %ebp, 2 305cdf0e10cSrcweir .byte 2 306cdf0e10cSrcweir .byte 0x04 # DW_CFA_advance_loc4 307cdf0e10cSrcweir .long LCFIc1-LCFIc0 308cdf0e10cSrcweir .byte 0x0D # DW_CFA_def_cfa_register %ebp 309cdf0e10cSrcweir .byte 4 310cdf0e10cSrcweir .align 2 311cdf0e10cSrcweirLEFDEc: 312cdf0e10cSrcweir .section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5 313cdf0e10cSrcweirL_cpp_vtable_call$stub: 314cdf0e10cSrcweir .indirect_symbol _cpp_vtable_call 315cdf0e10cSrcweir hlt ; hlt ; hlt ; hlt ; hlt 316cdf0e10cSrcweir .section __IMPORT,__pointers,non_lazy_symbol_pointers 317cdf0e10cSrcweirL___gxx_personality_v0$non_lazy_ptr: 318cdf0e10cSrcweir .indirect_symbol ___gxx_personality_v0 319cdf0e10cSrcweir .long 0 320cdf0e10cSrcweir .constructor 321cdf0e10cSrcweir .destructor 322cdf0e10cSrcweir .align 1 323cdf0e10cSrcweir .subsections_via_symbols 324