Lines Matching refs:xcr0

35 static DEFINE_PER_CPU(uint64_t, xcr0);
61 this_cpu(xcr0) = xfeatures; in set_xcr0()
67 return this_cpu(xcr0); in get_xcr0()
460 ptr->xsave_hdr.xcomp_bv &= this_cpu(xcr0) | this_cpu(xss); in xrstor()
466 ptr->xsave_hdr.xstate_bv &= this_cpu(xcr0); in xrstor()
538 v->arch.xcr0 = 0; in xstate_alloc_save_area()
550 static unsigned int _xstate_ctxt_size(u64 xcr0) in _xstate_ctxt_size() argument
554 bool ok = set_xcr0(xcr0); in _xstate_ctxt_size()
566 unsigned int xstate_ctxt_size(u64 xcr0) in xstate_ctxt_size() argument
568 if ( xcr0 == xfeature_mask ) in xstate_ctxt_size()
571 if ( xcr0 == 0 ) in xstate_ctxt_size()
574 return _xstate_ctxt_size(xcr0); in xstate_ctxt_size()
648 static bool valid_xcr0(u64 xcr0) in valid_xcr0() argument
651 if ( !(xcr0 & XSTATE_FP) ) in valid_xcr0()
655 if ( (xcr0 & XSTATE_YMM) && !(xcr0 & XSTATE_SSE) ) in valid_xcr0()
658 if ( xcr0 & (XSTATE_OPMASK | XSTATE_ZMM | XSTATE_HI_ZMM) ) in valid_xcr0()
661 if ( !(xcr0 & XSTATE_YMM) ) in valid_xcr0()
665 if ( ~xcr0 & (XSTATE_OPMASK | XSTATE_ZMM | XSTATE_HI_ZMM) ) in valid_xcr0()
670 return !(xcr0 & XSTATE_BNDREGS) == !(xcr0 & XSTATE_BNDCSR); in valid_xcr0()
673 int validate_xstate(u64 xcr0, u64 xcr0_accum, const struct xsave_hdr *hdr) in validate_xstate() argument
678 (xcr0 & ~xcr0_accum) || in validate_xstate()
679 !valid_xcr0(xcr0) || in validate_xstate()
713 curr->arch.xcr0 = new_bv; in handle_xsetbv()
780 unsigned long xcr0 = this_cpu(xcr0); in xstate_set_init() local
790 if ( (~xcr0 & mask) && !set_xcr0(xcr0 | mask) ) in xstate_set_init()
801 if ( (~xcr0 & mask) && !set_xcr0(xcr0) ) in xstate_set_init()