summaryrefslogtreecommitdiff
path: root/ac3dec/downmix_i386.S
blob: 20f2e8c3714cb656ed65fdd4e94dc587f9f9387c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/* This is basicly gcc generated.
 * Only the floating point rounding mode loads and saves
 * are removed in the stream_sample_to_s16 functions.
 */                                                                            

#ifdef __i386__

	.file	"downmix.c"
	.version	"01.01"
gcc2_compiled.:
.text
	.align 4
.globl stream_sample_2ch_to_s16_i386
	.type	 stream_sample_2ch_to_s16_i386,@function
stream_sample_2ch_to_s16_i386:
	pushl %ebp
	movl %esp,%ebp
	subl $28,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%edx
	movl 12(%ebp),%ebx
	movl 16(%ebp),%ecx
	movl $255,%esi
	.p2align 4,,7
.L373:
	flds (%ebx)
	fistpl -8(%ebp)
	movl -8(%ebp),%eax
	movw %ax,(%edx)
	addl $2,%edx
	addl $4,%ebx
	flds (%ecx)
	fistpl -8(%ebp)
	movl -8(%ebp),%eax
	movw %ax,(%edx)
	addl $4,%ecx
	addl $2,%edx
	decl %esi
	jns .L373
	popl %ebx
	popl %esi
	popl %edi
	leave
	ret
.Lfe6:
	.size	 stream_sample_2ch_to_s16_i386,.Lfe6-stream_sample_2ch_to_s16_i386
.section	.rodata
	.align 4
.LC46:
	.long 0x3f350481
.text
	.align 4
.globl stream_sample_1ch_to_s16_i386
	.type	 stream_sample_1ch_to_s16_i386,@function
stream_sample_1ch_to_s16_i386:
	pushl %ebp
	movl %esp,%ebp
	subl $16,%esp
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%edx
	movl 12(%ebp),%ecx
	flds .LC46
	movl $255,%ebx
	.p2align 4,,7
.L379:
	flds (%ecx)
	fmul %st(1),%st
	fistpl -8(%ebp)
	movl -8(%ebp),%eax
	movw %ax,-2(%ebp)
	addl $4,%ecx
	flds -2(%ebp)
	fistpl -8(%ebp)
	movl -8(%ebp),%eax
	movw %ax,(%edx)
	addl $2,%edx
	movw %ax,(%edx)
	addl $2,%edx
	decl %ebx
	jns .L379
	fstp %st(0)
	popl %ebx
	popl %esi
	leave
	ret
.Lfe7:
	.size	 stream_sample_1ch_to_s16_i386,.Lfe7-stream_sample_1ch_to_s16_i386
	.ident	"GCC: (GNU) 2.95.3 19991030 (prerelease)"
#endif