mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 03:27:39 +00:00
42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
#if !defined _IMMINTRIN_H_INCLUDED
|
|
#error "Never use <movdirintrin.h> directly; include <x86intrin.h> instead."
|
|
#endif
|
|
|
|
#ifndef _MOVDIRINTRIN_H_INCLUDED
|
|
#define _MOVDIRINTRIN_H_INCLUDED
|
|
|
|
#ifndef __MOVDIRI__
|
|
#pragma GCC push_options
|
|
#pragma GCC target("movdiri")
|
|
#define __DISABLE_MOVDIRI__
|
|
#endif /* __MOVDIRI__ */
|
|
|
|
__funline void _directstoreu_u32(void *__P, unsigned int __A) {
|
|
__builtin_ia32_directstoreu_u32((unsigned int *)__P, __A);
|
|
}
|
|
#ifdef __x86_64__
|
|
__funline void _directstoreu_u64(void *__P, unsigned long long __A) {
|
|
__builtin_ia32_directstoreu_u64((unsigned long long *)__P, __A);
|
|
}
|
|
#endif
|
|
|
|
#ifdef __DISABLE_MOVDIRI__
|
|
#undef __DISABLE_MOVDIRI__
|
|
#pragma GCC pop_options
|
|
#endif /* __DISABLE_MOVDIRI__ */
|
|
|
|
#ifndef __MOVDIR64B__
|
|
#pragma GCC push_options
|
|
#pragma GCC target("movdir64b")
|
|
#define __DISABLE_MOVDIR64B__
|
|
#endif /* __MOVDIR64B__ */
|
|
|
|
__funline void _movdir64b(void *__P, const void *__Q) {
|
|
__builtin_ia32_movdir64b(__P, __Q);
|
|
}
|
|
|
|
#ifdef __DISABLE_MOVDIR64B__
|
|
#undef __DISABLE_MOVDIR64B__
|
|
#pragma GCC pop_options
|
|
#endif /* __DISABLE_MOVDIR64B__ */
|
|
#endif /* _MOVDIRINTRIN_H_INCLUDED. */
|