1*fb8ffd7cSMasahiro Yamada #ifndef __LINUX_COMPILER_H 2*fb8ffd7cSMasahiro Yamada #error "Please don't include <linux/compiler-intel.h> directly, include <linux/compiler.h> instead." 3*fb8ffd7cSMasahiro Yamada #endif 4*fb8ffd7cSMasahiro Yamada 5*fb8ffd7cSMasahiro Yamada #ifdef __ECC 6*fb8ffd7cSMasahiro Yamada 7*fb8ffd7cSMasahiro Yamada /* Some compiler specific definitions are overwritten here 8*fb8ffd7cSMasahiro Yamada * for Intel ECC compiler 9*fb8ffd7cSMasahiro Yamada */ 10*fb8ffd7cSMasahiro Yamada 11*fb8ffd7cSMasahiro Yamada #include <asm/intrinsics.h> 12*fb8ffd7cSMasahiro Yamada 13*fb8ffd7cSMasahiro Yamada /* Intel ECC compiler doesn't support gcc specific asm stmts. 14*fb8ffd7cSMasahiro Yamada * It uses intrinsics to do the equivalent things. 15*fb8ffd7cSMasahiro Yamada */ 16*fb8ffd7cSMasahiro Yamada #undef RELOC_HIDE 17*fb8ffd7cSMasahiro Yamada #undef OPTIMIZER_HIDE_VAR 18*fb8ffd7cSMasahiro Yamada 19*fb8ffd7cSMasahiro Yamada #define RELOC_HIDE(ptr, off) \ 20*fb8ffd7cSMasahiro Yamada ({ unsigned long __ptr; \ 21*fb8ffd7cSMasahiro Yamada __ptr = (unsigned long) (ptr); \ 22*fb8ffd7cSMasahiro Yamada (typeof(ptr)) (__ptr + (off)); }) 23*fb8ffd7cSMasahiro Yamada 24*fb8ffd7cSMasahiro Yamada /* This should act as an optimization barrier on var. 25*fb8ffd7cSMasahiro Yamada * Given that this compiler does not have inline assembly, a compiler barrier 26*fb8ffd7cSMasahiro Yamada * is the best we can do. 27*fb8ffd7cSMasahiro Yamada */ 28*fb8ffd7cSMasahiro Yamada #define OPTIMIZER_HIDE_VAR(var) barrier() 29*fb8ffd7cSMasahiro Yamada 30*fb8ffd7cSMasahiro Yamada /* Intel ECC compiler doesn't support __builtin_types_compatible_p() */ 31*fb8ffd7cSMasahiro Yamada #define __must_be_array(a) 0 32*fb8ffd7cSMasahiro Yamada 33*fb8ffd7cSMasahiro Yamada #endif 34*fb8ffd7cSMasahiro Yamada 35*fb8ffd7cSMasahiro Yamada #ifndef __HAVE_BUILTIN_BSWAP16__ 36*fb8ffd7cSMasahiro Yamada /* icc has this, but it's called _bswap16 */ 37*fb8ffd7cSMasahiro Yamada #define __HAVE_BUILTIN_BSWAP16__ 38*fb8ffd7cSMasahiro Yamada #define __builtin_bswap16 _bswap16 39*fb8ffd7cSMasahiro Yamada #endif 40*fb8ffd7cSMasahiro Yamada 41