File tree Expand file tree Collapse file tree 3 files changed +17
-1
lines changed
Expand file tree Collapse file tree 3 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -188,6 +188,15 @@ config SMP
188188
189189 If you don't know what to do here, say N.
190190
191+ config FPU
192+ bool "FPU support"
193+ default y
194+ help
195+ Say N here if you want to disable all floating-point related procedures
196+ in the kernel and reduce binary size.
197+
198+ If you don't know what to do here, say Y.
199+
191200source "kernel/Kconfig.hz"
192201
193202config OPENRISC_NO_SPR_SR_DSX
Original file line number Diff line number Diff line change @@ -88,6 +88,7 @@ static int genregs_set(struct task_struct *target,
8888 return ret ;
8989}
9090
91+ #ifdef CONFIG_FPU
9192/*
9293 * As OpenRISC shares GPRs and floating point registers we don't need to export
9394 * the floating point registers again. So here we only export the fpcsr special
@@ -115,13 +116,16 @@ static int fpregs_set(struct task_struct *target,
115116 & regs -> fpcsr , 0 , 4 );
116117 return ret ;
117118}
119+ #endif
118120
119121/*
120122 * Define the register sets available on OpenRISC under Linux
121123 */
122124enum or1k_regset {
123125 REGSET_GENERAL ,
126+ #ifdef CONFIG_FPU
124127 REGSET_FPU ,
128+ #endif
125129};
126130
127131static const struct user_regset or1k_regsets [] = {
@@ -133,6 +137,7 @@ static const struct user_regset or1k_regsets[] = {
133137 .regset_get = genregs_get ,
134138 .set = genregs_set ,
135139 },
140+ #ifdef CONFIG_FPU
136141 [REGSET_FPU ] = {
137142 .core_note_type = NT_PRFPREG ,
138143 .n = sizeof (struct __or1k_fpu_state ) / sizeof (long ),
@@ -141,6 +146,7 @@ static const struct user_regset or1k_regsets[] = {
141146 .regset_get = fpregs_get ,
142147 .set = fpregs_set ,
143148 },
149+ #endif
144150};
145151
146152static const struct user_regset_view user_or1k_native_view = {
Original file line number Diff line number Diff line change @@ -182,6 +182,7 @@ asmlinkage void do_fpe_trap(struct pt_regs *regs, unsigned long address)
182182{
183183 if (user_mode (regs )) {
184184 int code = FPE_FLTUNK ;
185+ #ifdef CONFIG_FPU
185186 unsigned long fpcsr = regs -> fpcsr ;
186187
187188 if (fpcsr & SPR_FPCSR_IVF )
@@ -197,7 +198,7 @@ asmlinkage void do_fpe_trap(struct pt_regs *regs, unsigned long address)
197198
198199 /* Clear all flags */
199200 regs -> fpcsr &= ~SPR_FPCSR_ALLF ;
200-
201+ #endif
201202 force_sig_fault (SIGFPE , code , (void __user * )regs -> pc );
202203 } else {
203204 pr_emerg ("KERNEL: Illegal fpe exception 0x%.8lx\n" , regs -> pc );
You can’t perform that action at this time.
0 commit comments