Mercurial > mplayer.hg
view mp3lib/dct64_MMX.c @ 18558:4928dd61f136
Fix potential integer overflows in memory allocation.
Patch by Rich and me
author | rtogni |
---|---|
date | Sun, 04 Jun 2006 22:41:27 +0000 |
parents | e7a129082fda |
children | 1b739c2dc613 |
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" #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" " flds 32(%%edx)\n\t" " fadds 44(%%edx)\n\t" " fstps 32(%%ecx)\n\t" " flds 32(%%edx)\n\t" " fsubs 44(%%edx)\n\t" " fmuls 112(%%ebx)\n\t" " fstps 44(%%ecx)\n\t" " flds 36(%%edx)\n\t" " fadds 40(%%edx)\n\t" " fstps 36(%%ecx)\n\t" " flds 36(%%edx)\n\t" " fsubs 40(%%edx)\n\t" " fmuls 116(%%ebx)\n\t" " fstps 40(%%ecx)\n\t" " flds 48(%%edx)\n\t" " fadds 60(%%edx)\n\t" " fstps 48(%%ecx)\n\t" " flds 60(%%edx)\n\t" " fsubs 48(%%edx)\n\t" " fmuls 112(%%ebx)\n\t" " fstps 60(%%ecx)\n\t" " flds 52(%%edx)\n\t" " fadds 56(%%edx)\n\t" " fstps 52(%%ecx)\n\t" " flds 56(%%edx)\n\t" " fsubs 52(%%edx)\n\t" " fmuls 116(%%ebx)\n\t" " fstps 56(%%ecx)\n\t" " flds 64(%%edx)\n\t" " fadds 76(%%edx)\n\t" " fstps 64(%%ecx)\n\t" " flds 64(%%edx)\n\t" " fsubs 76(%%edx)\n\t" " fmuls 112(%%ebx)\n\t" " fstps 76(%%ecx)\n\t" " flds 68(%%edx)\n\t" " fadds 72(%%edx)\n\t" " fstps 68(%%ecx)\n\t" " flds 68(%%edx)\n\t" " fsubs 72(%%edx)\n\t" " fmuls 116(%%ebx)\n\t" " fstps 72(%%ecx)\n\t" " flds 80(%%edx)\n\t" " fadds 92(%%edx)\n\t" " fstps 80(%%ecx)\n\t" " flds 92(%%edx)\n\t" " fsubs 80(%%edx)\n\t" " fmuls 112(%%ebx)\n\t" " fstps 92(%%ecx)\n\t" " flds 84(%%edx)\n\t" " fadds 88(%%edx)\n\t" " fstps 84(%%ecx)\n\t" " flds 88(%%edx)\n\t" " fsubs 84(%%edx)\n\t" " fmuls 116(%%ebx)\n\t" " fstps 88(%%ecx)\n\t" " flds 96(%%edx)\n\t" " fadds 108(%%edx)\n\t" " fstps 96(%%ecx)\n\t" " flds 96(%%edx)\n\t" " fsubs 108(%%edx)\n\t" " fmuls 112(%%ebx)\n\t" " fstps 108(%%ecx)\n\t" " flds 100(%%edx)\n\t" " fadds 104(%%edx)\n\t" " fstps 100(%%ecx)\n\t" " flds 100(%%edx)\n\t" " fsubs 104(%%edx)\n\t" " fmuls 116(%%ebx)\n\t" " fstps 104(%%ecx)\n\t" " flds 112(%%edx)\n\t" " fadds 124(%%edx)\n\t" " fstps 112(%%ecx)\n\t" " flds 124(%%edx)\n\t" " fsubs 112(%%edx)\n\t" " fmuls 112(%%ebx)\n\t" " fstps 124(%%ecx)\n\t" " flds 116(%%edx)\n\t" " fadds 120(%%edx)\n\t" " fstps 116(%%ecx)\n\t" " flds 120(%%edx)\n\t" " fsubs 116(%%edx)\n\t" " fmuls 116(%%ebx)\n\t" " fstps 120(%%ecx)\n\t" /* Phase 5*/ " flds 32(%%ecx)\n\t" " fadds 36(%%ecx)\n\t" " fstps 32(%%edx)\n\t" " flds 32(%%ecx)\n\t" " fsubs 36(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fstps 36(%%edx)\n\t" " flds 44(%%ecx)\n\t" " fsubs 40(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fsts 44(%%edx)\n\t" " fadds 40(%%ecx)\n\t" " fadds 44(%%ecx)\n\t" " fstps 40(%%edx)\n\t" " flds 48(%%ecx)\n\t" " fsubs 52(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " flds 60(%%ecx)\n\t" " fsubs 56(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fld %%st(0)\n\t" " fadds 56(%%ecx)\n\t" " fadds 60(%%ecx)\n\t" " fld %%st(0)\n\t" " fadds 48(%%ecx)\n\t" " fadds 52(%%ecx)\n\t" " fstps 48(%%edx)\n\t" " fadd %%st(2)\n\t" " fstps 56(%%edx)\n\t" " fsts 60(%%edx)\n\t" " faddp %%st(1)\n\t" " fstps 52(%%edx)\n\t" " flds 64(%%ecx)\n\t" " fadds 68(%%ecx)\n\t" " fstps 64(%%edx)\n\t" " flds 64(%%ecx)\n\t" " fsubs 68(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fstps 68(%%edx)\n\t" " flds 76(%%ecx)\n\t" " fsubs 72(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fsts 76(%%edx)\n\t" " fadds 72(%%ecx)\n\t" " fadds 76(%%ecx)\n\t" " fstps 72(%%edx)\n\t" " flds 92(%%ecx)\n\t" " fsubs 88(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fsts 92(%%edx)\n\t" " fadds 92(%%ecx)\n\t" " fadds 88(%%ecx)\n\t" " fld %%st(0)\n\t" " fadds 80(%%ecx)\n\t" " fadds 84(%%ecx)\n\t" " fstps 80(%%edx)\n\t" " flds 80(%%ecx)\n\t" " fsubs 84(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fadd %%st(0), %%st(1)\n\t" " fadds 92(%%edx)\n\t" " fstps 84(%%edx)\n\t" " fstps 88(%%edx)\n\t" " flds 96(%%ecx)\n\t" " fadds 100(%%ecx)\n\t" " fstps 96(%%edx)\n\t" " flds 96(%%ecx)\n\t" " fsubs 100(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fstps 100(%%edx)\n\t" " flds 108(%%ecx)\n\t" " fsubs 104(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fsts 108(%%edx)\n\t" " fadds 104(%%ecx)\n\t" " fadds 108(%%ecx)\n\t" " fstps 104(%%edx)\n\t" " flds 124(%%ecx)\n\t" " fsubs 120(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fsts 124(%%edx)\n\t" " fadds 120(%%ecx)\n\t" " fadds 124(%%ecx)\n\t" " fld %%st(0)\n\t" " fadds 112(%%ecx)\n\t" " fadds 116(%%ecx)\n\t" " fstps 112(%%edx)\n\t" " flds 112(%%ecx)\n\t" " fsubs 116(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fadd %%st(0),%%st(1)\n\t" " fadds 124(%%edx)\n\t" " fstps 116(%%edx)\n\t" " fstps 120(%%edx)\n\t" " jnz .L01\n\t" /* Phase 6*/ " flds (%%ecx)\n\t" " fadds 4(%%ecx)\n\t" " fstps 1024(%%esi)\n\t" " flds (%%ecx)\n\t" " fsubs 4(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fsts (%%esi)\n\t" " fstps (%%edi)\n\t" " flds 12(%%ecx)\n\t" " fsubs 8(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fsts 512(%%edi)\n\t" " fadds 12(%%ecx)\n\t" " fadds 8(%%ecx)\n\t" " fstps 512(%%esi)\n\t" " flds 16(%%ecx)\n\t" " fsubs 20(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " flds 28(%%ecx)\n\t" " fsubs 24(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fsts 768(%%edi)\n\t" " fld %%st(0)\n\t" " fadds 24(%%ecx)\n\t" " fadds 28(%%ecx)\n\t" " fld %%st(0)\n\t" " fadds 16(%%ecx)\n\t" " fadds 20(%%ecx)\n\t" " fstps 768(%%esi)\n\t" " fadd %%st(2)\n\t" " fstps 256(%%esi)\n\t" " faddp %%st(1)\n\t" " fstps 256(%%edi)\n\t" /* Phase 7*/ " flds 32(%%edx)\n\t" " fadds 48(%%edx)\n\t" " fstps 896(%%esi)\n\t" " flds 48(%%edx)\n\t" " fadds 40(%%edx)\n\t" " fstps 640(%%esi)\n\t" " flds 40(%%edx)\n\t" " fadds 56(%%edx)\n\t" " fstps 384(%%esi)\n\t" " flds 56(%%edx)\n\t" " fadds 36(%%edx)\n\t" " fstps 128(%%esi)\n\t" " flds 36(%%edx)\n\t" " fadds 52(%%edx)\n\t" " fstps 128(%%edi)\n\t" " flds 52(%%edx)\n\t" " fadds 44(%%edx)\n\t" " fstps 384(%%edi)\n\t" " flds 60(%%edx)\n\t" " fsts 896(%%edi)\n\t" " fadds 44(%%edx)\n\t" " fstps 640(%%edi)\n\t" " flds 96(%%edx)\n\t" " fadds 112(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 64(%%edx)\n\t" " fstps 960(%%esi)\n\t" " fadds 80(%%edx)\n\t" " fstps 832(%%esi)\n\t" " flds 112(%%edx)\n\t" " fadds 104(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 80(%%edx)\n\t" " fstps 704(%%esi)\n\t" " fadds 72(%%edx)\n\t" " fstps 576(%%esi)\n\t" " flds 104(%%edx)\n\t" " fadds 120(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 72(%%edx)\n\t" " fstps 448(%%esi)\n\t" " fadds 88(%%edx)\n\t" " fstps 320(%%esi)\n\t" " flds 120(%%edx)\n\t" " fadds 100(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 88(%%edx)\n\t" " fstps 192(%%esi)\n\t" " fadds 68(%%edx)\n\t" " fstps 64(%%esi)\n\t" " flds 100(%%edx)\n\t" " fadds 116(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 68(%%edx)\n\t" " fstps 64(%%edi)\n\t" " fadds 84(%%edx)\n\t" " fstps 192(%%edi)\n\t" " flds 116(%%edx)\n\t" " fadds 108(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 84(%%edx)\n\t" " fstps 320(%%edi)\n\t" " fadds 76(%%edx)\n\t" " fstps 448(%%edi)\n\t" " flds 108(%%edx)\n\t" " fadds 124(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 76(%%edx)\n\t" " fstps 576(%%edi)\n\t" " fadds 92(%%edx)\n\t" " fstps 704(%%edi)\n\t" " flds 124(%%edx)\n\t" " fsts 960(%%edi)\n\t" " fadds 92(%%edx)\n\t" " fstps 832(%%edi)\n\t" " jmp .L_bye\n\t" ".L01:\n\t" /* Phase 8*/ " flds (%%ecx)\n\t" " fadds 4(%%ecx)\n\t" " fistp 512(%%esi)\n\t" " flds (%%ecx)\n\t" " fsubs 4(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fistp (%%esi)\n\t" " flds 12(%%ecx)\n\t" " fsubs 8(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fist 256(%%edi)\n\t" " fadds 12(%%ecx)\n\t" " fadds 8(%%ecx)\n\t" " fistp 256(%%esi)\n\t" " flds 16(%%ecx)\n\t" " fsubs 20(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " flds 28(%%ecx)\n\t" " fsubs 24(%%ecx)\n\t" " fmuls 120(%%ebx)\n\t" " fist 384(%%edi)\n\t" " fld %%st(0)\n\t" " fadds 24(%%ecx)\n\t" " fadds 28(%%ecx)\n\t" " fld %%st(0)\n\t" " fadds 16(%%ecx)\n\t" " fadds 20(%%ecx)\n\t" " fistp 384(%%esi)\n\t" " fadd %%st(2)\n\t" " fistp 128(%%esi)\n\t" " faddp %%st(1)\n\t" " fistp 128(%%edi)\n\t" /* Phase 9*/ " flds 32(%%edx)\n\t" " fadds 48(%%edx)\n\t" " fistp 448(%%esi)\n\t" " flds 48(%%edx)\n\t" " fadds 40(%%edx)\n\t" " fistp 320(%%esi)\n\t" " flds 40(%%edx)\n\t" " fadds 56(%%edx)\n\t" " fistp 192(%%esi)\n\t" " flds 56(%%edx)\n\t" " fadds 36(%%edx)\n\t" " fistp 64(%%esi)\n\t" " flds 36(%%edx)\n\t" " fadds 52(%%edx)\n\t" " fistp 64(%%edi)\n\t" " flds 52(%%edx)\n\t" " fadds 44(%%edx)\n\t" " fistp 192(%%edi)\n\t" " flds 60(%%edx)\n\t" " fist 448(%%edi)\n\t" " fadds 44(%%edx)\n\t" " fistp 320(%%edi)\n\t" " flds 96(%%edx)\n\t" " fadds 112(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 64(%%edx)\n\t" " fistp 480(%%esi)\n\t" " fadds 80(%%edx)\n\t" " fistp 416(%%esi)\n\t" " flds 112(%%edx)\n\t" " fadds 104(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 80(%%edx)\n\t" " fistp 352(%%esi)\n\t" " fadds 72(%%edx)\n\t" " fistp 288(%%esi)\n\t" " flds 104(%%edx)\n\t" " fadds 120(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 72(%%edx)\n\t" " fistp 224(%%esi)\n\t" " fadds 88(%%edx)\n\t" " fistp 160(%%esi)\n\t" " flds 120(%%edx)\n\t" " fadds 100(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 88(%%edx)\n\t" " fistp 96(%%esi)\n\t" " fadds 68(%%edx)\n\t" " fistp 32(%%esi)\n\t" " flds 100(%%edx)\n\t" " fadds 116(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 68(%%edx)\n\t" " fistp 32(%%edi)\n\t" " fadds 84(%%edx)\n\t" " fistp 96(%%edi)\n\t" " flds 116(%%edx)\n\t" " fadds 108(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 84(%%edx)\n\t" " fistp 160(%%edi)\n\t" " fadds 76(%%edx)\n\t" " fistp 224(%%edi)\n\t" " flds 108(%%edx)\n\t" " fadds 124(%%edx)\n\t" " fld %%st(0)\n\t" " fadds 76(%%edx)\n\t" " fistp 288(%%edi)\n\t" " fadds 92(%%edx)\n\t" " fistp 352(%%edi)\n\t" " flds 124(%%edx)\n\t" " fist 480(%%edi)\n\t" " fadds 92(%%edx)\n\t" " fistp 416(%%edi)\n\t" " movsw\n\t" ".L_bye:" : :"m"(a),"m"(b),"m"(c),"m"(tmp[0]) :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); }