forked from mirrors/linux
		
	powerpc/8xx: Remove 8xx specific "minimal FPU emulation"
This is duplicated code from math-emu and implements such a small subset of the FPU (load/stores/fmr) that it's essentially pointless nowdays. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
		
							parent
							
								
									4e63f8edfe
								
							
						
					
					
						commit
						968219fa33
					
				
					 2 changed files with 1 additions and 32 deletions
				
			
		|  | @ -319,17 +319,6 @@ config PPC_TRANSACTIONAL_MEM | ||||||
|        ---help--- |        ---help--- | ||||||
|          Support user-mode Transactional Memory on POWERPC. |          Support user-mode Transactional Memory on POWERPC. | ||||||
| 
 | 
 | ||||||
| config 8XX_MINIMAL_FPEMU |  | ||||||
| 	bool "Minimal math emulation for 8xx" |  | ||||||
| 	depends on 8xx && !MATH_EMULATION |  | ||||||
| 	help |  | ||||||
| 	  Older arch/ppc kernels still emulated a few floating point |  | ||||||
| 	  instructions such as load and store, even when full math |  | ||||||
| 	  emulation is disabled.  Say "Y" here if you want to preserve |  | ||||||
| 	  this behavior. |  | ||||||
| 
 |  | ||||||
| 	  It is recommended that you build a soft-float userspace instead. |  | ||||||
| 
 |  | ||||||
| config IOMMU_HELPER | config IOMMU_HELPER | ||||||
| 	def_bool PPC64 | 	def_bool PPC64 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1396,8 +1396,7 @@ void performance_monitor_exception(struct pt_regs *regs) | ||||||
| void SoftwareEmulation(struct pt_regs *regs) | void SoftwareEmulation(struct pt_regs *regs) | ||||||
| { | { | ||||||
| 	extern int do_mathemu(struct pt_regs *); | 	extern int do_mathemu(struct pt_regs *); | ||||||
| 	extern int Soft_emulate_8xx(struct pt_regs *); | #if defined(CONFIG_MATH_EMULATION) | ||||||
| #if defined(CONFIG_MATH_EMULATION) || defined(CONFIG_8XX_MINIMAL_FPEMU) |  | ||||||
| 	int errcode; | 	int errcode; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | @ -1430,23 +1429,6 @@ void SoftwareEmulation(struct pt_regs *regs) | ||||||
| 		_exception(SIGILL, regs, ILL_ILLOPC, regs->nip); | 		_exception(SIGILL, regs, ILL_ILLOPC, regs->nip); | ||||||
| 		return; | 		return; | ||||||
| 	} | 	} | ||||||
| 
 |  | ||||||
| #elif defined(CONFIG_8XX_MINIMAL_FPEMU) |  | ||||||
| 	errcode = Soft_emulate_8xx(regs); |  | ||||||
| 	if (errcode >= 0) |  | ||||||
| 		PPC_WARN_EMULATED(8xx, regs); |  | ||||||
| 
 |  | ||||||
| 	switch (errcode) { |  | ||||||
| 	case 0: |  | ||||||
| 		emulate_single_step(regs); |  | ||||||
| 		return; |  | ||||||
| 	case 1: |  | ||||||
| 		_exception(SIGILL, regs, ILL_ILLOPC, regs->nip); |  | ||||||
| 		return; |  | ||||||
| 	case -EFAULT: |  | ||||||
| 		_exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip); |  | ||||||
| 		return; |  | ||||||
| 	} |  | ||||||
| #else | #else | ||||||
| 	_exception(SIGILL, regs, ILL_ILLOPC, regs->nip); | 	_exception(SIGILL, regs, ILL_ILLOPC, regs->nip); | ||||||
| #endif | #endif | ||||||
|  | @ -1796,8 +1778,6 @@ struct ppc_emulated ppc_emulated = { | ||||||
| 	WARN_EMULATED_SETUP(unaligned), | 	WARN_EMULATED_SETUP(unaligned), | ||||||
| #ifdef CONFIG_MATH_EMULATION | #ifdef CONFIG_MATH_EMULATION | ||||||
| 	WARN_EMULATED_SETUP(math), | 	WARN_EMULATED_SETUP(math), | ||||||
| #elif defined(CONFIG_8XX_MINIMAL_FPEMU) |  | ||||||
| 	WARN_EMULATED_SETUP(8xx), |  | ||||||
| #endif | #endif | ||||||
| #ifdef CONFIG_VSX | #ifdef CONFIG_VSX | ||||||
| 	WARN_EMULATED_SETUP(vsx), | 	WARN_EMULATED_SETUP(vsx), | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Benjamin Herrenschmidt
						Benjamin Herrenschmidt