1 .file "vacall-x86_64.c" 2 .text 3 .p2align 4,,15 4 .type callback_receiver, @function 5callback_receiver: 6.LFB2: 7 pushq %rbp 8.LCFI0: 9 movq %rsp, %rbp 10.LCFI1: 11 pushq %r13 12.LCFI2: 13 pushq %r12 14.LCFI3: 15 subq $192, %rsp 16.LCFI4: 17 movq %rcx, -48(%rbp) 18 leaq 16(%rbp), %rcx 19 movq %rdi, -72(%rbp) 20 movq %rsi, -64(%rbp) 21 movsd %xmm0, -144(%rbp) 22 movq %rcx, -184(%rbp) 23 movq $0, -176(%rbp) 24 movsd %xmm1, -136(%rbp) 25 movq %rdx, -56(%rbp) 26 movsd %xmm2, -128(%rbp) 27 leaq -208(%rbp), %rsi 28 movq %r8, -40(%rbp) 29 movsd %xmm3, -120(%rbp) 30 movq %r9, -32(%rbp) 31 movsd %xmm4, -112(%rbp) 32 movsd %xmm5, -104(%rbp) 33 movl $0, -208(%rbp) 34 movsd %xmm6, -96(%rbp) 35 movl $0, -168(%rbp) 36 movsd %xmm7, -88(%rbp) 37 movl $0, -80(%rbp) 38 movl $0, -152(%rbp) 39 movq 8(%r10), %rdi 40 call *(%r10) 41 movl -168(%rbp), %ecx 42 testl %ecx, %ecx 43 je .L41 44 cmpl $1, %ecx 45 je .L42 46 cmpl $2, %ecx 47 je .L42 48 cmpl $3, %ecx 49 .p2align 4,,5 50 je .L48 51 cmpl $4, %ecx 52 .p2align 4,,5 53 je .L49 54 cmpl $5, %ecx 55 .p2align 4,,5 56 je .L50 57 cmpl $6, %ecx 58 .p2align 4,,5 59 je .L51 60 cmpl $7, %ecx 61 .p2align 4,,5 62 je .L52 63 cmpl $8, %ecx 64 .p2align 4,,5 65 je .L46 66 cmpl $9, %ecx 67 .p2align 4,,5 68 je .L46 69 cmpl $10, %ecx 70 .p2align 4,,5 71 je .L46 72 cmpl $11, %ecx 73 .p2align 4,,5 74 je .L46 75 cmpl $12, %ecx 76 .p2align 4,,5 77 je .L53 78 cmpl $13, %ecx 79 .p2align 4,,5 80 je .L54 81 cmpl $14, %ecx 82 .p2align 4,,5 83 je .L46 84 cmpl $15, %ecx 85 .p2align 4,,5 86 jne .L41 87 testb $4, -207(%rbp) 88 .p2align 4,,2 89 je .L41 90 movq -160(%rbp), %rsi 91 leaq -1(%rsi), %rcx 92 cmpq $15, %rcx 93 ja .L41 94 movq -176(%rbp), %rcx 95 movq %rcx, %r12 96 movq %rcx, %r8 97 andl $7, %r8d 98 andq $-8, %r12 99 cmpq $8, %rsi 100 leaq (%rsi,%r8), %r11 101 ja .L35 102 cmpq $8, %r11 103 ja .L37 104 leal -1(,%r11,8), %ecx 105 movl $2, %esi 106 salq %cl, %rsi 107 leal 0(,%r8,8), %ecx 108 decq %rsi 109 andq (%r12), %rsi 110 movq %rsi, %rax 111 sarq %cl, %rax 112 .p2align 4,,7 113.L41: 114 addq $192, %rsp 115 popq %r12 116 popq %r13 117 leave 118 ret 119 .p2align 4,,7 120.L42: 121 movsbq -200(%rbp),%rax 122 addq $192, %rsp 123 popq %r12 124 popq %r13 125 leave 126 ret 127.L49: 128 movswq -200(%rbp),%rax 129 jmp .L41 130.L48: 131 movzbq -200(%rbp), %rax 132 jmp .L41 133.L46: 134 movq -200(%rbp), %rax 135 jmp .L41 136.L50: 137 movzwq -200(%rbp), %rax 138 jmp .L41 139.L51: 140 movslq -200(%rbp),%rax 141 jmp .L41 142.L52: 143 mov -200(%rbp), %eax 144 jmp .L41 145.L53: 146 movss -200(%rbp), %xmm0 147 jmp .L41 148.L54: 149 movlpd -200(%rbp), %xmm0 150 jmp .L41 151.L35: 152 cmpq $16, %r11 153 ja .L39 154 leal -65(,%r11,8), %ecx 155 movl $2, %esi 156 leal 0(,%r8,8), %r9d 157 movl $32, %edi 158 salq %cl, %rsi 159 leaq 0(,%r8,4), %rcx 160 movq (%r12), %r8 161 decq %rsi 162 andq 8(%r12), %rsi 163 subl %ecx, %edi 164 movl %r9d, %ecx 165 sarq %cl, %r8 166 movl %edi, %ecx 167 movq %r8, %rax 168 movq %rsi, %r11 169 movq %rsi, %rdx 170 salq %cl, %r11 171 salq %cl, %r11 172 movl %r9d, %ecx 173 orq %r11, %rax 174 sarq %cl, %rdx 175 jmp .L41 176.L37: 177 movq (%r12), %rdi 178 leal -65(,%r11,8), %esi 179 salq $3, %r8 180 movl %r8d, %ecx 181 movl $2, %r11d 182 sarq %cl, %rdi 183 movl %esi, %ecx 184 movl $64, %esi 185 salq %cl, %r11 186 subl %r8d, %esi 187 movq %rdi, %rax 188 decq %r11 189 andq 8(%r12), %r11 190 movl %esi, %ecx 191 salq %cl, %r11 192 orq %r11, %rax 193 jmp .L41 194.L39: 195 leaq 0(,%r8,8), %rcx 196 movq (%r12), %r13 197 movq 8(%r12), %r8 198 movl $64, %edi 199 subl %ecx, %edi 200 movl %ecx, %r9d 201 sarq %cl, %r13 202 movq %r8, %rsi 203 movl %edi, %ecx 204 salq %cl, %rsi 205 movq %r13, %rax 206 movl %r9d, %ecx 207 orq %rsi, %rax 208 leal -129(,%r11,8), %esi 209 sarq %cl, %r8 210 movl $2, %r9d 211 movq %r8, %rdx 212 movl %esi, %ecx 213 salq %cl, %r9 214 movl %edi, %ecx 215 leaq -1(%r9), %rsi 216 andq 16(%r12), %rsi 217 salq %cl, %rsi 218 orq %rsi, %rdx 219 jmp .L41 220.LFE2: 221 .size callback_receiver, .-callback_receiver 222 .p2align 4,,15 223.globl callback_get_receiver 224 .type callback_get_receiver, @function 225callback_get_receiver: 226.LFB3: 227 pushq %rbp 228.LCFI5: 229 leaq callback_receiver(%rip), %rax 230 movq %rsp, %rbp 231.LCFI6: 232 leave 233 ret 234.LFE3: 235 .size callback_get_receiver, .-callback_get_receiver 236 .section .eh_frame,"a",@progbits 237.Lframe1: 238 .long .LECIE1-.LSCIE1 239.LSCIE1: 240 .long 0x0 241 .byte 0x1 242 .string "zR" 243 .uleb128 0x1 244 .sleb128 -8 245 .byte 0x10 246 .uleb128 0x1 247 .byte 0x1b 248 .byte 0xc 249 .uleb128 0x7 250 .uleb128 0x8 251 .byte 0x90 252 .uleb128 0x1 253 .align 8 254.LECIE1: 255.LSFDE1: 256 .long .LEFDE1-.LASFDE1 257.LASFDE1: 258 .long .LASFDE1-.Lframe1 259 .long .LFB2-. 260 .long .LFE2-.LFB2 261 .uleb128 0x0 262 .byte 0x4 263 .long .LCFI0-.LFB2 264 .byte 0xe 265 .uleb128 0x10 266 .byte 0x86 267 .uleb128 0x2 268 .byte 0x4 269 .long .LCFI1-.LCFI0 270 .byte 0xd 271 .uleb128 0x6 272 .byte 0x4 273 .long .LCFI4-.LCFI1 274 .byte 0x8c 275 .uleb128 0x4 276 .byte 0x8d 277 .uleb128 0x3 278 .align 8 279.LEFDE1: 280.LSFDE3: 281 .long .LEFDE3-.LASFDE3 282.LASFDE3: 283 .long .LASFDE3-.Lframe1 284 .long .LFB3-. 285 .long .LFE3-.LFB3 286 .uleb128 0x0 287 .byte 0x4 288 .long .LCFI5-.LFB3 289 .byte 0xe 290 .uleb128 0x10 291 .byte 0x86 292 .uleb128 0x2 293 .byte 0x4 294 .long .LCFI6-.LCFI5 295 .byte 0xd 296 .uleb128 0x6 297 .align 8 298.LEFDE3: 299 .ident "GCC: (GNU) 4.0.2" 300 .section .note.GNU-stack,"",@progbits 301