Index: mp3lib/tabinit_MMX.c =================================================================== --- mp3lib/tabinit_MMX.c (版本 23339) +++ mp3lib/tabinit_MMX.c (工作副本) @@ -8,10 +8,6 @@ long __attribute__((aligned(8))) mp3lib_decwins [544]; -#define real float -extern real mp3lib_decwin[(512+32)]; -// static long decwin [544]; - static short attribute_used intwinbase_MMX[] = { 0, -1, -1, -1, -1, -1, -1, -2, @@ -49,59 +45,16 @@ 15038 }; -static long attribute_used intwindiv = 0x47800000; - void make_decode_tables_MMX(long scaleval) { long intwinbase_step; intwinbase_step=2; scaleval =- scaleval; - __asm __volatile( - "xorl %%ecx,%%ecx\n\t" - "xorl %%ebx,%%ebx\n\t" - "movl $32,%%esi\n\t" - "movl %0,%%edi\n\t" -".L00:\n\t" - "cmpl $528,%%ecx\n\t" - "jnc .L02\n\t" - "movswl (%%edi),%%eax\n\t" - "cmpl %0+444,%%edi\n\t" - "jc .L01\n\t" - "addl $60000,%%eax\n\t" -".L01:\n\t" - "pushl %%eax\n\t" - "fildl (%%esp)\n\t" - "fdivs "MANGLE(intwindiv)"\n\t" - "popl %%eax\n\t" - "fimull %1\n\t" - "fsts "MANGLE(mp3lib_decwin)"(,%%ecx,4)\n\t" - "fstps "MANGLE(mp3lib_decwin)"+64(,%%ecx,4)\n\t" -".L02:\n\t" - "leal -1(%%esi),%%edx\n\t" - "and %%ebx,%%edx\n\t" - "cmp $31,%%edx\n\t" - "jnz .L03\n\t" - "addl $-1023,%%ecx\n\t" - "test %%esi,%%ebx\n\t" - "jz .L03\n\t" - "negl %1\n\t" -".L03:\n\t" - "addl %%esi,%%ecx\n\t" - "addl %2,%%edi\n\t" - "incl %%ebx\n\t" - "cmpl %0,%%edi\n\t" - "jz .L04\n\t" - "cmp $256,%%ebx\n\t" - "jnz .L00\n\t" - "negl %2\n\t" - "jmp .L00\n\t" -".L04:\n\t" - ::"g"(intwinbase_MMX),"m"(scaleval),"m"(intwinbase_step) - :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); -intwinbase_step=2; __asm __volatile( "xorl %%ecx,%%ecx\n\t" "xorl %%ebx,%%ebx\n\t" + "movl %0, %%edi\n\t" + "movl $32, %%esi\n\t" ".L05:\n\t" "cmpl $528,%%ecx\n\t" "jnc .L11\n\t"