1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
# Recognized fields:
# "Name": the isa extension name, the package will be ${Name}-support
# "Architecture": archs to build the package on, wildcards are ok
# "Test": how to detect it, defaults to return !__builtin_cpu_supports("$Name");
# If the test program dies (SIGILL/etc), that's ok, the answer is "no".
# CFLAGS: passed to the C compiler, can include link-time flags too.
# Description: added to package's description.
Name: sse2
Architecture: any-i386
Description:
These instructions are available on processors from Pentium 4 onward,
including any 64-bit capable. There's no SSE2 on Pentium 3, Athlon XP,
Via C3, Quark -- and older.
Name: sse3
Architecture: any-i386 any-amd64
Description:
These instructions are available on almost any 64-bit capable processors
except for some early AMD models (Sledgehammer and Clawhammer), but not
most 32-bit only hardware.
Name: sse4.2
Architecture: any-i386 any-amd64
Description:
These instructions are available on Intel processors since Nehalem (circa
2008), but notably not on anything AMD until 2011-13, starting with family
15h (Bulldozer then Jaguar).
Name: altivec
Architecture: powerpc
Test: asm("vsldoi %v1,%v1,%v1,0");
# gcc-6 has __builtin_cpu_supports("altivec") but it's not reliable: silently
# gives wrong answer on qemu, wrong versions of glibc, non-glibc, etc.
# Thus, let's use SIGILL instead.
Name: neon
Architecture: armhf
CFLAGS: -mfpu=neon
Test: asm("VMUL.I16 q0,q0,q1");
Description:
These instructions are available on the vast majority of armhf hardware
but not guaranteed before ARMv8 (ie, 64-bit capable).
|