Commit Graph

102 Commits

Author SHA1 Message Date
wm4 16c6e1dee9 cpudetect: remove unused/forgotten crap 2012-08-01 23:49:06 +02:00
wm4 74df1d8e05 Remove compile time/runtime CPU detection, and drop some platforms
mplayer had three ways of enabling CPU specific assembler routines:
a) Enable them at compile time; crash if the CPU can't handle it.
b) Enable them at compile time, but let the configure script detect
   your CPU. Your binary will only crash if you try to run it on a
   different system that has less features than yours.
   This was the default, I think.
c) Runtime detection.

The implementation of b) and c) suck. a) is not really feasible (it
sucks for users). Remove all code related to this, and use libav's CPU
detection instead. Now the configure script will always enable CPU
specific features, and disable them at runtime if libav reports them
not as available.

One implication is that now the compiler is always expected to handle
SSE (etc.) inline assembly at runtime, unless it's explicitly disabled.

Only checks for x86 CPU specific features are kept, the rest is either
unused or barely used.

Get rid of all the dump -mpcu, -march etc. flags. Trust the compiler
to select decent settings.

Get rid of support for the following operating systems:
- BSD/OS (some ancient BSD fork)
- QNX (don't care)
- BeOS (dead, Haiku support is still welcome)
- AIX (don't care)
- HP-UX (don't care)
- OS/2 (dead, actual support has been removed a while ago)

Remove the configure code for detecting the endianness. Instead, use
the standard header <endian.h>, which can be used if _GNU_SOURCE or
_BSD_SOURCE is defined. (Maybe these changes should have been in a
separate commit.)

Since this is a quite violent code removal orgy, and I'm testing only
on x86 32 bit Linux, expect regressions.
2012-07-30 01:37:28 +02:00
Uoti Urpala e2fc1f640f build: remove OS/2 support 2012-04-06 17:45:56 +03:00
reimar 8efc898f78 cpudetect.c: check OS SSE support only with runtime detection
Run OS support for SSE check only for runtime CPU detection.
It is pointless to run it otherwise and it causes issues
on OSes where we have not implemented a way to check.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33713 b3059339-0415-0410-9bf9-f77b7e298cf2
2011-07-06 13:01:07 +03:00
diego 69e3e06a1a Move code to avoid forward declarations in top-level .c files
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32421 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:18:08 +02:00
reimar 04ce30b2fd loader: Reuse do_cpuid from cpudetect.c in loader/win32.c
Also avoids several "used uninitialized" warnings.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31905 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:15:01 +02:00
reimar 4843c8d7d9 cpuid.c: Remove outdated code
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31904 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-02 04:15:01 +02:00
diego a535f7bfca the great MPlayer tab removal: part II
some extra indentation fixes are put in as a bonus


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31134 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-05-03 23:34:38 +00:00
reimar 55089a3986 Leave disabling SSE to the check_os_katmai_support always regardless of OS,
it can already handle all cases, will always print a proper warning and
probably fixes SSE being disabled on x86_64 Solaris systems.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30971 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-27 19:45:59 +00:00
diego d32a13a467 Rename SGI_MIPS architecture to plain MIPS.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30924 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-03-17 14:09:09 +00:00
diego 99c1bbca2a Add license header to all top-level files missing them.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30471 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-30 23:24:23 +00:00
diego 6e9cbdc104 whitespace cosmetics: Remove all trailing whitespace.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-05-13 02:58:57 +00:00
ramiro ca242e5f73 Rename RUNTIME_CPUDETECT to CONFIG_RUNTIME_CPUDETECT and always define it.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29154 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-04-08 20:21:21 +00:00
diego 2e903f7c75 Remove unnecessary malloc.h #includes and related #ifdeffery.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29126 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-04-02 09:20:48 +00:00
reimar 7fcdc66fd1 Sync cpuid detection code with libavcodec: assume it is always available on x86_64
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29069 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-27 18:48:47 +00:00
diego cb9716ac6e SSE3 support patch by Zhou Zongyi, zhouzongyi pset.suntec net
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28936 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-03-12 10:50:21 +00:00
zuxy 6b7aa125cc Get rid of the outdated and unmaintained CPU codename table.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28704 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-23 03:35:07 +00:00
diego be8c67909b Convert HAVE_MALLOC_H into a 0/1 definition, fixes the warning:
mem.c:32:5: warning: "HAVE_MALLOC_H" is not defined


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28629 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-17 11:16:19 +00:00
diego 4f4c060802 Print information about detected CPU in verbose mode only.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28493 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-09 00:29:26 +00:00
diego f64d639d2b Use OS preprocessor checks with '#if defined()' consistently.
Avoids undefined preprocessor directives warnings.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28399 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-30 23:29:39 +00:00
diego 5afe13e12a Replace another bunch of '#if HAVE_FOO' preprocessor checks by 'if (HAVE_FOO)'.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28377 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-26 14:36:31 +00:00
diego eb4a4604c0 HAVE_3DNOW --> HAVE_AMD3DNOW
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28370 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-26 09:29:53 +00:00
diego 401ea8e1db HAVE_3DNOWEX --> HAVE_3DNOWEXT
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28361 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-25 21:03:02 +00:00
gpoirier 1e03072359 fix wrong #ifdef/#ifndef -> #if conversion in r28323
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28332 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-16 12:23:52 +00:00
reimar 17923f688b Fix a wrongly converted !defined(ARCH_X86_64)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28330 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-16 09:44:36 +00:00
reimar cd1c4655b8 Fix first handful of #if vs. #ifdef for ARCH_, HAVE_SSE etc.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28323 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-16 08:43:05 +00:00
diego 1279c23834 one more ARCH_ARMV4L --> ARCH_ARM, patch by Guillaume Lecerf, foxcore gmail com
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28320 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-01-16 01:11:16 +00:00
diego ce7fc9babc Set and use only ARCH_PPC, not also ARCH_POWERPC.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28196 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-12-27 12:00:11 +00:00
zuxy 54c23a5806 Correct detection of SSSE3 and SSE4a feature bits.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28049 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-11-30 09:17:21 +00:00
cehoyos e3bf64337e Replace pushf/popf by explicit pushfl/popfl (32 bit) or pushfq/popfq
(x86_64), to fix generated code on ICC 11.0.
Original FFmpeg patch by Reimar.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28037 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-11-25 18:36:50 +00:00
gpoirier 928e4433aa Add detection of x86 CPU features SSSE3 and SSE4a.
Patch by Zhou, Zongyi %zz65 A cornell P edu%
Original thread:
date: Wed, Nov 19, 2008 at 4:22 PM
subject: Re: [MPlayer-dev-eng] [PATCH] yadif SSE2/SSSE3 optimization


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27960 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-11-19 16:41:59 +00:00
diego 26b29f4f2d Replace all occurrences of '__volatile__' and '__volatile' by plain 'volatile'.
We were using an inconsistent mix of the three variants and 'volatile' should
be the most correct and portable variant.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27791 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-16 20:17:56 +00:00
diego 6b52a2e974 Change all occurrences of asm and __asm to __asm__, same as was done for FFmpeg.
Neither variant is valid C99 syntax, but __asm__ is the most portable variant.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27788 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-16 18:59:27 +00:00
diego 4d644f513c Replace preprocessor check for WIN32 with checks for __MINGW32__ and __CYGWIN__.
This avoids a pointless indirection that only obscures what is really done.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27761 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-10-13 16:23:55 +00:00
reimar f19f762548 Simplify cpudetect OS-support detection code, e.g. using one mp_msg to print either yes or no instead of two.
Should not change code behaviour.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27637 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-09-18 15:30:23 +00:00
diego fea35f288a Remove pointless '#if 1 [...] #endif' around has_cpuid() function.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27491 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-08-29 17:44:51 +00:00
diego 5423c418c2 cosmetics: Remove useless parentheses from return statements.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26791 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-05-16 09:42:28 +00:00
diego 8c514af56c Wrap HAVE_XXX macros with RUNTIME_CPUDETECT, because when RUNTIME_CPUDETECT is
enabled, checking HAVE_XXX and disabling that CPU feature is meaningless.
patch by KO Myung-Hun, komh chollian net


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26094 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-24 18:21:41 +00:00
diego 0044fb7a38 Enable SSE detection on OS/2.
patch by KO Myung-Hun, komh chollian net


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26093 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-24 18:09:28 +00:00
diego b824af715e cosmetics: Break one unreadable long line.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26092 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-24 18:04:34 +00:00
diego 4bf51158a9 Add #include <sys/sysctl.h> for Mac OS X, fixes the warning
cpudetect.c:344: warning: implicit declaration of function sysctlbyname
patch by Elias Pipping, elias pipping org


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26085 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-24 12:05:20 +00:00
diego cb80e1a797 support for xtensa CPU architecture
patch by Dan Nicolaescu (dann ics.uci edu), Reimar and me


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25368 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-11 22:37:36 +00:00
diego 472727ba1f Slightly simplify preprocessor conditionals.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25367 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-11 22:31:57 +00:00
diego 796a0db35c Ahem, fix breakage of last commit: The AltiVec detection code has three
sections, namely OS X, AMIGAOS4 and the rest.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25366 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-11 22:29:22 +00:00
diego 75b15d9634 Remove redundant and obfuscating preprocessor conditional.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25358 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-11 20:30:30 +00:00
diego a67cf40cfc Replace SYS_DARWIN conditional by the more correct __APPLE__.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25357 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-11 20:27:13 +00:00
diego 2fd3289130 Fix warning:
cpudetect.c: In function 'check_os_katmai_support':
cpudetect.c:395: warning: unused variable 'saved_sigfpe'


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24684 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-10-01 22:48:39 +00:00
diego b305934c76 Enable SSE on MinGW, many builds out there seem to use it without ill effect.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24662 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-09-29 19:48:45 +00:00
reimar 8351949b6f sigill_handler_sse is not needed and can not compile on 64 bit systems
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24460 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-09-14 14:19:22 +00:00
reimar 2f5f5d3b4c Do not check for X86_FXSR_MAGIC define, it is missing in newer
distribution/kernel headers.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24459 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-09-14 13:49:28 +00:00