Hardware: Query sysctl for instructon sets

This may be more accurate than guessing.
This commit is contained in:
Misty De Meo 2013-07-02 16:08:03 -05:00
parent 53c97c3c96
commit 22576e87a0

View File

@ -76,20 +76,23 @@ module MacCPUs
end end
def altivec? def altivec?
type == :ppc && family != :g3 @altivec ||= sysctl_bool('hw.optional.altivec')
end end
def avx? def avx?
pre_sandy = [:core, :core2, :penryn, :nehalem, :arrandale].include? family @avx ||= sysctl_bool('hw.optional.avx1_0')
type == :intel && !pre_sandy
end end
def sse3? def sse3?
type == :intel @sse3 ||= sysctl_bool('hw.optional.sse3')
end end
def sse4? def sse4?
type == :intel && (family != :core && family != :core2) @sse4 ||= sysctl_bool('hw.optional.sse4_1')
end
def sse4_2?
@sse4 ||= sysctl_bool('hw.optional.sse4_2')
end end
protected protected