[PATCH 1/2] powerpc: Enable CPU feature sections for inline asm
Michael Neuling
mikey at neuling.org
Fri Apr 24 16:24:31 EST 2009
From: Milton Miller <miltonm at bga.com>
powerpc: Enable CPU feature sections for inline asm
This adds the ability to do CPU feature sections for inline asm.
Signed-off-by: Milton Miller <miltonm at bga.com>
Signed-off-by: Michael Neuling <mikey at neuling.org>
---
arch/powerpc/include/asm/feature-fixups.h | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
Index: linux-2.6-ozlabs/arch/powerpc/include/asm/feature-fixups.h
===================================================================
--- linux-2.6-ozlabs.orig/arch/powerpc/include/asm/feature-fixups.h
+++ linux-2.6-ozlabs/arch/powerpc/include/asm/feature-fixups.h
@@ -8,8 +8,6 @@
* 2 of the License, or (at your option) any later version.
*/
-#ifdef __ASSEMBLY__
-
/*
* Feature section common macros
*
@@ -23,10 +21,12 @@
/* 64 bits kernel, 32 bits code (ie. vdso32) */
#define FTR_ENTRY_LONG .llong
#define FTR_ENTRY_OFFSET .long 0xffffffff; .long
+#elif defined(CONFIG_PPC64)
+#define FTR_ENTRY_LONG .llong
+#define FTR_ENTRY_OFFSET .llong
#else
-/* 64 bit kernel 64 bit code, or 32 bit kernel 32 bit code */
-#define FTR_ENTRY_LONG PPC_LONG
-#define FTR_ENTRY_OFFSET PPC_LONG
+#define FTR_ENTRY_LONG .long
+#define FTR_ENTRY_OFFSET .long
#endif
#define START_FTR_SECTION(label) label##1:
@@ -141,6 +141,21 @@ label##5: \
#define ALT_FW_FTR_SECTION_END_IFCLR(msk) \
ALT_FW_FTR_SECTION_END_NESTED_IFCLR(msk, 97)
+#ifndef __ASSEMBLY__
+
+#define ASM_FTR_IF_X(string, estring, msk, val) \
+ stringify_in_c(BEGIN_FTR_SECTION) \
+ string "; " \
+ stringify_in_c(FTR_SECTION_ELSE) \
+ estring "; " \
+ stringify_in_c(ALT_FTR_SECTION_END((msk), (val)))
+
+#define ASM_FTR_IFSET(string, estring, msk) \
+ ASM_FTR_IF_X(string, estring, (msk), (msk))
+
+#define ASM_FTR_IFCLR(string, estring, msk) \
+ ASM_FTR_IF_X(string, estring, (msk), 0)
+
#endif /* __ASSEMBLY__ */
/* LWSYNC feature sections */
More information about the Linuxppc-dev
mailing list