diff --git a/src/internal/cpu/cpu.go b/src/internal/cpu/cpu.go index fdda880af4..1f3411cc72 100644 --- a/src/internal/cpu/cpu.go +++ b/src/internal/cpu/cpu.go @@ -76,6 +76,7 @@ var ARM arm // The struct is padded to avoid false sharing. type arm struct { _ CacheLinePad + HasVFPv4 bool HasIDIVA bool _ CacheLinePad } diff --git a/src/internal/cpu/cpu_arm.go b/src/internal/cpu/cpu_arm.go index 6a5b30580c..1c3e529190 100644 --- a/src/internal/cpu/cpu_arm.go +++ b/src/internal/cpu/cpu_arm.go @@ -15,15 +15,18 @@ var HWCap2 uint // HWCAP/HWCAP2 bits. These are exposed by Linux and FreeBSD. const ( + hwcap_VFPv4 = 1 << 16 hwcap_IDIVA = 1 << 17 ) func doinit() { options = []option{ + {"vfpv4", &ARM.HasVFPv4}, {"idiva", &ARM.HasIDIVA}, } // HWCAP feature bits + ARM.HasVFPv4 = isSet(HWCap, hwcap_VFPv4) ARM.HasIDIVA = isSet(HWCap, hwcap_IDIVA) }