Commit 1dafba77 authored by Gildas Bazin's avatar Gildas Bazin

- Portablility fix: We now control the name to be used in the assembler
    code for a C function or variable.
    GCC for Win32 normally prepends an underscore to the name of a
    C function or variable, and the inline assembler code was using the
    name without the underscore so we had undefined symbols in some
    modules.
- Reenabled all the accelerated modules on Win32.
parent 9db3558c
This diff is collapsed.
...@@ -155,16 +155,8 @@ PLUGINS="${PLUGINS}" ...@@ -155,16 +155,8 @@ PLUGINS="${PLUGINS}"
dnl dnl
dnl Accelerated modules dnl Accelerated modules
dnl dnl
case x$host_os in MMX_MODULES="yuvmmx idctmmx motionmmx"
xmingw32msvc) MMXEXT_MODULES="idctmmxext motionmmxext imdct3dn imdctsse downmix3dn downmixsse"
MMX_MODULES="idctmmx motionmmx"
MMXEXT_MODULES="idctmmxext motionmmxext imdct3dn"
;;
*)
MMX_MODULES="yuvmmx idctmmx motionmmx"
MMXEXT_MODULES="idctmmxext motionmmxext imdct3dn imdctsse downmix3dn downmixsse"
;;
esac
AC_MSG_CHECKING([if \$CC groks MMX inline assembly]) AC_MSG_CHECKING([if \$CC groks MMX inline assembly])
AC_TRY_COMPILE([void quux(){void *p;asm("packuswb %%mm1,%%mm2"::"r"(p));}],, AC_TRY_COMPILE([void quux(){void *p;asm("packuswb %%mm1,%%mm2"::"r"(p));}],,
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* ac3_downmix_3dn.c: accelerated 3D Now! ac3 downmix functions * ac3_downmix_3dn.c: accelerated 3D Now! ac3 downmix functions
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN * Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: ac3_downmix_3dn.c,v 1.2 2001/06/03 12:47:21 sam Exp $ * $Id: ac3_downmix_3dn.c,v 1.3 2001/07/01 08:49:09 gbazin Exp $
* *
* Authors: Renaud Dartus <reno@videolan.org> * Authors: Renaud Dartus <reno@videolan.org>
* *
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include "ac3_downmix.h" #include "ac3_downmix.h"
void sqrt2_3dn (void) __asm__ ("sqrt2_3dn");
void sqrt2_3dn (void) void sqrt2_3dn (void)
{ {
__asm__ (".float 0f0.7071068"); __asm__ (".float 0f0.7071068");
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* ac3_downmix_sse.c: accelerated SSE ac3 downmix functions * ac3_downmix_sse.c: accelerated SSE ac3 downmix functions
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN * Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: ac3_downmix_sse.c,v 1.2 2001/06/03 12:47:21 sam Exp $ * $Id: ac3_downmix_sse.c,v 1.3 2001/07/01 08:49:09 gbazin Exp $
* *
* Authors: Renaud Dartus <reno@videolan.org> * Authors: Renaud Dartus <reno@videolan.org>
* Aaron Holtzman <aholtzma@engr.uvic.ca> * Aaron Holtzman <aholtzma@engr.uvic.ca>
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include "ac3_downmix.h" #include "ac3_downmix.h"
void sqrt2_sse (void) __asm__ ("sqrt2_sse");
void sqrt2_sse (void) void sqrt2_sse (void)
{ {
__asm__ (".float 0f0.7071068"); __asm__ (".float 0f0.7071068");
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* ac3_srfft_sse.c: accelerated SSE ac3 fft functions * ac3_srfft_sse.c: accelerated SSE ac3 fft functions
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN * Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: ac3_srfft_sse.c,v 1.2 2001/05/16 14:51:29 reno Exp $ * $Id: ac3_srfft_sse.c,v 1.3 2001/07/01 08:49:09 gbazin Exp $
* *
* Authors: Renaud Dartus <reno@videolan.org> * Authors: Renaud Dartus <reno@videolan.org>
* Aaron Holtzman <aholtzma@engr.uvic.ca> * Aaron Holtzman <aholtzma@engr.uvic.ca>
...@@ -43,8 +43,8 @@ ...@@ -43,8 +43,8 @@
#include "ac3_imdct.h" #include "ac3_imdct.h"
#include "ac3_srfft.h" #include "ac3_srfft.h"
void hsqrt2_sse (void); void hsqrt2_sse (void) __asm__ ("hsqrt2_sse");
void C_1_sse (void); void C_1_sse (void) __asm__ ("C_1_sse");
static void fft_4_sse (complex_t *x); static void fft_4_sse (complex_t *x);
static void fft_8_sse (complex_t *x); static void fft_8_sse (complex_t *x);
static void fft_asmb_sse (int k, complex_t *x, complex_t *wTB, static void fft_asmb_sse (int k, complex_t *x, complex_t *wTB,
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* transforms_yuvmmx.h: MMX YUV transformation assembly * transforms_yuvmmx.h: MMX YUV transformation assembly
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN * Copyright (C) 1999, 2000 VideoLAN
* $Id: transforms_yuvmmx.h,v 1.4 2001/04/28 03:36:25 sam Exp $ * $Id: transforms_yuvmmx.h,v 1.5 2001/07/01 08:49:09 gbazin Exp $
* *
* Authors: Olie Lho <ollie@sis.com.tw> * Authors: Olie Lho <ollie@sis.com.tw>
* Gal Hendryckx <jimmy@via.ecp.fr> * Gal Hendryckx <jimmy@via.ecp.fr>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
/* hope these constant values are cache line aligned */ /* hope these constant values are cache line aligned */
#define UNUSED_LONGLONG(foo) \ #define UNUSED_LONGLONG(foo) \
static unsigned long long foo __attribute__((unused)) static unsigned long long foo __asm__ (#foo) __attribute__((unused))
UNUSED_LONGLONG(mmx_80w) = 0x0080008000800080; UNUSED_LONGLONG(mmx_80w) = 0x0080008000800080;
UNUSED_LONGLONG(mmx_10w) = 0x1010101010101010; UNUSED_LONGLONG(mmx_10w) = 0x1010101010101010;
UNUSED_LONGLONG(mmx_00ffw) = 0x00ff00ff00ff00ff; UNUSED_LONGLONG(mmx_00ffw) = 0x00ff00ff00ff00ff;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment