Mercurial > hg > CbC > CbC_gcc
diff gcc/config/i386/mm3dnow.h @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | a06113de4d67 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/gcc/config/i386/mm3dnow.h Sun Aug 21 07:07:55 2011 +0900 +++ b/gcc/config/i386/mm3dnow.h Fri Oct 27 22:46:09 2017 +0900 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004, 2007, 2008, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2004-2017 Free Software Foundation, Inc. This file is part of GCC. @@ -27,9 +27,18 @@ #ifndef _MM3DNOW_H_INCLUDED #define _MM3DNOW_H_INCLUDED -#ifdef __3dNOW__ +#include <mmintrin.h> +#include <prfchwintrin.h> -#include <mmintrin.h> +#if defined __x86_64__ && !defined __SSE__ || !defined __3dNOW__ +#pragma GCC push_options +#ifdef __x86_64__ +#pragma GCC target("sse,3dnow") +#else +#pragma GCC target("3dnow") +#endif +#define __DISABLE_3dNOW__ +#endif /* __3dNOW__ */ extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _m_femms (void) @@ -157,12 +166,6 @@ __builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */); } -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_prefetchw (void *__P) -{ - __builtin_prefetch (__P, 1, 3 /* _MM_HINT_T0 */); -} - extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _m_from_float (float __A) { @@ -177,7 +180,20 @@ return __tmp.a[0]; } -#ifdef __3dNOW_A__ +#ifdef __DISABLE_3dNOW__ +#undef __DISABLE_3dNOW__ +#pragma GCC pop_options +#endif /* __DISABLE_3dNOW__ */ + +#if defined __x86_64__ && !defined __SSE__ || !defined __3dNOW_A__ +#pragma GCC push_options +#ifdef __x86_64__ +#pragma GCC target("sse,3dnowa") +#else +#pragma GCC target("3dnowa") +#endif +#define __DISABLE_3dNOW_A__ +#endif /* __3dNOW_A__ */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _m_pf2iw (__m64 __A) @@ -209,7 +225,9 @@ return (__m64)__builtin_ia32_pswapdsf ((__v2sf)__A); } -#endif /* __3dNOW_A__ */ -#endif /* __3dNOW__ */ +#ifdef __DISABLE_3dNOW_A__ +#undef __DISABLE_3dNOW_A__ +#pragma GCC pop_options +#endif /* __DISABLE_3dNOW_A__ */ #endif /* _MM3DNOW_H_INCLUDED */