avcall-x86_64.s
上传用户:shenzhenrh
上传日期:2013-05-12
资源大小:2904k
文件大小:6k
- .file "avcall-x86_64.c"
- .text
- .p2align 4,,15
- .globl __builtin_avcall
- .type __builtin_avcall,@function
- __builtin_avcall:
- .LFB1:
- pushq %r12
- .LCFI0:
- xorl %r11d, %r11d
- pushq %rbp
- .LCFI1:
- pushq %rbx
- .LCFI2:
- movq 104(%rdi), %rax
- movq 40(%rdi), %r10
- subq $2048, %rsp
- movq %rdi, %rbx
- movq %rsp, %rbp
- subq %rdi, %r10
- subq %rdi, %rax
- subq $176, %r10
- subq $112, %rax
- shrq $3, %r10
- movq %rax, %r12
- movslq %r10d,%r10
- shrq $3, %r12
- cmpq %r10, %r11
- jge .L113
- .p2align 4,,7
- .L6:
- movq 176(%rbx,%r11,8), %rax
- movq %rax, (%rbp,%r11,8)
- incq %r11
- cmpq %r10, %r11
- jl .L6
- .L113:
- movl 24(%rbx), %eax
- movq 56(%rbx), %rdi
- movq 64(%rbx), %rsi
- movq 72(%rbx), %rdx
- movq 80(%rbx), %rcx
- movq 88(%rbx), %r8
- cmpl $13, %eax
- movq 96(%rbx), %r9
- je .L119
- cmpl $14, %eax
- je .L120
- cmpl $7, %r12d
- xorpd %xmm15, %xmm15
- jle .L44
- movlpd 168(%rbx), %xmm15
- .L44:
- cmpl $6, %r12d
- xorpd %xmm14, %xmm14
- jle .L46
- movlpd 160(%rbx), %xmm14
- .L46:
- cmpl $5, %r12d
- xorpd %xmm13, %xmm13
- jle .L48
- movlpd 152(%rbx), %xmm13
- .L48:
- cmpl $4, %r12d
- xorpd %xmm12, %xmm12
- jle .L50
- movlpd 144(%rbx), %xmm12
- .L50:
- cmpl $3, %r12d
- xorpd %xmm11, %xmm11
- jle .L52
- movlpd 136(%rbx), %xmm11
- .L52:
- cmpl $2, %r12d
- xorpd %xmm10, %xmm10
- jle .L54
- movlpd 128(%rbx), %xmm10
- .L54:
- cmpl $1, %r12d
- xorpd %xmm9, %xmm9
- jle .L56
- movlpd 120(%rbx), %xmm9
- .L56:
- testl %r12d, %r12d
- xorpd %xmm8, %xmm8
- jle .L58
- movlpd 112(%rbx), %xmm8
- .L58:
- movsd %xmm15, %xmm7
- movsd %xmm14, %xmm6
- movsd %xmm13, %xmm5
- movsd %xmm12, %xmm4
- movsd %xmm11, %xmm3
- movsd %xmm10, %xmm2
- movsd %xmm9, %xmm1
- movsd %xmm8, %xmm0
- movl $8, %eax
- call *(%rbx)
- movq %rax, %r11
- movl 24(%rbx), %eax
- cmpl $1, %eax
- je .L24
- testl %eax, %eax
- je .L115
- cmpl $2, %eax
- je .L118
- cmpl $3, %eax
- je .L118
- cmpl $4, %eax
- je .L118
- cmpl $5, %eax
- je .L117
- cmpl $6, %eax
- je .L117
- cmpl $7, %eax
- je .L116
- cmpl $8, %eax
- je .L116
- cmpl $9, %eax
- je .L115
- cmpl $10, %eax
- je .L115
- cmpl $11, %eax
- je .L115
- cmpl $12, %eax
- je .L115
- cmpl $15, %eax
- je .L115
- cmpl $16, %eax
- je .L121
- .p2align 4,,7
- .L24:
- addq $2048, %rsp
- xorl %eax, %eax
- popq %rbx
- popq %rbp
- popq %r12
- ret
- .L121:
- movl 8(%rbx), %eax
- testl $1, %eax
- je .L88
- movq 32(%rbx), %rax
- cmpq $1, %rax
- je .L122
- cmpq $2, %rax
- je .L123
- cmpq $4, %rax
- je .L124
- cmpq $8, %rax
- je .L125
- addq $7, %rax
- movq %rax, %rbp
- shrq $3, %rbp
- decl %ebp
- js .L24
- movq 16(%rbx), %rbx
- .L100:
- movslq %ebp,%r10
- decl %ebp
- movq (%r11,%r10,8), %rax
- movq %rax, (%rbx,%r10,8)
- jns .L100
- jmp .L24
- .L125:
- movq 16(%rbx), %r10
- movq (%r11), %rax
- movq %rax, (%r10)
- jmp .L24
- .L124:
- movq 16(%rbx), %r10
- movl (%r11), %eax
- movl %eax, (%r10)
- jmp .L24
- .L123:
- movzwl (%r11), %eax
- movq 16(%rbx), %r10
- movw %ax, (%r10)
- jmp .L24
- .L122:
- movzbl (%r11), %eax
- movq 16(%rbx), %r10
- movb %al, (%r10)
- jmp .L24
- .p2align 4,,7
- .L88:
- testl $512, %eax
- je .L24
- movq 32(%rbx), %rax
- cmpq $1, %rax
- je .L118
- cmpq $2, %rax
- je .L117
- cmpq $4, %rax
- je .L116
- cmpq $8, %rax
- je .L115
- cmpq $16, %rax
- jne .L24
- movq 16(%rbx), %rax
- movq %r11, (%rax)
- movq %rdx, 8(%rax)
- jmp .L24
- .p2align 4,,7
- .L115:
- movq 16(%rbx), %rax
- movq %r11, (%rax)
- jmp .L24
- .L116:
- movq 16(%rbx), %rax
- movl %r11d, (%rax)
- jmp .L24
- .L117:
- movq 16(%rbx), %rax
- movw %r11w, (%rax)
- jmp .L24
- .L118:
- movq 16(%rbx), %rax
- movb %r11b, (%rax)
- jmp .L24
- .L120:
- cmpl $7, %r12d
- xorpd %xmm15, %xmm15
- jle .L27
- movlpd 168(%rbx), %xmm15
- .L27:
- cmpl $6, %r12d
- xorpd %xmm14, %xmm14
- jle .L29
- movlpd 160(%rbx), %xmm14
- .L29:
- cmpl $5, %r12d
- xorpd %xmm13, %xmm13
- jle .L31
- movlpd 152(%rbx), %xmm13
- .L31:
- cmpl $4, %r12d
- xorpd %xmm12, %xmm12
- jle .L33
- movlpd 144(%rbx), %xmm12
- .L33:
- cmpl $3, %r12d
- xorpd %xmm11, %xmm11
- jle .L35
- movlpd 136(%rbx), %xmm11
- .L35:
- cmpl $2, %r12d
- xorpd %xmm10, %xmm10
- jle .L37
- movlpd 128(%rbx), %xmm10
- .L37:
- cmpl $1, %r12d
- xorpd %xmm9, %xmm9
- jle .L39
- movlpd 120(%rbx), %xmm9
- .L39:
- testl %r12d, %r12d
- xorpd %xmm8, %xmm8
- jle .L41
- movlpd 112(%rbx), %xmm8
- .L41:
- movl $8, %eax
- movsd %xmm15, %xmm7
- movsd %xmm14, %xmm6
- movsd %xmm13, %xmm5
- movsd %xmm12, %xmm4
- movsd %xmm11, %xmm3
- movsd %xmm10, %xmm2
- movsd %xmm9, %xmm1
- movsd %xmm8, %xmm0
- call *(%rbx)
- movq 16(%rbx), %rax
- movsd %xmm0, (%rax)
- jmp .L24
- .L119:
- cmpl $7, %r12d
- xorpd %xmm15, %xmm15
- jle .L9
- movlpd 168(%rbx), %xmm15
- .L9:
- cmpl $6, %r12d
- xorpd %xmm14, %xmm14
- jle .L11
- movlpd 160(%rbx), %xmm14
- .L11:
- cmpl $5, %r12d
- xorpd %xmm13, %xmm13
- jle .L13
- movlpd 152(%rbx), %xmm13
- .L13:
- cmpl $4, %r12d
- xorpd %xmm12, %xmm12
- jle .L15
- movlpd 144(%rbx), %xmm12
- .L15:
- cmpl $3, %r12d
- xorpd %xmm11, %xmm11
- jle .L17
- movlpd 136(%rbx), %xmm11
- .L17:
- cmpl $2, %r12d
- xorpd %xmm10, %xmm10
- jle .L19
- movlpd 128(%rbx), %xmm10
- .L19:
- cmpl $1, %r12d
- xorpd %xmm9, %xmm9
- jle .L21
- movlpd 120(%rbx), %xmm9
- .L21:
- testl %r12d, %r12d
- xorpd %xmm8, %xmm8
- jle .L23
- movlpd 112(%rbx), %xmm8
- .L23:
- movl $8, %eax
- movsd %xmm15, %xmm7
- movsd %xmm14, %xmm6
- movsd %xmm13, %xmm5
- movsd %xmm12, %xmm4
- movsd %xmm11, %xmm3
- movsd %xmm10, %xmm2
- movsd %xmm9, %xmm1
- movsd %xmm8, %xmm0
- call *(%rbx)
- movq 16(%rbx), %rax
- movss %xmm0, (%rax)
- jmp .L24
- .LFE1:
- .Lfe1:
- .size __builtin_avcall,.Lfe1-__builtin_avcall
- .section .eh_frame,"aw",@progbits
- .Lframe1:
- .long .LECIE1-.LSCIE1
- .LSCIE1:
- .long 0x0
- .byte 0x1
- .string ""
- .uleb128 0x1
- .sleb128 -8
- .byte 0x10
- .byte 0xc
- .uleb128 0x7
- .uleb128 0x8
- .byte 0x90
- .uleb128 0x1
- .align 8
- .LECIE1:
- .LSFDE1:
- .long .LEFDE1-.LASFDE1
- .LASFDE1:
- .long .LASFDE1-.Lframe1
- .quad .LFB1
- .quad .LFE1-.LFB1
- .byte 0x4
- .long .LCFI0-.LFB1
- .byte 0xe
- .uleb128 0x10
- .byte 0x4
- .long .LCFI1-.LCFI0
- .byte 0xe
- .uleb128 0x18
- .byte 0x4
- .long .LCFI2-.LCFI1
- .byte 0xe
- .uleb128 0x20
- .byte 0x83
- .uleb128 0x4
- .byte 0x86
- .uleb128 0x3
- .byte 0x8c
- .uleb128 0x2
- .align 8
- .LEFDE1:
- .ident "GCC: (GNU) 3.2.2 (SuSE Linux)"