Mercurial > mplayer.hg
view mp3lib/tabinit_MMX.c @ 11510:3638adcfdcbd
send quit command instead of key 'q'.
catch backspace key instead of ctrl key.
keycodes.h says CTRL and BS are the same.
this is not true for windows keycodes.
author | joey |
---|---|
date | Sun, 23 Nov 2003 16:59:57 +0000 |
parents | 1320f1b3229d |
children | 114f3d149324 |
line wrap: on
line source
/* * This code was taken from http://www.mpg123.org * See ChangeLog of mpg123-0.59s-pre.1 for detail * Applied to mplayer by Nick Kurshev <nickols_k@mail.ru> */ #include "../mangle.h" long __attribute__((aligned(8))) mp3lib_decwins [544]; #define real float extern real mp3lib_decwin[(512+32)]; // static long decwin [544]; static short intwinbase_MMX[] = { 0, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -3, -3, -4, -4, -5, -5, -6, -7, -7, -8, -9, -10, -11, -13, -14, -16, -17, -19, -21, -24, -26, -29, -31, -35, -38, -41, -45, -49, -53, -58, -63, -68, -73, -79, -85, -91, -97, -104, -111, -117, -125, -132, -139, -147, -154, -161, -169, -176, -183, -190, -196, -202, -208, -213, -218, -222, -225, -227, -228, -228, -227, -224, -221, -215, -208, -200, -189, -177, -163, -146, -127, -106, -83, -57, -29, 2, 36, 72, 111, 153, 197, 244, 294, 347, 401, 459, 519, 581, 645, 711, 779, 848, 919, 991, 1064, 1137, 1210, 1283, 1356, 1428, 1498, 1567, 1634, 1698, 1759, 1817, 1870, 1919, 1962, 2001, 2032, 2057, 2075, 2085, 2087, 2080, 2063, 2037, 2000, 1952, 1893, 1822, 1739, 1644, 1535, 1414, 1280, 1131, 970, 794, 605, 402, 185, -45, -288, -545, -814, -1095, -1388, -1692, -2006, -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788, -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, -7910, -8209, -8491, -8755, -8998, -9219, -9416, -9585, -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750, -9592, -9389, -9139, -8840, -8492, -8092, -7640, -7134, -6574, -5959, -5288, -4561, -3776, -2935, -2037, -1082, -70, 998, 2122, 3300, 4533, 5818, 7154, 8540, 9975, 11455, 12980, 14548, 16155, 17799, 19478, 21189, 22929, 24694, 26482, 28289, 30112, 31947,-26209,-24360, -22511,-20664,-18824,-16994,-15179,-13383,-11610, -9863, -8147, -6466, -4822, -3222, -1667, -162, 1289, 2684, 4019, 5290, 6494, 7629, 8692, 9679, 10590, 11420, 12169, 12835, 13415, 13908, 14313, 14630, 14856, 14992, 15038 }; static long 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 %2\n\t" "fsts %1(,%%ecx,4)\n\t" "fstps %1+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 %2\n\t" ".L03:\n\t" "addl %%esi,%%ecx\n\t" "addl %3,%%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 %3\n\t" "jmp .L00\n\t" ".L04:\n\t" ::"g"(intwinbase_MMX),"m"(mp3lib_decwin[0]),"m"(scaleval),"m"(intwinbase_step) :"memory","%ebx","%esi","%edi"); intwinbase_step=2; __asm __volatile( "xorl %%ecx,%%ecx\n\t" "xorl %%ebx,%%ebx\n\t" ".L05:\n\t" "cmpl $528,%%ecx\n\t" "jnc .L11\n\t" "movswl (%%edi),%%eax\n\t" "cmpl %0+444,%%edi\n\t" "jc .L06\n\t" "addl $60000,%%eax\n\t" ".L06:\n\t" "cltd\n\t" "imull %2\n\t" "shrdl $17,%%edx,%%eax\n\t" "cmpl $32767,%%eax\n\t" "movl $1055,%%edx\n\t" "jle .L07\n\t" "movl $32767,%%eax\n\t" "jmp .L08\n\t" ".L07:\n\t" "cmpl $-32767,%%eax\n\t" "jge .L08\n\t" "movl $-32767,%%eax\n\t" ".L08:\n\t" "cmpl $512,%%ecx\n\t" "jnc .L09\n\t" "subl %%ecx,%%edx\n\t" "movw %%ax,%1(,%%edx,2)\n\t" "movw %%ax,%1-32(,%%edx,2)\n\t" ".L09:\n\t" "testl $1,%%ecx\n\t" "jnz .L10\n\t" "negl %%eax\n\t" ".L10:\n\t" "movw %%ax,%1(,%%ecx,2)\n\t" "movw %%ax,%1+32(,%%ecx,2)\n\t" ".L11:\n\t" "leal -1(%%esi),%%edx\n\t" "and %%ebx,%%edx\n\t" "cmp $31,%%edx\n\t" "jnz .L12\n\t" "addl $-1023,%%ecx\n\t" "test %%esi,%%ebx\n\t" "jz .L12\n\t" "negl %2\n\t" ".L12:\n\t" "addl %%esi,%%ecx\n\t" "addl %3,%%edi\n\t" "incl %%ebx\n\t" "cmpl %0,%%edi\n\t" "jz .L13\n\t" "cmp $256,%%ebx\n\t" "jnz .L05\n\t" "negl %3\n\t" "jmp .L05\n\t" ".L13:\n\t" ::"g"(intwinbase_MMX),"m"(mp3lib_decwins[0]),"m"(scaleval),"m"(intwinbase_step) :"memory","%ebx","%esi","%edi"); }