aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2007-12-10 16:21:57 +0900
committerPaul Mundt <lethal@linux-sh.org>2008-01-28 13:19:00 +0900
commit98c4ecde9da14fafbcf1b6c025b08342a327e644 (patch)
tree62777e19b70830cd5ecaa7b92ac643033cb161bd
parenta9f1365e5e4963705f85a6381cbed74c5615dbac (diff)
sh: Provide the FPSCR init through AT_FPUCW.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--include/asm-sh/auxvec.h6
-rw-r--r--include/asm-sh/elf.h11
-rw-r--r--include/asm-sh/system.h2
3 files changed, 17 insertions, 2 deletions
diff --git a/include/asm-sh/auxvec.h b/include/asm-sh/auxvec.h
index 4069858f813..a6b9d4f4859 100644
--- a/include/asm-sh/auxvec.h
+++ b/include/asm-sh/auxvec.h
@@ -6,6 +6,12 @@
* for more of them.
*/
+/*
+ * This entry gives some information about the FPU initialization
+ * performed by the kernel.
+ */
+#define AT_FPUCW 18 /* Used FPU control word. */
+
#ifdef CONFIG_VSYSCALL
/*
* Only define this in the vsyscall case, the entry point to
diff --git a/include/asm-sh/elf.h b/include/asm-sh/elf.h
index 9a95f8cb2e1..e00a58cb476 100644
--- a/include/asm-sh/elf.h
+++ b/include/asm-sh/elf.h
@@ -169,13 +169,22 @@ extern void __kernel_vsyscall;
#define VSYSCALL_AUX_ENT
#endif /* CONFIG_VSYSCALL */
+#ifdef CONFIG_SH_FPU
+#define FPU_AUX_ENT NEW_AUX_ENT(AT_FPUCW, FPSCR_INIT)
+#else
+#define FPU_AUX_ENT
+#endif
+
extern int l1i_cache_shape, l1d_cache_shape, l2_cache_shape;
/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
#define ARCH_DLINFO \
do { \
+ /* Optional FPU initialization */ \
+ FPU_AUX_ENT; \
+ \
/* Optional vsyscall entry */ \
- VSYSCALL_AUX_ENT \
+ VSYSCALL_AUX_ENT; \
\
/* Cache desc */ \
NEW_AUX_ENT(AT_L1I_CACHESHAPE, l1i_cache_shape); \
diff --git a/include/asm-sh/system.h b/include/asm-sh/system.h
index 84592555ba2..772cd1a0a67 100644
--- a/include/asm-sh/system.h
+++ b/include/asm-sh/system.h
@@ -12,7 +12,7 @@
#include <asm/types.h>
#include <asm/ptrace.h>
-#define AT_VECTOR_SIZE_ARCH 4 /* entries in ARCH_DLINFO */
+#define AT_VECTOR_SIZE_ARCH 5 /* entries in ARCH_DLINFO */
#if defined(CONFIG_CPU_SH4A) || defined(CONFIG_CPU_SH5)
#define __icbi() \