fenv.S raw

   1  #ifdef __riscv_flen
   2  
   3  .global feclearexcept
   4  .type feclearexcept, %function
   5  feclearexcept:
   6  	csrc fflags, a0
   7  	li a0, 0
   8  	ret
   9  
  10  .global feraiseexcept
  11  .type feraiseexcept, %function
  12  feraiseexcept:
  13  	csrs fflags, a0
  14  	li a0, 0
  15  	ret
  16  
  17  .global fetestexcept
  18  .type fetestexcept, %function
  19  fetestexcept:
  20  	frflags t0
  21  	and a0, t0, a0
  22  	ret
  23  
  24  .global fegetround
  25  .type fegetround, %function
  26  fegetround:
  27  	frrm a0
  28  	ret
  29  
  30  .global __fesetround
  31  .type __fesetround, %function
  32  __fesetround:
  33  	fsrm t0, a0
  34  	li a0, 0
  35  	ret
  36  
  37  .global fegetenv
  38  .type fegetenv, %function
  39  fegetenv:
  40  	frcsr t0
  41  	sw t0, 0(a0)
  42  	li a0, 0
  43  	ret
  44  
  45  .global fesetenv
  46  .type fesetenv, %function
  47  fesetenv:
  48  	li t2, -1
  49  	li t1, 0
  50  	beq a0, t2, 1f
  51  	lw t1, 0(a0)
  52  1:	fscsr t1
  53  	li a0, 0
  54  	ret
  55  
  56  #endif
  57