diff options
Diffstat (limited to 'mpeglib/lib/util/mmx/mmx.c')
-rw-r--r-- | mpeglib/lib/util/mmx/mmx.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/mpeglib/lib/util/mmx/mmx.c b/mpeglib/lib/util/mmx/mmx.c new file mode 100644 index 00000000..4ac3d6b8 --- /dev/null +++ b/mpeglib/lib/util/mmx/mmx.c @@ -0,0 +1,73 @@ +/* + wrapper for MMX calls + Copyright (C) 2000 Martin Vogt + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Library General Public License as published by + the Free Software Foundation. + + For more information look at the file COPYRIGHT in this package + + */ + + + +#include "mmx.h" + +static int mmSupport=-1; + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#if defined(MMX_SUPPORT) || defined(INTEL) +#define HAVE_ACCEL +#endif + + +#ifndef HAVE_ACCEL +int emms() { + printf("urgs! emms() never should happen\n"); + exit(0); +} + +int mm_support() { + return 0; +} + +#endif + + +#ifdef HAVE_ACCEL +#include <inttypes.h> +#include "mm_accel.h" + + + + +int emms() { + __asm__ ("emms"); + return 1; +} + + +int mm_support() { + + int val; + + if (mmSupport == -1) { + + val=mm_accel(); + if (val & MM_ACCEL_X86_MMX) { + mmSupport=1; + } else { + mmSupport=0; + } + + } + /* Return */ + return(mmSupport); +} + + +#endif |