mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	The Andes FPU coprocessor does not support denormalized number handling. According to the specification, FPU generates a denorm input exception that requires the kernel to deal with this instrution operation when it encounters denormalized operands. Hence an nds32 FPU ISA emulator in the kernel is required to meet requirement. Signed-off-by: Vincent Chen <vincentc@andestech.com> Signed-off-by: Nickhu <nickhu@andestech.com> Acked-by: Greentime Hu <greentime@andestech.com> Signed-off-by: Greentime Hu <greentime@andestech.com>
		
			
				
	
	
		
			23 lines
		
	
	
	
		
			434 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			434 B
		
	
	
	
		
			C
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0
 | 
						|
// Copyright (C) 2005-2018 Andes Technology Corporation
 | 
						|
#include <linux/uaccess.h>
 | 
						|
 | 
						|
#include <asm/sfp-machine.h>
 | 
						|
#include <math-emu/soft-fp.h>
 | 
						|
#include <math-emu/single.h>
 | 
						|
void fmuls(void *ft, void *fa, void *fb)
 | 
						|
{
 | 
						|
	FP_DECL_S(A);
 | 
						|
	FP_DECL_S(B);
 | 
						|
	FP_DECL_S(R);
 | 
						|
	FP_DECL_EX;
 | 
						|
 | 
						|
	FP_UNPACK_SP(A, fa);
 | 
						|
	FP_UNPACK_SP(B, fb);
 | 
						|
 | 
						|
	FP_MUL_S(R, A, B);
 | 
						|
 | 
						|
	FP_PACK_SP(ft, R);
 | 
						|
 | 
						|
	__FPU_FPCSR |= FP_CUR_EXCEPTIONS;
 | 
						|
}
 |