MIPS: traps: Fix inline asm ctc1 missing .set hardfloat
Commit842dfc11ea("MIPS: Fix build with binutils 2.24.51+") in v3.18 enabled -msoft-float and sprinkled ".set hardfloat" where necessary to use FP instructions. However it missed enable_restore_fp_context() which since v3.17 does a ctc1 with inline assembly, causing the following assembler errors on Mentor's 2014.05 toolchain: {standard input}: Assembler messages: {standard input}:2913: Error: opcode not supported on this processor: mips32r2 (mips32r2) `ctc1 $2,$31' scripts/Makefile.build:257: recipe for target 'arch/mips/kernel/traps.o' failed Fix that to use the new write_32bit_cp1_register() macro so that ".set hardfloat" is automatically added when -msoft-float is in use. Fixes842dfc11ea("MIPS: Fix build with binutils 2.24.51+") Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Paul Burton <paul.burton@imgtec.com> Cc: linux-mips@linux-mips.org Cc: <stable@vger.kernel.org> # 3.18+, depends on "MIPS: mipsregs.h: Add write_32bit_cp1_register()" Patchwork: https://patchwork.linux-mips.org/patch/9173/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
		
					parent
					
						
							
								5e32033e14
							
						
					
				
			
			
				commit
				
					
						d76e9b9fc5
					
				
			
		
					 1 changed files with 2 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -1231,7 +1231,8 @@ static int enable_restore_fp_context(int msa)
 | 
			
		|||
 | 
			
		||||
		/* Restore the scalar FP control & status register */
 | 
			
		||||
		if (!was_fpu_owner)
 | 
			
		||||
			asm volatile("ctc1 %0, $31" : : "r"(current->thread.fpu.fcr31));
 | 
			
		||||
			write_32bit_cp1_register(CP1_STATUS,
 | 
			
		||||
						 current->thread.fpu.fcr31);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
out:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue