summaryrefslogtreecommitdiffstats
path: root/include/asm-x86/linkage.h
diff options
context:
space:
mode:
authorHarvey Harrison <harvey.harrison@gmail.com>2008-01-30 13:31:07 +0100
committerIngo Molnar <mingo@elte.hu>2008-01-30 13:31:07 +0100
commit82f74e7159749cc511ebf5954a7b9ea6ad634949 (patch)
tree38429c6ca32d10449f536c0105843c1a1183103e /include/asm-x86/linkage.h
parentx86: integrate 32-bit and 64-bit code in msr.h (diff)
downloadlinux-82f74e7159749cc511ebf5954a7b9ea6ad634949.tar.xz
linux-82f74e7159749cc511ebf5954a7b9ea6ad634949.zip
x86: unify include/asm-x86/linkage_[32|64].h
Remove definitions of FASTCALL/fastcall from linkage_32 as compiled with -regparm=3 by default since 2.6.20 and should no longer be needed. CONFIG X86_64 and CONFIG_X86_ALIGNMENT_16 are mutually exclusive as found in Kconfig.cpu so it should be fine to test them separately. Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/linkage.h')
-rw-r--r--include/asm-x86/linkage.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/include/asm-x86/linkage.h b/include/asm-x86/linkage.h
index 94b257fa8701..5a4c95905420 100644
--- a/include/asm-x86/linkage.h
+++ b/include/asm-x86/linkage.h
@@ -1,5 +1,20 @@
+#ifndef __ASM_LINKAGE_H
+#define __ASM_LINKAGE_H
+
+#ifdef CONFIG_X86_64
+#define __ALIGN .p2align 4,,15
+#define __ALIGN_STR ".p2align 4,,15"
+#endif
+
#ifdef CONFIG_X86_32
-# include "linkage_32.h"
-#else
-# include "linkage_64.h"
+#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
+#define prevent_tail_call(ret) __asm__ ("" : "=r" (ret) : "0" (ret))
+#endif
+
+#ifdef CONFIG_X86_ALIGNMENT_16
+#define __ALIGN .align 16,0x90
+#define __ALIGN_STR ".align 16,0x90"
+#endif
+
#endif
+