]> git.sesse.net Git - vlc/blobdiff - plugins/downmix/ac3_downmix_3dn.c
*Reversed my previous configuration change.
[vlc] / plugins / downmix / ac3_downmix_3dn.c
index d02c1d5054e95808d166d76ea66d42ffb36e57d1..b9c37bab09ce9332decc531e2571e1c20995de35 100644 (file)
@@ -2,7 +2,7 @@
  * ac3_downmix_3dn.c: accelerated 3D Now! ac3 downmix functions
  *****************************************************************************
  * Copyright (C) 1999, 2000, 2001 VideoLAN
- * $Id: ac3_downmix_3dn.c,v 1.3 2001/07/01 08:49:09 gbazin Exp $
+ * $Id: ac3_downmix_3dn.c,v 1.9 2001/12/30 07:09:54 sam Exp $
  *
  * Authors: Renaud Dartus <reno@videolan.org>
  *
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  *****************************************************************************/
 
-#define MODULE_NAME downmix3dn
-#include "modules_inner.h"
-
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include "defs.h"
-
-#include "config.h"
-#include "common.h"
-#include "threads.h"
-#include "mtime.h"
-#include "tests.h"
+#include <videolan/vlc.h>
 
 #include "ac3_downmix.h"
 
-void sqrt2_3dn (void) __asm__ ("sqrt2_3dn");
-void sqrt2_3dn (void)
-{
-    __asm__ (".float 0f0.7071068");
-}
+const float sqrt2_3dn __asm__ ("sqrt2_3dn") = 0.7071068;
 
 void _M( downmix_3f_2r_to_2ch ) (float * samples, dm_par_t * dm_par)
 {
     __asm__ __volatile__ (
+    ".align 16\n"
     "pushl %%ebx\n"
     "movl  $128,  %%ebx\n"            /* loop counter */
 
@@ -58,6 +46,7 @@ void _M( downmix_3f_2r_to_2ch ) (float * samples, dm_par_t * dm_par)
     "movd    8(%%ecx), %%mm7\n"        /* slev */
     "punpckldq %%mm7, %%mm7\n"        /* slev | slev */
 
+    ".align 16\n"
 ".loop:\n"
     "movq    (%%eax),     %%mm0\n"   /* left */
     "movq    2048(%%eax), %%mm1\n"   /* right */
@@ -90,6 +79,7 @@ void _M( downmix_3f_2r_to_2ch ) (float * samples, dm_par_t * dm_par)
 void _M( downmix_2f_2r_to_2ch ) (float *samples, dm_par_t * dm_par)
 {
     __asm__ __volatile__ (
+    ".align 16\n"
     "pushl %%ebx\n"
     "movl  $128, %%ebx\n"       /* loop counter */
 
@@ -99,6 +89,7 @@ void _M( downmix_2f_2r_to_2ch ) (float *samples, dm_par_t * dm_par)
     "movd    8(%%ecx), %%mm7\n"    /* slev */
     "punpckldq %%mm7, %%mm7\n"    /* slev | slev */
 
+    ".align 16\n"
 ".loop3:\n"
     "movq   (%%eax), %%mm0\n"       /* left */
     "movq   1024(%%eax), %%mm1\n"   /* right */
@@ -127,7 +118,7 @@ void _M( downmix_2f_2r_to_2ch ) (float *samples, dm_par_t * dm_par)
 void _M( downmix_3f_1r_to_2ch ) (float *samples, dm_par_t * dm_par)
 {
     __asm__ __volatile__ (
-
+    ".align 16\n"
     "pushl    %%ebx\n"
     "movl    $128, %%ebx\n"            /* loop counter */
 
@@ -140,6 +131,7 @@ void _M( downmix_3f_1r_to_2ch ) (float *samples, dm_par_t * dm_par)
     "movd    8(%%ecx), %%mm7\n"        /* slev */
     "punpckldq %%mm7, %%mm7\n"      /* slev | slev */
 
+    ".align 16\n"
 ".loop4:\n"
     "movq    (%%eax), %%mm0\n"       /* left */
     "movq    2048(%%eax), %%mm1\n"   /* right */
@@ -170,6 +162,7 @@ void _M( downmix_3f_1r_to_2ch ) (float *samples, dm_par_t * dm_par)
 void _M( downmix_2f_1r_to_2ch ) (float *samples, dm_par_t * dm_par)
 {
     __asm__ __volatile__ (
+    ".align 16\n"
     "pushl    %%ebx\n"
     "movl    $128, %%ebx\n"            /* loop counter */
 
@@ -179,6 +172,7 @@ void _M( downmix_2f_1r_to_2ch ) (float *samples, dm_par_t * dm_par)
     "movd    8(%%ecx), %%mm7\n"        /* slev */
     "punpckldq %%mm7, %%mm7\n"      /* slev | slev */
 
+    ".align 16\n"
 ".loop5:\n"
     "movq    (%%eax), %%mm0\n"       /* left */
     "movq    1024(%%eax), %%mm1\n"   /* right */
@@ -205,6 +199,7 @@ void _M( downmix_2f_1r_to_2ch ) (float *samples, dm_par_t * dm_par)
 void _M( downmix_3f_0r_to_2ch ) (float *samples, dm_par_t * dm_par)
 {
     __asm__ __volatile__ (
+    ".align 16\n"
     "pushl    %%ebx\n"
     "movl    $128, %%ebx\n"            /* loop counter */
 
@@ -214,6 +209,7 @@ void _M( downmix_3f_0r_to_2ch ) (float *samples, dm_par_t * dm_par)
     "movd    4(%%ecx), %%mm6\n"        /* clev */
     "punpckldq %%mm6, %%mm6\n"      /* clev | clev */
 
+    ".align 16\n"
 ".loop6:\n"
     "movq    (%%eax), %%mm0\n"       /*left */
     "movq    2048(%%eax), %%mm1\n"   /* right */
@@ -240,6 +236,7 @@ void _M( downmix_3f_0r_to_2ch ) (float *samples, dm_par_t * dm_par)
 void _M( stream_sample_1ch_to_s16 ) (s16 *s16_samples, float *left)
 {
     __asm__ __volatile__ (
+    ".align 16\n"
     "pushl %%ebx\n"
     "pushl %%edx\n"
 
@@ -248,6 +245,7 @@ void _M( stream_sample_1ch_to_s16 ) (s16 *s16_samples, float *left)
     "punpckldq %%mm7, %%mm7\n"   /* sqrt2 | sqrt2 */
     "movl $128, %%ebx\n"
 
+    ".align 16\n"
 ".loop2:\n"
     "movq (%%ecx), %%mm0\n"        /* c1 | c0 */
     "pfmul   %%mm7, %%mm0\n"
@@ -274,9 +272,11 @@ void _M( stream_sample_2ch_to_s16 ) (s16 *s16_samples, float *left, float *right
 {
 
     __asm__ __volatile__ (
+    ".align 16\n"
     "pushl %%ebx\n"
     "movl $128, %%ebx\n"
 
+    ".align 16\n"
 ".loop1:\n"
     "movq  (%%ecx), %%mm0\n"    /* l1 | l0 */
     "movq  (%%edx), %%mm1\n"    /* r1 | r0 */