Lines Matching refs:xbuf

52 static inline void xsave(struct xsave_buffer *xbuf, uint64_t rfbm)
58 : : "D" (xbuf), "a" (rfbm_lo), "d" (rfbm_hi)
62 static inline void xrstor(struct xsave_buffer *xbuf, uint64_t rfbm)
68 : : "D" (xbuf), "a" (rfbm_lo), "d" (rfbm_hi));
168 struct xsave_buffer *xbuf;
171 xbuf = aligned_alloc(64, xbuf_size);
172 if (!xbuf)
174 return xbuf;
194 static void set_rand_tiledata(struct xsave_buffer *xbuf)
196 int *ptr = (int *)&xbuf->bytes[xtiledata.xbuf_offset];
260 void *xbuf = ctx->uc_mcontext.fpregs;
275 sw_bytes = get_fpx_sw_bytes(xbuf);
292 features = get_fpx_sw_bytes_features(xbuf);
309 static inline bool xrstor_safe(struct xsave_buffer *xbuf, uint64_t mask)
312 xrstor(xbuf, mask);
334 static inline bool load_rand_tiledata(struct xsave_buffer *xbuf)
336 clear_xstate_header(xbuf);
337 set_xstatebv(xbuf, XFEATURE_MASK_XTILEDATA);
338 set_rand_tiledata(xbuf);
339 return xrstor_safe(xbuf, XFEATURE_MASK_XTILEDATA);
620 static inline void validate_tiledata_regs_same(struct xsave_buffer *xbuf)
622 int ret = __validate_tiledata_regs(xbuf);
628 static inline void validate_tiledata_regs_changed(struct xsave_buffer *xbuf)
630 int ret = __validate_tiledata_regs(xbuf);
701 struct xsave_buffer *xbuf;
704 xbuf = alloc_xbuf();
705 if (!xbuf)
709 * Load random data into 'xbuf' and then restore
712 load_rand_tiledata(xbuf);
718 * diverged from those recorded in 'xbuf'.
720 validate_tiledata_regs_same(xbuf);
722 /* Load new, random values into xbuf and registers */
723 load_rand_tiledata(xbuf);
737 free(xbuf);
857 struct xsave_buffer *xbuf;
860 xbuf = alloc_xbuf();
861 if (!xbuf)
866 iov.iov_base = xbuf;
874 if (!__compare_tiledata_state(stashed_xsave, xbuf))
881 load_rand_tiledata(xbuf);
884 &xbuf->bytes[xtiledata.xbuf_offset],
893 if (!__compare_tiledata_state(stashed_xsave, xbuf))