comparison mp3lib/decode_MMX.c @ 4608:b9c19fe73850

Fix according to strange bugreport
author nick
date Sat, 09 Feb 2002 14:34:08 +0000
parents 2935211e4f9b
children d4367189b2ff
comparison
equal deleted inserted replaced
4607:da09673aea00 4608:b9c19fe73850
58 "movl %4,%%edx\n\t" 58 "movl %4,%%edx\n\t"
59 "leal (%%edi,%%ecx,2),%%edi\n\t" 59 "leal (%%edi,%%ecx,2),%%edi\n\t"
60 "decl %%ecx\n\t" 60 "decl %%ecx\n\t"
61 "movl %3,%%esi\n\t" 61 "movl %3,%%esi\n\t"
62 "movl (%%edx),%%eax\n\t" 62 "movl (%%edx),%%eax\n\t"
63 "jecxz .L1\n\t" 63 "jecxz .L01\n\t"
64 "decl %%eax\n\t" 64 "decl %%eax\n\t"
65 "andl %%ebx,%%eax\n\t" 65 "andl %%ebx,%%eax\n\t"
66 "leal 1088(%%esi),%%esi\n\t" 66 "leal 1088(%%esi),%%esi\n\t"
67 "movl %%eax,(%%edx)\n\t" 67 "movl %%eax,(%%edx)\n\t"
68 ".L1:\n\t" 68 ".L01:\n\t"
69 "leal (%%esi,%%eax,2),%%edx\n\t" 69 "leal (%%esi,%%eax,2),%%edx\n\t"
70 "movl %%eax,%5\n\t" 70 "movl %%eax,%5\n\t"
71 "incl %%eax\n\t" 71 "incl %%eax\n\t"
72 "pushl %0\n\t" 72 "pushl %0\n\t"
73 "andl %%ebx,%%eax\n\t" 73 "andl %%ebx,%%eax\n\t"
74 "leal 544(%%esi,%%eax,2),%%ecx\n\t" 74 "leal 544(%%esi,%%eax,2),%%ecx\n\t"
75 "incl %%ebx\n\t" 75 "incl %%ebx\n\t"
76 "testl $1, %%eax\n\t" 76 "testl $1, %%eax\n\t"
77 "jnz .L2\n\t" 77 "jnz .L02\n\t"
78 "xchgl %%edx,%%ecx\n\t" 78 "xchgl %%edx,%%ecx\n\t"
79 "incl %5\n\t" 79 "incl %5\n\t"
80 "leal 544(%%esi),%%esi\n\t" 80 "leal 544(%%esi),%%esi\n\t"
81 ".L2:\n\t" 81 ".L02:\n\t"
82 "emms\n\t" 82 "emms\n\t"
83 "pushl %%edx\n\t" 83 "pushl %%edx\n\t"
84 "pushl %%ecx\n\t" 84 "pushl %%ecx\n\t"
85 "call *"MANGLE(dct64_MMX_func)"\n\t" 85 "call *"MANGLE(dct64_MMX_func)"\n\t"
86 "leal 1(%%ebx), %%ecx\n\t" 86 "leal 1(%%ebx), %%ecx\n\t"
87 "subl %5,%%ebx\n\t" 87 "subl %5,%%ebx\n\t"
88 "pushl %%ecx\n\t" 88 "pushl %%ecx\n\t"
89 "leal "MANGLE(decwins)"(%%ebx,%%ebx,1), %%edx\n\t" 89 "leal "MANGLE(decwins)"(%%ebx,%%ebx,1), %%edx\n\t"
90 "shrl $1, %%ecx\n\t" 90 "shrl $1, %%ecx\n\t"
91 ".align 16\n\t" 91 ".align 16\n\t"
92 ".L3:\n\t" 92 ".L03:\n\t"
93 "movq (%%edx),%%mm0\n\t" 93 "movq (%%edx),%%mm0\n\t"
94 "movq 64(%%edx),%%mm4\n\t" 94 "movq 64(%%edx),%%mm4\n\t"
95 "pmaddwd (%%esi),%%mm0\n\t" 95 "pmaddwd (%%esi),%%mm0\n\t"
96 "pmaddwd 32(%%esi),%%mm4\n\t" 96 "pmaddwd 32(%%esi),%%mm4\n\t"
97 "movq 8(%%edx),%%mm1\n\t" 97 "movq 8(%%edx),%%mm1\n\t"
133 "leal 64(%%esi),%%esi\n\t" 133 "leal 64(%%esi),%%esi\n\t"
134 "leal 128(%%edx),%%edx\n\t" 134 "leal 128(%%edx),%%edx\n\t"
135 "leal 8(%%edi),%%edi\n\t" 135 "leal 8(%%edi),%%edi\n\t"
136 136
137 "decl %%ecx\n\t" 137 "decl %%ecx\n\t"
138 "jnz .L3\n\t" 138 "jnz .L03\n\t"
139 139
140 "popl %%ecx\n\t" 140 "popl %%ecx\n\t"
141 "andl $1, %%ecx\n\t" 141 "andl $1, %%ecx\n\t"
142 "jecxz .next_loop\n\t" 142 "jecxz .next_loop\n\t"
143 143
165 165
166 ".next_loop:\n\t" 166 ".next_loop:\n\t"
167 "subl $64,%%esi\n\t" 167 "subl $64,%%esi\n\t"
168 "movl $7,%%ecx\n\t" 168 "movl $7,%%ecx\n\t"
169 ".align 16\n\t" 169 ".align 16\n\t"
170 ".L4:\n\t" 170 ".L04:\n\t"
171 "movq (%%edx),%%mm0\n\t" 171 "movq (%%edx),%%mm0\n\t"
172 "movq 64(%%edx),%%mm4\n\t" 172 "movq 64(%%edx),%%mm4\n\t"
173 "pmaddwd (%%esi),%%mm0\n\t" 173 "pmaddwd (%%esi),%%mm0\n\t"
174 "pmaddwd -32(%%esi),%%mm4\n\t" 174 "pmaddwd -32(%%esi),%%mm4\n\t"
175 "movq 8(%%edx),%%mm1\n\t" 175 "movq 8(%%edx),%%mm1\n\t"
214 214
215 "subl $64,%%esi\n\t" 215 "subl $64,%%esi\n\t"
216 "addl $128,%%edx\n\t" 216 "addl $128,%%edx\n\t"
217 "leal 8(%%edi),%%edi\n\t" 217 "leal 8(%%edi),%%edi\n\t"
218 "decl %%ecx\n\t" 218 "decl %%ecx\n\t"
219 "jnz .L4\n\t" 219 "jnz .L04\n\t"
220 220
221 "movq (%%edx),%%mm0\n\t" 221 "movq (%%edx),%%mm0\n\t"
222 "pmaddwd (%%esi),%%mm0\n\t" 222 "pmaddwd (%%esi),%%mm0\n\t"
223 "movq 8(%%edx),%%mm1\n\t" 223 "movq 8(%%edx),%%mm1\n\t"
224 "pmaddwd 8(%%esi),%%mm1\n\t" 224 "pmaddwd 8(%%esi),%%mm1\n\t"