mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
configure.ac: Detect and indicate if GCC inline assembly syntax is available.
Original commit message from CVS: * configure.ac: Detect and indicate if GCC inline assembly syntax is available. * gst/goom/Makefile.am: * gst/goom/convolve_fx.c: * gst/goom/flying_stars_fx.c: * gst/goom/goom_config.h: * gst/goom/goom_core.c: * gst/goom/goomsl.c: * gst/goom/ifs.c: * gst/goom/mmx.c: * gst/goom/plugin_info.c: * gst/goom/xmmx.c: Fix various GCC-isms, and only build the inline assembly with compilers that support GCC inline assembly. Fix a couple of other warnings shown with Forte.
This commit is contained in:
parent
c99b95d8cb
commit
c34fa140d0
13 changed files with 79 additions and 23 deletions
21
ChangeLog
21
ChangeLog
|
@ -1,3 +1,24 @@
|
|||
2008-02-26 Jan Schmidt <jan.schmidt@sun.com>
|
||||
|
||||
* configure.ac:
|
||||
Detect and indicate if GCC inline assembly syntax is
|
||||
available.
|
||||
|
||||
* gst/goom/Makefile.am:
|
||||
* gst/goom/convolve_fx.c:
|
||||
* gst/goom/flying_stars_fx.c:
|
||||
* gst/goom/goom_config.h:
|
||||
* gst/goom/goom_core.c:
|
||||
* gst/goom/goomsl.c:
|
||||
* gst/goom/ifs.c:
|
||||
* gst/goom/mmx.c:
|
||||
* gst/goom/plugin_info.c:
|
||||
* gst/goom/xmmx.c:
|
||||
Fix various GCC-isms, and only build the inline assembly
|
||||
with compilers that support GCC inline assembly.
|
||||
|
||||
Fix a couple of other warnings shown with Forte.
|
||||
|
||||
2008-02-25 Stefan Kost <ensonic@users.sf.net>
|
||||
|
||||
* gst/goom/xmmx.c:
|
||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit 1c5138efc5679d9eaee66c84dcfabdec5b727493
|
||||
Subproject commit e746d20ef536a73aea9964666c7d5f6d5c9465df
|
|
@ -337,6 +337,13 @@ dnl Check for Yacc and Lex for the goom plugin
|
|||
AG_GST_BISON_CHECK
|
||||
AG_GST_FLEX_CHECK
|
||||
AM_PROG_AS
|
||||
dnl Check if we have GCC inline-asm
|
||||
AS_GCC_INLINE_ASSEMBLY([HAVE_GCC_ASM=yes], [HAVE_GCC_ASM=no])
|
||||
if test x$HAVE_GCC_ASM = xyes ; then
|
||||
AC_DEFINE(HAVE_GCC_ASM, 1,
|
||||
[Define if compiler supports gcc inline assembly])
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_GCC_ASM, test "x$HAVE_GCC_ASM" = "xyes")
|
||||
|
||||
dnl *** sys plug-ins ***
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ ARCH_FILES = $(PPC_FILES)
|
|||
endif
|
||||
if HAVE_CPU_I386
|
||||
ARCH_FILES = $(MMX_FILES)
|
||||
ARCH_CFLAGS = -DHAVE_MMX
|
||||
ARCH_CFLAGS = -DBUILD_MMX
|
||||
endif
|
||||
|
||||
libgstgoom_la_SOURCES = \
|
||||
|
|
|
@ -340,10 +340,10 @@ VisualFX
|
|||
convolve_create (void)
|
||||
{
|
||||
VisualFX vfx = {
|
||||
init:convolve_init,
|
||||
free:convolve_free,
|
||||
apply:convolve_apply,
|
||||
fx_data:0
|
||||
convolve_init,
|
||||
convolve_free,
|
||||
convolve_apply,
|
||||
NULL
|
||||
};
|
||||
return vfx;
|
||||
}
|
||||
|
|
|
@ -200,8 +200,7 @@ fs_sound_event_occured (VisualFX * _this, PluginInfo * info)
|
|||
FSData *data = (FSData *) _this->fx_data;
|
||||
int i;
|
||||
|
||||
int max =
|
||||
(int) ((1.0f + info->sound.goomPower) * goom_irand (info->gRandom,
|
||||
int max = (int) ((1.0f + info->sound.goomPower) * goom_irand (info->gRandom,
|
||||
150)) + 100;
|
||||
float radius =
|
||||
(1.0f + info->sound.goomPower) * (float) (goom_irand (info->gRandom,
|
||||
|
@ -332,10 +331,10 @@ VisualFX
|
|||
flying_star_create (void)
|
||||
{
|
||||
VisualFX vfx = {
|
||||
init:fs_init,
|
||||
free:fs_free,
|
||||
apply:fs_apply,
|
||||
fx_data:0
|
||||
fs_init,
|
||||
fs_free,
|
||||
fs_apply,
|
||||
NULL
|
||||
};
|
||||
return vfx;
|
||||
}
|
||||
|
|
|
@ -26,3 +26,7 @@
|
|||
#define gint16 signed short int
|
||||
#define gint32 signed int
|
||||
#endif
|
||||
|
||||
#if defined (BUILD_MMX) && defined (HAVE_GCC_ASM)
|
||||
#define HAVE_MMX
|
||||
#endif
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "goom.h"
|
||||
|
@ -721,8 +722,7 @@ goom_update (PluginInfo * goomInfo, gint16 data[2][512],
|
|||
goomInfo->update.lineMode--;
|
||||
if (goomInfo->update.lineMode == -1)
|
||||
goomInfo->update.lineMode = 0;
|
||||
} else
|
||||
if ((goomInfo->cycle % 80 == 0)
|
||||
} else if ((goomInfo->cycle % 80 == 0)
|
||||
&& (goom_irand (goomInfo->gRandom, 5) == 0) && goomInfo->update.lineMode)
|
||||
goomInfo->update.lineMode--;
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <glib.h>
|
||||
#include "goomsl.h"
|
||||
#include "goomsl_private.h"
|
||||
#include "goomsl_yacc.h"
|
||||
|
@ -465,7 +466,6 @@ gsl_instr_validate (Instruction * _this)
|
|||
default:
|
||||
return VALIDATE_TODO;
|
||||
}
|
||||
return VALIDATE_ERROR;
|
||||
} /* }}} */
|
||||
|
||||
/*************/
|
||||
|
|
|
@ -470,7 +470,7 @@ static void
|
|||
ifs_update (PluginInfo * goomInfo, Pixel * data, Pixel * back, int increment,
|
||||
IfsData * fx_data)
|
||||
{
|
||||
static int couleur = 0xc0c0c0c0;
|
||||
static unsigned int couleur = 0xc0c0c0c0;
|
||||
static int v[4] = { 2, 4, 3, 2 };
|
||||
static int col[4] = { 2, 4, 3, 2 };
|
||||
|
||||
|
@ -486,7 +486,7 @@ ifs_update (PluginInfo * goomInfo, Pixel * data, Pixel * back, int increment,
|
|||
IFSPoint *points;
|
||||
int i;
|
||||
|
||||
int couleursl = couleur;
|
||||
unsigned int couleursl = couleur;
|
||||
int width = goomInfo->screen.width;
|
||||
int height = goomInfo->screen.height;
|
||||
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_CPU_I386) || defined (HAVE_CPU_X86_64)
|
||||
#include "goom_config.h"
|
||||
|
||||
#ifdef HAVE_MMX
|
||||
|
||||
#define BUFFPOINTNB 16
|
||||
#define BUFFPOINTMASK 0xffff
|
||||
|
@ -252,5 +256,10 @@ end_of_line:
|
|||
emms ();
|
||||
/* __asm__ __volatile__ ("emms"); */
|
||||
}
|
||||
|
||||
#endif /* HAVE_CPU_I386 || HAVE_CPU_X86_64 */
|
||||
#else
|
||||
int
|
||||
mmx_supported (void)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
#endif /* HAVE_MMX */
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
||||
#include "goom_config.h"
|
||||
|
||||
#include "goom_plugin_info.h"
|
||||
#include "goom_fx.h"
|
||||
#include "default_scripts.h"
|
||||
|
@ -18,9 +22,9 @@
|
|||
#endif /* HAVE_CPU_PPC64 || HAVE_CPU_PPC */
|
||||
|
||||
|
||||
#ifdef HAVE_CPU_I386
|
||||
#ifdef HAVE_MMX
|
||||
#include "mmx.h"
|
||||
#endif /* HAVE_CPU_I386 */
|
||||
#endif /* HAVE_MMX */
|
||||
|
||||
#include <liboil/liboil.h>
|
||||
#include <liboil/liboilfunction.h>
|
||||
|
@ -44,6 +48,7 @@ setOptimizedMethods (PluginInfo * p)
|
|||
|
||||
/* FIXME: what about HAVE_CPU_X86_64 ? */
|
||||
#ifdef HAVE_CPU_I386
|
||||
#ifdef HAVE_MMX
|
||||
GST_INFO ("have an x86");
|
||||
if (cpuFlavour & OIL_IMPL_FLAG_MMXEXT) {
|
||||
GST_INFO ("Extended MMX detected. Using the fastest methods!");
|
||||
|
@ -56,6 +61,7 @@ setOptimizedMethods (PluginInfo * p)
|
|||
} else {
|
||||
GST_INFO ("Too bad ! No SIMD optimization available for your CPU.");
|
||||
}
|
||||
#endif
|
||||
#endif /* HAVE_CPU_I386 */
|
||||
|
||||
#ifdef HAVE_CPU_PPC64
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "goom_config.h"
|
||||
|
||||
#ifdef HAVE_MMX
|
||||
|
||||
|
@ -362,5 +367,10 @@ end_of_line:
|
|||
/* this was femms, which is AMD 3dnow */
|
||||
__asm__ __volatile__ ("emms\n");
|
||||
}
|
||||
|
||||
#else
|
||||
int
|
||||
xmmx_supported (void)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue