File ffcall/avcall/avcall-x86_64.s from the latest check-in


	.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)"