| ... | ... | @@ -1938,32 +1938,6 @@ __buildmov(__movsd, unsigned __LONG32, "d") |
| 1938 | 1938 | #define __INTRINSIC_DEFINED___movsd |
| 1939 | 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 | 1941 | #endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */ |
| 1968 | 1942 | |
| 1969 | 1943 | /* ***************************************************** */ |