1 .text 2 .align 2 3 .globl privateSnippetExecutor 4 .type privateSnippetExecutor, @function 5 privateSnippetExecutor: 6 .LFB3: 7 pushq %rbp 8 .LCFI0: 9 movq %rsp, %rbp 10 .LCFI1: 11 subq $160, %rsp 12 .LCFI2: 13 movq %r10, -152(%rbp) # Save (nVtableOffset << 32) + nFunctionIndex 14 15 movq %rdi, -112(%rbp) # Save GP registers 16 movq %rsi, -104(%rbp) 17 movq %rdx, -96(%rbp) 18 movq %rcx, -88(%rbp) 19 movq %r8 , -80(%rbp) 20 movq %r9 , -72(%rbp) 21 22 movsd %xmm0, -64(%rbp) # Save FP registers 23 movsd %xmm1, -56(%rbp) 24 movsd %xmm2, -48(%rbp) 25 movsd %xmm3, -40(%rbp) 26 movsd %xmm4, -32(%rbp) 27 movsd %xmm5, -24(%rbp) 28 movsd %xmm6, -16(%rbp) 29 movsd %xmm7, -8(%rbp) 30 31 leaq -144(%rbp), %r9 # 6th param: sal_uInt64 * pRegisterReturn 32 leaq 16(%rbp), %r8 # 5rd param: void ** ovrflw 33 leaq -64(%rbp), %rcx # 4th param: void ** fpreg 34 leaq -112(%rbp), %rdx # 3rd param: void ** gpreg 35 movl -148(%rbp), %esi # 2nd param: sal_int32 nVtableOffset 36 movl -152(%rbp), %edi # 1st param: sal_int32 nFunctionIndex 37 38 call cpp_vtable_call 39 40 cmp $10, %rax # typelib_TypeClass_FLOAT 41 je .Lfloat 42 cmp $11, %rax # typelib_TypeClass_DOUBLE 43 je .Lfloat 44 45 movq -144(%rbp), %rax # Return value (int case) 46 jmp .Lfinish 47 .Lfloat: 48 movlpd -144(%rbp), %xmm0 # Return value (float/double case) 49 50 .Lfinish: 51 leave 52 ret 53 .LFE3: 54 .size privateSnippetExecutor, .-privateSnippetExecutor 55 .section .eh_frame,"a",@progbits 56 .Lframe1: 57 .long .LECIE1-.LSCIE1 58 .LSCIE1: 59 .long 0x0 60 .byte 0x1 61 .string "zR" 62 .uleb128 0x1 63 .sleb128 -8 64 .byte 0x10 65 .uleb128 0x1 66 .byte 0x1b 67 .byte 0xc 68 .uleb128 0x7 69 .uleb128 0x8 70 .byte 0x90 71 .uleb128 0x1 72 .align 8 73 .LECIE1: 74 .LSFDE1: 75 .long .LEFDE1-.LASFDE1 76 .LASFDE1: 77 .long .LASFDE1-.Lframe1 78 .long .LFB3-. 79 .long .LFE3-.LFB3 80 .uleb128 0x0 81 .byte 0x4 82 .long .LCFI0-.LFB3 83 .byte 0xe 84 .uleb128 0x10 85 .byte 0x86 86 .uleb128 0x2 87 .byte 0x4 88 .long .LCFI1-.LCFI0 89 .byte 0xd 90 .uleb128 0x6 91 .align 8 92 .LEFDE1: 93 .section .note.GNU-stack,"",@progbits 94