From 22576e87a0b9d0a269bc9fd6a969ad2abc05570c Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Tue, 2 Jul 2013 16:08:03 -0500 Subject: [PATCH] Hardware: Query sysctl for instructon sets This may be more accurate than guessing. --- Library/Homebrew/os/mac/hardware.rb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/os/mac/hardware.rb b/Library/Homebrew/os/mac/hardware.rb index d14952b8d1..5487a8d4dc 100644 --- a/Library/Homebrew/os/mac/hardware.rb +++ b/Library/Homebrew/os/mac/hardware.rb @@ -76,20 +76,23 @@ module MacCPUs end def altivec? - type == :ppc && family != :g3 + @altivec ||= sysctl_bool('hw.optional.altivec') end def avx? - pre_sandy = [:core, :core2, :penryn, :nehalem, :arrandale].include? family - type == :intel && !pre_sandy + @avx ||= sysctl_bool('hw.optional.avx1_0') end def sse3? - type == :intel + @sse3 ||= sysctl_bool('hw.optional.sse3') end 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 protected