clang
16.0.0git
lib
Headers
xsaveintrin.h
Go to the documentation of this file.
1
/*===---- xsaveintrin.h - XSAVE intrinsic ----------------------------------===
2
*
3
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
* See https://llvm.org/LICENSE.txt for license information.
5
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
*
7
*===-----------------------------------------------------------------------===
8
*/
9
10
#ifndef __IMMINTRIN_H
11
#error "Never use <xsaveintrin.h> directly; include <immintrin.h> instead."
12
#endif
13
14
#ifndef __XSAVEINTRIN_H
15
#define __XSAVEINTRIN_H
16
17
#ifdef _MSC_VER
18
#define _XCR_XFEATURE_ENABLED_MASK 0
19
#endif
20
21
/* Define the default attributes for the functions in this file. */
22
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xsave")))
23
24
static
__inline__
void
__DEFAULT_FN_ATTRS
25
_xsave
(
void
*
__p
,
unsigned
long
long
__m) {
26
__builtin_ia32_xsave(
__p
, __m);
27
}
28
29
static
__inline__
void
__DEFAULT_FN_ATTRS
30
_xrstor
(
void
*
__p
,
unsigned
long
long
__m) {
31
__builtin_ia32_xrstor(
__p
, __m);
32
}
33
34
#ifndef _MSC_VER
35
#define _xgetbv(A) __builtin_ia32_xgetbv((long long)(A))
36
#define _xsetbv(A, B) __builtin_ia32_xsetbv((unsigned int)(A), (unsigned long long)(B))
37
#else
38
#ifdef __cplusplus
39
extern
"C"
{
40
#endif
41
unsigned
__int64 __cdecl
_xgetbv
(
unsigned
int
);
42
void
__cdecl
_xsetbv
(
unsigned
int
,
unsigned
__int64);
43
#ifdef __cplusplus
44
}
45
#endif
46
#endif
/* _MSC_VER */
47
48
#ifdef __x86_64__
49
static
__inline__
void
__DEFAULT_FN_ATTRS
50
_xsave64(
void
*
__p
,
unsigned
long
long
__m) {
51
__builtin_ia32_xsave64(
__p
, __m);
52
}
53
54
static
__inline__
void
__DEFAULT_FN_ATTRS
55
_xrstor64(
void
*
__p
,
unsigned
long
long
__m) {
56
__builtin_ia32_xrstor64(
__p
, __m);
57
}
58
59
#endif
60
61
#undef __DEFAULT_FN_ATTRS
62
63
#endif
__DEFAULT_FN_ATTRS
#define __DEFAULT_FN_ATTRS
Definition:
xsaveintrin.h:22
_xgetbv
#define _xgetbv(A)
Definition:
xsaveintrin.h:35
_xsave
static __inline__ void __DEFAULT_FN_ATTRS _xsave(void *__p, unsigned long long __m)
Definition:
xsaveintrin.h:25
_xrstor
static __inline__ void __DEFAULT_FN_ATTRS _xrstor(void *__p, unsigned long long __m)
Definition:
xsaveintrin.h:30
_xsetbv
#define _xsetbv(A, B)
Definition:
xsaveintrin.h:36
__p
static __inline unsigned char unsigned int unsigned int unsigned int * __p
Definition:
adxintrin.h:24
Generated on Tue Aug 16 2022 16:59:57 for clang by
1.8.17