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