| ... | @@ -1938,32 +1938,6 @@ __buildmov(__movsd, unsigned __LONG32, "d") | ... | @@ -1938,32 +1938,6 @@ __buildmov(__movsd, unsigned __LONG32, "d") |
| 1938 | #define __INTRINSIC_DEFINED___movsd | 1938 | #define __INTRINSIC_DEFINED___movsd |
| 1939 | #endif /* __INTRINSIC_PROLOG */ | 1939 | #endif /* __INTRINSIC_PROLOG */ |
| 1940 | | 1940 | |
| 1941 | #if !defined(__GNUC__) || __GNUC__ < 8 /* GCC 8 has already defined _xgetbv */ | | |
| 1942 | /* NOTE: This should be in immintrin.h */ | | |
| 1943 | #if __INTRINSIC_PROLOG(_xgetbv) | | |
| 1944 | unsigned __int64 _xgetbv(unsigned int); | | |
| 1945 | #if !__has_builtin(_xgetbv) | | |
| 1946 | __INTRINSICS_USEINLINE | | |
| 1947 | unsigned __int64 _xgetbv(unsigned int index) | | |
| 1948 | { | | |
| 1949 | #if defined(__x86_64__) || defined(_AMD64_) | | |
| 1950 | unsigned __int64 val1, val2; | | |
| 1951 | #else | | |
| 1952 | unsigned __LONG32 val1, val2; | | |
| 1953 | #endif /* defined(__x86_64__) || defined(_AMD64_) */ | | |
| 1954 | | | |
| 1955 | __asm__ __volatile__( | | |
| 1956 | "xgetbv" | | |
| 1957 | : "=a" (val1), "=d" (val2) | | |
| 1958 | : "c" (index)); | | |
| 1959 | | | |
| 1960 | return (((unsigned __int64)val2) << 32) | val1; | | |
| 1961 | } | | |
| 1962 | #endif | | |
| 1963 | #define __INTRINSIC_DEFINED__xgetbv | | |
| 1964 | #endif /* __INTRINSIC_PROLOG */ | | |
| 1965 | #endif /* __GNUC__ < 8 */ | | |
| 1966 | | | |
| 1967 | #endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */ | 1941 | #endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */ |
| 1968 | | 1942 | |
| 1969 | /* ***************************************************** */ | 1943 | /* ***************************************************** */ |