📄 dct64_mmx.c
字号:
/** 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"#define real float /* ugly - but only way */void dct64_MMX(real *a,real *b,real *c){ char tmp[256]; __asm __volatile(" movl %2,%%eax\n\t"/* Phase 1*/" flds (%%eax)\n\t"" leal 128+%3,%%edx\n\t"" fadds 124(%%eax)\n\t"" movl %0,%%esi\n\t"" fstps (%%edx)\n\t"" movl %1,%%edi\n\t"" flds 4(%%eax)\n\t"" movl $"MANGLE(costab_mmx)",%%ebx\n\t"" fadds 120(%%eax)\n\t"" orl %%ecx,%%ecx\n\t"" fstps 4(%%edx)\n\t"" flds (%%eax)\n\t"" leal %3,%%ecx\n\t"" fsubs 124(%%eax)\n\t"" fmuls (%%ebx)\n\t"" fstps 124(%%edx)\n\t"" flds 4(%%eax)\n\t"" fsubs 120(%%eax)\n\t"" fmuls 4(%%ebx)\n\t"" fstps 120(%%edx)\n\t"" flds 8(%%eax)\n\t"" fadds 116(%%eax)\n\t"" fstps 8(%%edx)\n\t"" flds 12(%%eax)\n\t"" fadds 112(%%eax)\n\t"" fstps 12(%%edx)\n\t"" flds 8(%%eax)\n\t"" fsubs 116(%%eax)\n\t"" fmuls 8(%%ebx)\n\t"" fstps 116(%%edx)\n\t"" flds 12(%%eax)\n\t"" fsubs 112(%%eax)\n\t"" fmuls 12(%%ebx)\n\t"" fstps 112(%%edx)\n\t"" flds 16(%%eax)\n\t"" fadds 108(%%eax)\n\t"" fstps 16(%%edx)\n\t"" flds 20(%%eax)\n\t"" fadds 104(%%eax)\n\t"" fstps 20(%%edx)\n\t"" flds 16(%%eax)\n\t"" fsubs 108(%%eax)\n\t"" fmuls 16(%%ebx)\n\t"" fstps 108(%%edx)\n\t"" flds 20(%%eax)\n\t"" fsubs 104(%%eax)\n\t"" fmuls 20(%%ebx)\n\t"" fstps 104(%%edx)\n\t"" flds 24(%%eax)\n\t"" fadds 100(%%eax)\n\t"" fstps 24(%%edx)\n\t"" flds 28(%%eax)\n\t"" fadds 96(%%eax)\n\t"" fstps 28(%%edx)\n\t"" flds 24(%%eax)\n\t"" fsubs 100(%%eax)\n\t"" fmuls 24(%%ebx)\n\t"" fstps 100(%%edx)\n\t"" flds 28(%%eax)\n\t"" fsubs 96(%%eax)\n\t"" fmuls 28(%%ebx)\n\t"" fstps 96(%%edx)\n\t"" flds 32(%%eax)\n\t"" fadds 92(%%eax)\n\t"" fstps 32(%%edx)\n\t"" flds 36(%%eax)\n\t"" fadds 88(%%eax)\n\t"" fstps 36(%%edx)\n\t"" flds 32(%%eax)\n\t"" fsubs 92(%%eax)\n\t"" fmuls 32(%%ebx)\n\t"" fstps 92(%%edx)\n\t"" flds 36(%%eax)\n\t"" fsubs 88(%%eax)\n\t"" fmuls 36(%%ebx)\n\t"" fstps 88(%%edx)\n\t"" flds 40(%%eax)\n\t"" fadds 84(%%eax)\n\t"" fstps 40(%%edx)\n\t"" flds 44(%%eax)\n\t"" fadds 80(%%eax)\n\t"" fstps 44(%%edx)\n\t"" flds 40(%%eax)\n\t"" fsubs 84(%%eax)\n\t"" fmuls 40(%%ebx)\n\t"" fstps 84(%%edx)\n\t"" flds 44(%%eax)\n\t"" fsubs 80(%%eax)\n\t"" fmuls 44(%%ebx)\n\t"" fstps 80(%%edx)\n\t"" flds 48(%%eax)\n\t"" fadds 76(%%eax)\n\t"" fstps 48(%%edx)\n\t"" flds 52(%%eax)\n\t"" fadds 72(%%eax)\n\t"" fstps 52(%%edx)\n\t"" flds 48(%%eax)\n\t"" fsubs 76(%%eax)\n\t"" fmuls 48(%%ebx)\n\t"" fstps 76(%%edx)\n\t"" flds 52(%%eax)\n\t"" fsubs 72(%%eax)\n\t"" fmuls 52(%%ebx)\n\t"" fstps 72(%%edx)\n\t"" flds 56(%%eax)\n\t"" fadds 68(%%eax)\n\t"" fstps 56(%%edx)\n\t"" flds 60(%%eax)\n\t"" fadds 64(%%eax)\n\t"" fstps 60(%%edx)\n\t"" flds 56(%%eax)\n\t"" fsubs 68(%%eax)\n\t"" fmuls 56(%%ebx)\n\t"" fstps 68(%%edx)\n\t"" flds 60(%%eax)\n\t"" fsubs 64(%%eax)\n\t"" fmuls 60(%%ebx)\n\t"" fstps 64(%%edx)\n\t"/* Phase 2*/" flds (%%edx)\n\t"" fadds 60(%%edx)\n\t"" fstps (%%ecx)\n\t"" flds 4(%%edx)\n\t"" fadds 56(%%edx)\n\t"" fstps 4(%%ecx)\n\t"" flds (%%edx)\n\t"" fsubs 60(%%edx)\n\t"" fmuls 64(%%ebx)\n\t"" fstps 60(%%ecx)\n\t"" flds 4(%%edx)\n\t"" fsubs 56(%%edx)\n\t"" fmuls 68(%%ebx)\n\t"" fstps 56(%%ecx)\n\t"" flds 8(%%edx)\n\t"" fadds 52(%%edx)\n\t"" fstps 8(%%ecx)\n\t"" flds 12(%%edx)\n\t"" fadds 48(%%edx)\n\t"" fstps 12(%%ecx)\n\t"" flds 8(%%edx)\n\t"" fsubs 52(%%edx)\n\t"" fmuls 72(%%ebx)\n\t"" fstps 52(%%ecx)\n\t"" flds 12(%%edx)\n\t"" fsubs 48(%%edx)\n\t"" fmuls 76(%%ebx)\n\t"" fstps 48(%%ecx)\n\t"" flds 16(%%edx)\n\t"" fadds 44(%%edx)\n\t"" fstps 16(%%ecx)\n\t"" flds 20(%%edx)\n\t"" fadds 40(%%edx)\n\t"" fstps 20(%%ecx)\n\t"" flds 16(%%edx)\n\t"" fsubs 44(%%edx)\n\t"" fmuls 80(%%ebx)\n\t"" fstps 44(%%ecx)\n\t"" flds 20(%%edx)\n\t"" fsubs 40(%%edx)\n\t"" fmuls 84(%%ebx)\n\t"" fstps 40(%%ecx)\n\t"" flds 24(%%edx)\n\t"" fadds 36(%%edx)\n\t"" fstps 24(%%ecx)\n\t"" flds 28(%%edx)\n\t"" fadds 32(%%edx)\n\t"" fstps 28(%%ecx)\n\t"" flds 24(%%edx)\n\t"" fsubs 36(%%edx)\n\t"" fmuls 88(%%ebx)\n\t"" fstps 36(%%ecx)\n\t"" flds 28(%%edx)\n\t"" fsubs 32(%%edx)\n\t"" fmuls 92(%%ebx)\n\t"" fstps 32(%%ecx)\n\t"/* Phase 3*/" flds 64(%%edx)\n\t"" fadds 124(%%edx)\n\t"" fstps 64(%%ecx)\n\t"" flds 68(%%edx)\n\t"" fadds 120(%%edx)\n\t"" fstps 68(%%ecx)\n\t"" flds 124(%%edx)\n\t"" fsubs 64(%%edx)\n\t"" fmuls 64(%%ebx)\n\t"" fstps 124(%%ecx)\n\t"" flds 120(%%edx)\n\t"" fsubs 68(%%edx)\n\t"" fmuls 68(%%ebx)\n\t"" fstps 120(%%ecx)\n\t"" flds 72(%%edx)\n\t"" fadds 116(%%edx)\n\t"" fstps 72(%%ecx)\n\t"" flds 76(%%edx)\n\t"" fadds 112(%%edx)\n\t"" fstps 76(%%ecx)\n\t"" flds 116(%%edx)\n\t"" fsubs 72(%%edx)\n\t"" fmuls 72(%%ebx)\n\t"" fstps 116(%%ecx)\n\t"" flds 112(%%edx)\n\t"" fsubs 76(%%edx)\n\t"" fmuls 76(%%ebx)\n\t"" fstps 112(%%ecx)\n\t"" flds 80(%%edx)\n\t"" fadds 108(%%edx)\n\t"" fstps 80(%%ecx)\n\t"" flds 84(%%edx)\n\t"" fadds 104(%%edx)\n\t"" fstps 84(%%ecx)\n\t"" flds 108(%%edx)\n\t"" fsubs 80(%%edx)\n\t"" fmuls 80(%%ebx)\n\t"" fstps 108(%%ecx)\n\t"" flds 104(%%edx)\n\t"" fsubs 84(%%edx)\n\t"" fmuls 84(%%ebx)\n\t"" fstps 104(%%ecx)\n\t"" flds 88(%%edx)\n\t"" fadds 100(%%edx)\n\t"" fstps 88(%%ecx)\n\t"" flds 92(%%edx)\n\t"" fadds 96(%%edx)\n\t"" fstps 92(%%ecx)\n\t"" flds 100(%%edx)\n\t"" fsubs 88(%%edx)\n\t"" fmuls 88(%%ebx)\n\t"" fstps 100(%%ecx)\n\t"" flds 96(%%edx)\n\t"" fsubs 92(%%edx)\n\t"" fmuls 92(%%ebx)\n\t"" fstps 96(%%ecx)\n\t"/* Phase 4*/" flds (%%ecx)\n\t"" fadds 28(%%ecx)\n\t"" fstps (%%edx)\n\t"" flds (%%ecx)\n\t"" fsubs 28(%%ecx)\n\t"" fmuls 96(%%ebx)\n\t"" fstps 28(%%edx)\n\t"" flds 4(%%ecx)\n\t"" fadds 24(%%ecx)\n\t"" fstps 4(%%edx)\n\t"" flds 4(%%ecx)\n\t"" fsubs 24(%%ecx)\n\t"" fmuls 100(%%ebx)\n\t"" fstps 24(%%edx)\n\t"" flds 8(%%ecx)\n\t"" fadds 20(%%ecx)\n\t"" fstps 8(%%edx)\n\t"" flds 8(%%ecx)\n\t"" fsubs 20(%%ecx)\n\t"" fmuls 104(%%ebx)\n\t"" fstps 20(%%edx)\n\t"" flds 12(%%ecx)\n\t"" fadds 16(%%ecx)\n\t"" fstps 12(%%edx)\n\t"" flds 12(%%ecx)\n\t"" fsubs 16(%%ecx)\n\t"" fmuls 108(%%ebx)\n\t"" fstps 16(%%edx)\n\t"" flds 32(%%ecx)\n\t"" fadds 60(%%ecx)\n\t"" fstps 32(%%edx)\n\t"" flds 60(%%ecx)\n\t"" fsubs 32(%%ecx)\n\t"" fmuls 96(%%ebx)\n\t"" fstps 60(%%edx)\n\t"" flds 36(%%ecx)\n\t"" fadds 56(%%ecx)\n\t"" fstps 36(%%edx)\n\t"" flds 56(%%ecx)\n\t"" fsubs 36(%%ecx)\n\t"" fmuls 100(%%ebx)\n\t"" fstps 56(%%edx)\n\t"" flds 40(%%ecx)\n\t"" fadds 52(%%ecx)\n\t"" fstps 40(%%edx)\n\t"" flds 52(%%ecx)\n\t"" fsubs 40(%%ecx)\n\t"" fmuls 104(%%ebx)\n\t"" fstps 52(%%edx)\n\t"" flds 44(%%ecx)\n\t"" fadds 48(%%ecx)\n\t"" fstps 44(%%edx)\n\t"" flds 48(%%ecx)\n\t"" fsubs 44(%%ecx)\n\t"" fmuls 108(%%ebx)\n\t"" fstps 48(%%edx)\n\t"" flds 64(%%ecx)\n\t"" fadds 92(%%ecx)\n\t"" fstps 64(%%edx)\n\t"" flds 64(%%ecx)\n\t"" fsubs 92(%%ecx)\n\t"" fmuls 96(%%ebx)\n\t"" fstps 92(%%edx)\n\t"" flds 68(%%ecx)\n\t"" fadds 88(%%ecx)\n\t"" fstps 68(%%edx)\n\t"" flds 68(%%ecx)\n\t"" fsubs 88(%%ecx)\n\t"" fmuls 100(%%ebx)\n\t"" fstps 88(%%edx)\n\t"" flds 72(%%ecx)\n\t"" fadds 84(%%ecx)\n\t"" fstps 72(%%edx)\n\t"" flds 72(%%ecx)\n\t"" fsubs 84(%%ecx)\n\t"" fmuls 104(%%ebx)\n\t"" fstps 84(%%edx)\n\t"" flds 76(%%ecx)\n\t"" fadds 80(%%ecx)\n\t"" fstps 76(%%edx)\n\t"" flds 76(%%ecx)\n\t"" fsubs 80(%%ecx)\n\t"" fmuls 108(%%ebx)\n\t"" fstps 80(%%edx)\n\t"" flds 96(%%ecx)\n\t"" fadds 124(%%ecx)\n\t"" fstps 96(%%edx)\n\t"" flds 124(%%ecx)\n\t"" fsubs 96(%%ecx)\n\t"" fmuls 96(%%ebx)\n\t"" fstps 124(%%edx)\n\t"" flds 100(%%ecx)\n\t"" fadds 120(%%ecx)\n\t"" fstps 100(%%edx)\n\t"" flds 120(%%ecx)\n\t"" fsubs 100(%%ecx)\n\t"" fmuls 100(%%ebx)\n\t"" fstps 120(%%edx)\n\t"" flds 104(%%ecx)\n\t"" fadds 116(%%ecx)\n\t"" fstps 104(%%edx)\n\t"" flds 116(%%ecx)\n\t"" fsubs 104(%%ecx)\n\t"" fmuls 104(%%ebx)\n\t"" fstps 116(%%edx)\n\t"" flds 108(%%ecx)\n\t"" fadds 112(%%ecx)\n\t"" fstps 108(%%edx)\n\t"" flds 112(%%ecx)\n\t"" fsubs 108(%%ecx)\n\t"" fmuls 108(%%ebx)\n\t"" fstps 112(%%edx)\n\t"" flds (%%edx)\n\t"" fadds 12(%%edx)\n\t"" fstps (%%ecx)\n\t"" flds (%%edx)\n\t"" fsubs 12(%%edx)\n\t"" fmuls 112(%%ebx)\n\t"" fstps 12(%%ecx)\n\t"" flds 4(%%edx)\n\t"" fadds 8(%%edx)\n\t"" fstps 4(%%ecx)\n\t"" flds 4(%%edx)\n\t"" fsubs 8(%%edx)\n\t"" fmuls 116(%%ebx)\n\t"" fstps 8(%%ecx)\n\t"" flds 16(%%edx)\n\t"" fadds 28(%%edx)\n\t"" fstps 16(%%ecx)\n\t"" flds 28(%%edx)\n\t"" fsubs 16(%%edx)\n\t"" fmuls 112(%%ebx)\n\t"" fstps 28(%%ecx)\n\t"" flds 20(%%edx)\n\t"" fadds 24(%%edx)\n\t"" fstps 20(%%ecx)\n\t"" flds 24(%%edx)\n\t"" fsubs 20(%%edx)\n\t"" fmuls 116(%%ebx)\n\t"" fstps 24(%%ecx)\n\t"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -