50
50
#endif
51
51
#if defined(__MACOSX__ ) && (defined(__ppc__ ) || defined(__ppc64__ ))
52
52
#include <sys/sysctl.h> /* For AltiVec check */
53
- #elif defined(__OpenBSD__ ) && defined(__powerpc__ )
53
+ #elif defined(__OpenBSD__ ) && defined(__powerpc__ ) && !defined( HAVE_ELF_AUX_INFO )
54
54
#include <sys/types.h>
55
55
#include <sys/sysctl.h> /* For AltiVec check */
56
56
#include <machine/cpu.h>
57
- #elif defined(__FreeBSD__ ) && defined(__powerpc__ )
57
+ #elif defined(__FreeBSD__ ) && defined(__powerpc__ ) && defined( HAVE_ELF_AUX_INFO )
58
58
#include <machine/cpu.h>
59
- #include <sys/auxv.h>
60
59
#elif defined(SDL_ALTIVEC_BLITTERS ) && defined(HAVE_SETJMP )
61
60
#include <signal.h>
62
61
#include <setjmp.h>
@@ -343,7 +342,12 @@ static int CPU_haveAltiVec(void)
343
342
{
344
343
volatile int altivec = 0 ;
345
344
#ifndef SDL_CPUINFO_DISABLED
346
- #if (defined(__MACOSX__ ) && (defined(__ppc__ ) || defined(__ppc64__ ))) || (defined(__OpenBSD__ ) && defined(__powerpc__ ))
345
+ #if (defined(__FreeBSD__ ) || defined(__OpenBSD__ )) && defined(__powerpc__ ) && defined(HAVE_ELF_AUX_INFO )
346
+ unsigned long cpufeatures = 0 ;
347
+ elf_aux_info (AT_HWCAP , & cpufeatures , sizeof (cpufeatures ));
348
+ altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC ;
349
+ return altivec ;
350
+ #elif (defined(__MACOSX__ ) && (defined(__ppc__ ) || defined(__ppc64__ ))) || (defined(__OpenBSD__ ) && defined(__powerpc__ ))
347
351
#ifdef __OpenBSD__
348
352
int selectors [2 ] = { CTL_MACHDEP , CPU_ALTIVEC };
349
353
#else
@@ -355,11 +359,6 @@ static int CPU_haveAltiVec(void)
355
359
if (0 == error ) {
356
360
altivec = (hasVectorUnit != 0 );
357
361
}
358
- #elif defined(__FreeBSD__ ) && defined(__powerpc__ )
359
- unsigned long cpufeatures = 0 ;
360
- elf_aux_info (AT_HWCAP , & cpufeatures , sizeof (cpufeatures ));
361
- altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC ;
362
- return altivec ;
363
362
#elif defined(__LINUX__ ) && defined(__powerpc__ ) && defined(HAVE_GETAUXVAL )
364
363
altivec = getauxval (AT_HWCAP ) & PPC_FEATURE_HAS_ALTIVEC ;
365
364
#elif defined(SDL_ALTIVEC_BLITTERS ) && defined(HAVE_SETJMP )
@@ -489,8 +488,6 @@ static int CPU_haveNEON(void)
489
488
return 0 ; /* assume anything else from Apple doesn't have NEON. */
490
489
#elif !defined(__arm__ )
491
490
return 0 ; /* not an ARM CPU at all. */
492
- #elif defined(__OpenBSD__ )
493
- return 1 ; /* OpenBSD only supports ARMv7 CPUs that have NEON. */
494
491
#elif defined(HAVE_ELF_AUX_INFO )
495
492
unsigned long hasneon = 0 ;
496
493
if (elf_aux_info (AT_HWCAP , (void * )& hasneon , (int )sizeof (hasneon )) != 0 ) {
@@ -527,6 +524,8 @@ static int CPU_haveNEON(void)
527
524
}
528
525
return 0 ;
529
526
}
527
+ #elif defined(__OpenBSD__ )
528
+ return 1 ; /* OpenBSD only supports ARMv7 CPUs that have NEON. */
530
529
#else
531
530
#warning SDL_HasNEON is not implemented for this ARM platform. Write me.
532
531
return 0 ;
0 commit comments