1
mirror of https://github.com/mpv-player/mpv synced 2024-07-11 23:47:56 +02:00
Commit Graph

101 Commits

Author SHA1 Message Date
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
reimar
62d005a974 Remove unused sigfpe handler
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24458 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-09-14 13:43:06 +00:00