| // Copyright 2015 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // +build !gccgo |
| |
| package main |
| |
| func cpuid(info *[4]uint32, ax uint32) |
| |
| func cansse2() bool { |
| if gohostarch != "386" && gohostarch != "amd64" { |
| return false |
| } |
| |
| var info [4]uint32 |
| cpuid(&info, 1) |
| return info[3]&(1<<26) != 0 // SSE2 |
| } |
| |
| // useVFPv1 tries to execute one VFPv1 instruction on ARM. |
| // It will crash the current process if VFPv1 is missing. |
| func useVFPv1() |
| |
| // useVFPv3 tries to execute one VFPv3 instruction on ARM. |
| // It will crash the current process if VFPv3 is missing. |
| func useVFPv3() |
| |
| // useARMv6K tries to run ARMv6K instructions on ARM. |
| // It will crash the current process if it doesn't implement |
| // ARMv6K or above. |
| func useARMv6K() |