Fix exception behavior of fmin/fmax
This commit is contained in:
		@@ -103,10 +103,10 @@ class FPUDecoder extends Module
 | 
			
		||||
          FSGNJ_D  -> List(FCMD_SGNJ,   N,Y,Y,Y,N,N,N,N,N,Y,N,N),
 | 
			
		||||
          FSGNJN_D -> List(FCMD_SGNJ,   N,Y,Y,Y,N,N,N,N,N,Y,N,N),
 | 
			
		||||
          FSGNJX_D -> List(FCMD_SGNJ,   N,Y,Y,Y,N,N,N,N,N,Y,N,N),
 | 
			
		||||
          FMIN_S   -> List(FCMD_MINMAX, N,Y,Y,Y,N,N,Y,N,Y,Y,N,N),
 | 
			
		||||
          FMAX_S   -> List(FCMD_MINMAX, N,Y,Y,Y,N,N,Y,N,Y,Y,N,N),
 | 
			
		||||
          FMIN_D   -> List(FCMD_MINMAX, N,Y,Y,Y,N,N,N,N,Y,Y,N,N),
 | 
			
		||||
          FMAX_D   -> List(FCMD_MINMAX, N,Y,Y,Y,N,N,N,N,Y,Y,N,N),
 | 
			
		||||
          FMIN_S   -> List(FCMD_MINMAX, N,Y,Y,Y,N,N,Y,N,N,Y,N,N),
 | 
			
		||||
          FMAX_S   -> List(FCMD_MINMAX, N,Y,Y,Y,N,N,Y,N,N,Y,N,N),
 | 
			
		||||
          FMIN_D   -> List(FCMD_MINMAX, N,Y,Y,Y,N,N,N,N,N,Y,N,N),
 | 
			
		||||
          FMAX_D   -> List(FCMD_MINMAX, N,Y,Y,Y,N,N,N,N,N,Y,N,N),
 | 
			
		||||
          FADD_S   -> List(FCMD_ADD,    N,Y,Y,Y,N,Y,Y,N,N,N,Y,Y),
 | 
			
		||||
          FSUB_S   -> List(FCMD_SUB,    N,Y,Y,Y,N,Y,Y,N,N,N,Y,Y),
 | 
			
		||||
          FMUL_S   -> List(FCMD_MUL,    N,Y,Y,Y,N,N,Y,N,N,N,Y,Y),
 | 
			
		||||
@@ -406,7 +406,7 @@ class FPU(conf: FPUConfig) extends Module
 | 
			
		||||
  dfma.io.in.bits := req
 | 
			
		||||
 | 
			
		||||
  val fpiu = Module(new FPToInt)
 | 
			
		||||
  fpiu.io.in.valid := ex_reg_valid && ex_ctrl.toint
 | 
			
		||||
  fpiu.io.in.valid := ex_reg_valid && (ex_ctrl.toint || ex_ctrl.cmd === FCMD_MINMAX)
 | 
			
		||||
  fpiu.io.in.bits := req
 | 
			
		||||
  io.dpath.store_data := fpiu.io.out.bits.store
 | 
			
		||||
  io.dpath.toint_data := fpiu.io.out.bits.toint
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user