diff options
| author | Len Brown <[email protected]> | 2006-01-27 17:18:29 -0500 | 
|---|---|---|
| committer | Len Brown <[email protected]> | 2006-01-27 17:18:29 -0500 | 
| commit | 292dd876ee765c478b27c93cc51e93a558ed58bf (patch) | |
| tree | 5b740e93253295baee2a9c414a6c66d03d44a9ef /include/linux/compiler-gcc.h | |
| parent | d4ec6c7cc9a15a7a529719bc3b84f46812f9842e (diff) | |
| parent | 9fdb62af92c741addbea15545f214a6e89460865 (diff) | |
Pull release into acpica branch
Diffstat (limited to 'include/linux/compiler-gcc.h')
| -rw-r--r-- | include/linux/compiler-gcc.h | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 152734055403..6e1c44a935d4 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h @@ -11,7 +11,22 @@  /* This macro obfuscates arithmetic on a variable address so that gcc     shouldn't recognize the original var, and make assumptions about it */ +/* + * Versions of the ppc64 compiler before 4.1 had a bug where use of + * RELOC_HIDE could trash r30. The bug can be worked around by changing + * the inline assembly constraint from =g to =r, in this particular + * case either is valid. + */  #define RELOC_HIDE(ptr, off)					\    ({ unsigned long __ptr;					\ -    __asm__ ("" : "=g"(__ptr) : "0"(ptr));		\ +    __asm__ ("" : "=r"(__ptr) : "0"(ptr));		\      (typeof(ptr)) (__ptr + (off)); }) + + +#define inline		inline		__attribute__((always_inline)) +#define __inline__	__inline__	__attribute__((always_inline)) +#define __inline	__inline	__attribute__((always_inline)) +#define __deprecated			__attribute__((deprecated)) +#define  noinline			__attribute__((noinline)) +#define __attribute_pure__		__attribute__((pure)) +#define __attribute_const__		__attribute__((__const__)) |