target-mips: silence NaNs for cvt.s.d and cvt.d.s
cvt.s.d and cvt.d.s are FP operations and thus need to convert input sNaN into corresponding qNaN. Explicitely use the floatXX_maybe_silence_nan functions for that as the floatXX_to_floatXX functions do not do that. Cc: Leon Alrae <leon.alrae@imgtec.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Leon Alrae <leon.alrae@imgtec.com> Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
This commit is contained in:
		
							parent
							
								
									889912999d
								
							
						
					
					
						commit
						1aa56f6ee7
					
				@ -2545,6 +2545,7 @@ uint64_t helper_float_cvtd_s(CPUMIPSState *env, uint32_t fst0)
 | 
				
			|||||||
    uint64_t fdt2;
 | 
					    uint64_t fdt2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fdt2 = float32_to_float64(fst0, &env->active_fpu.fp_status);
 | 
					    fdt2 = float32_to_float64(fst0, &env->active_fpu.fp_status);
 | 
				
			||||||
 | 
					    fdt2 = float64_maybe_silence_nan(fdt2);
 | 
				
			||||||
    update_fcr31(env, GETPC());
 | 
					    update_fcr31(env, GETPC());
 | 
				
			||||||
    return fdt2;
 | 
					    return fdt2;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2634,6 +2635,7 @@ uint32_t helper_float_cvts_d(CPUMIPSState *env, uint64_t fdt0)
 | 
				
			|||||||
    uint32_t fst2;
 | 
					    uint32_t fst2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fst2 = float64_to_float32(fdt0, &env->active_fpu.fp_status);
 | 
					    fst2 = float64_to_float32(fdt0, &env->active_fpu.fp_status);
 | 
				
			||||||
 | 
					    fst2 = float32_maybe_silence_nan(fst2);
 | 
				
			||||||
    update_fcr31(env, GETPC());
 | 
					    update_fcr31(env, GETPC());
 | 
				
			||||||
    return fst2;
 | 
					    return fst2;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user