mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-05 06:46:59 +07:00
x86/fpu: Enumerate xfeature bits
Transform the xstate masks into an enumerated list of xfeature bits. This removes the hard coding of XFEATURES_NR_MAX. Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
33588b5222
commit
677b98bdd5
@ -4,25 +4,39 @@
|
||||
#include <linux/types.h>
|
||||
#include <asm/processor.h>
|
||||
|
||||
#define XSTATE_CPUID 0x0000000d
|
||||
/*
|
||||
* List of XSAVE features Linux knows about:
|
||||
*/
|
||||
enum xfeature_bit {
|
||||
XSTATE_BIT_FP,
|
||||
XSTATE_BIT_SSE,
|
||||
XSTATE_BIT_YMM,
|
||||
XSTATE_BIT_BNDREGS,
|
||||
XSTATE_BIT_BNDCSR,
|
||||
XSTATE_BIT_OPMASK,
|
||||
XSTATE_BIT_ZMM_Hi256,
|
||||
XSTATE_BIT_Hi16_ZMM,
|
||||
|
||||
#define XSTATE_FP 0x1
|
||||
#define XSTATE_SSE 0x2
|
||||
#define XSTATE_YMM 0x4
|
||||
#define XSTATE_BNDREGS 0x8
|
||||
#define XSTATE_BNDCSR 0x10
|
||||
#define XSTATE_OPMASK 0x20
|
||||
#define XSTATE_ZMM_Hi256 0x40
|
||||
#define XSTATE_Hi16_ZMM 0x80
|
||||
XFEATURES_NR_MAX,
|
||||
};
|
||||
|
||||
#define XSTATE_FP (1 << XSTATE_BIT_FP)
|
||||
#define XSTATE_SSE (1 << XSTATE_BIT_SSE)
|
||||
#define XSTATE_YMM (1 << XSTATE_BIT_YMM)
|
||||
#define XSTATE_BNDREGS (1 << XSTATE_BIT_BNDREGS)
|
||||
#define XSTATE_BNDCSR (1 << XSTATE_BIT_BNDCSR)
|
||||
#define XSTATE_OPMASK (1 << XSTATE_BIT_OPMASK)
|
||||
#define XSTATE_ZMM_Hi256 (1 << XSTATE_BIT_ZMM_Hi256)
|
||||
#define XSTATE_Hi16_ZMM (1 << XSTATE_BIT_Hi16_ZMM)
|
||||
|
||||
/* The highest xstate bit above (of XSTATE_Hi16_ZMM): */
|
||||
#define XFEATURES_NR_MAX 8
|
||||
|
||||
#define XSTATE_FPSSE (XSTATE_FP | XSTATE_SSE)
|
||||
#define XSTATE_AVX512 (XSTATE_OPMASK | XSTATE_ZMM_Hi256 | XSTATE_Hi16_ZMM)
|
||||
/* Bit 63 of XCR0 is reserved for future expansion */
|
||||
#define XSTATE_EXTEND_MASK (~(XSTATE_FPSSE | (1ULL << 63)))
|
||||
|
||||
#define XSTATE_CPUID 0x0000000d
|
||||
|
||||
#define FXSAVE_SIZE 512
|
||||
|
||||
#define XSAVE_HDR_SIZE 64
|
||||
|
Loading…
Reference in New Issue
Block a user