From 17d9b14478e81e89f0c8559c425901cf92f8d4b4 Mon Sep 17 00:00:00 2001 From: Konstantin Bogomolov Date: Fri, 17 Feb 2023 10:07:42 -0800 Subject: [PATCH] x86: Add function to see if xsavec is available. PiperOrigin-RevId: 510459831 --- pkg/cpuid/cpuid_amd64.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/cpuid/cpuid_amd64.go b/pkg/cpuid/cpuid_amd64.go index b315107ac..d62f9082d 100644 --- a/pkg/cpuid/cpuid_amd64.go +++ b/pkg/cpuid/cpuid_amd64.go @@ -403,6 +403,13 @@ func (fs FeatureSet) UseXsaveopt() bool { return fs.UseXsave() && fs.HasFeature(X86FeatureXSAVEOPT) } +// UseXsavec returns true if 'fs' supports the "xsavec" instruction. +// +//go:nosplit +func (fs FeatureSet) UseXsavec() bool { + return fs.UseXsaveopt() && fs.HasFeature(X86FeatureXSAVEC) +} + // archCheckHostCompatible checks for compatibility. func (fs FeatureSet) archCheckHostCompatible(hfs FeatureSet) error { // The size of a cache line must match, as it is critical to correctly