summaryrefslogtreecommitdiffstats
path: root/cpudetect.c
diff options
context:
space:
mode:
authorpacman <pacman@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-02-28 23:24:38 +0000
committerpacman <pacman@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-02-28 23:24:38 +0000
commite4ecd258d51876d8306eec897d687b86047c40c7 (patch)
tree611366cd80eda9bf0b926808b5b273a37e5dc36a /cpudetect.c
parentffdf7260bb5a8acdc5b4e9624b9a7024e5bc8ce2 (diff)
downloadmpv-e4ecd258d51876d8306eec897d687b86047c40c7.tar.bz2
mpv-e4ecd258d51876d8306eec897d687b86047c40c7.tar.xz
add Amiga-style AltiVec detection, patch from andrea at amigasoft dot net
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17703 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'cpudetect.c')
-rw-r--r--cpudetect.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/cpudetect.c b/cpudetect.c
index ca00c8d7a3..c749fbc444 100644
--- a/cpudetect.c
+++ b/cpudetect.c
@@ -33,6 +33,10 @@ CpuCaps gCpuCaps;
#include <windows.h>
#endif
+#ifdef __AMIGAOS4__
+#include <proto/exec.h>
+#endif
+
//#define X86_FXSR_MAGIC
/* Thanks to the FreeBSD project for some of this cpuid code, and
* help understanding how to use it. Thanks to the Mesa
@@ -468,6 +472,7 @@ static void check_os_katmai_support( void )
#ifdef SYS_DARWIN
#include <sys/sysctl.h>
#else
+#ifndef __AMIGAOS4__
#include <signal.h>
#include <setjmp.h>
@@ -484,6 +489,7 @@ static void sigill_handler (int sig)
canjump = 0;
siglongjmp (jmpbuf, 1);
}
+#endif //__AMIGAOS4__
#endif
void GetCpuCaps( CpuCaps *caps)
@@ -517,6 +523,13 @@ void GetCpuCaps( CpuCaps *caps)
caps->hasAltiVec = 1;
}
#else /* SYS_DARWIN */
+#ifdef __AMIGAOS4__
+ ULONG result = 0;
+
+ GetCPUInfoTags(GCIT_VectorUnit, &result, TAG_DONE);
+ if (result == VECTORTYPE_ALTIVEC)
+ caps->hasAltiVec = 1;
+#else
/* no Darwin, do it the brute-force way */
/* this is borrowed from the libmpeg2 library */
{
@@ -535,6 +548,7 @@ void GetCpuCaps( CpuCaps *caps)
caps->hasAltiVec = 1;
}
}
+#endif //__AMIGAOS4__
#endif /* SYS_DARWIN */
mp_msg(MSGT_CPUDETECT,MSGL_INFO,"AltiVec %sfound\n", (caps->hasAltiVec ? "" : "not "));
#endif /* HAVE_ALTIVEC */