|
@@ -27,6 +27,7 @@ func init() {
|
|
|
X86.HasPOPCNT = isSet(23, ecx1)
|
|
X86.HasPOPCNT = isSet(23, ecx1)
|
|
|
X86.HasAES = isSet(25, ecx1)
|
|
X86.HasAES = isSet(25, ecx1)
|
|
|
X86.HasOSXSAVE = isSet(27, ecx1)
|
|
X86.HasOSXSAVE = isSet(27, ecx1)
|
|
|
|
|
+ X86.HasRDRAND = isSet(30, ecx1)
|
|
|
|
|
|
|
|
osSupportsAVX := false
|
|
osSupportsAVX := false
|
|
|
// For XGETBV, OSXSAVE bit is required and sufficient.
|
|
// For XGETBV, OSXSAVE bit is required and sufficient.
|
|
@@ -47,6 +48,7 @@ func init() {
|
|
|
X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX
|
|
X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX
|
|
|
X86.HasBMI2 = isSet(8, ebx7)
|
|
X86.HasBMI2 = isSet(8, ebx7)
|
|
|
X86.HasERMS = isSet(9, ebx7)
|
|
X86.HasERMS = isSet(9, ebx7)
|
|
|
|
|
+ X86.HasRDSEED = isSet(18, ebx7)
|
|
|
X86.HasADX = isSet(19, ebx7)
|
|
X86.HasADX = isSet(19, ebx7)
|
|
|
}
|
|
}
|
|
|
|
|
|