浏览代码

sh: Provide the FPSCR init through AT_FPUCW.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt 17 年之前
父节点
当前提交
98c4ecde9d
共有 3 个文件被更改,包括 17 次插入2 次删除
  1. 6 0
      include/asm-sh/auxvec.h
  2. 10 1
      include/asm-sh/elf.h
  3. 1 1
      include/asm-sh/system.h

+ 6 - 0
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

+ 10 - 1
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);	\

+ 1 - 1
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()			\