fenv-hf.S raw

   1  #if __ARM_PCS_VFP
   2  
   3  .syntax unified
   4  .fpu vfp
   5  
   6  .global fegetround
   7  .type fegetround,%function
   8  fegetround:
   9  	fmrx r0, fpscr
  10  	and r0, r0, #0xc00000
  11  	bx lr
  12  
  13  .global __fesetround
  14  .hidden __fesetround
  15  .type __fesetround,%function
  16  __fesetround:
  17  	fmrx r3, fpscr
  18  	bic r3, r3, #0xc00000
  19  	orr r3, r3, r0
  20  	fmxr fpscr, r3
  21  	mov r0, #0
  22  	bx lr
  23  
  24  .global fetestexcept
  25  .type fetestexcept,%function
  26  fetestexcept:
  27  	and r0, r0, #0x1f
  28  	fmrx r3, fpscr
  29  	and r0, r0, r3
  30  	bx lr
  31  
  32  .global feclearexcept
  33  .type feclearexcept,%function
  34  feclearexcept:
  35  	and r0, r0, #0x1f
  36  	fmrx r3, fpscr
  37  	bic r3, r3, r0
  38  	fmxr fpscr, r3
  39  	mov r0, #0
  40  	bx lr
  41  
  42  .global feraiseexcept
  43  .type feraiseexcept,%function
  44  feraiseexcept:
  45  	and r0, r0, #0x1f
  46  	fmrx r3, fpscr
  47  	orr r3, r3, r0
  48  	fmxr fpscr, r3
  49  	mov r0, #0
  50  	bx lr
  51  
  52  .global fegetenv
  53  .type fegetenv,%function
  54  fegetenv:
  55  	fmrx r3, fpscr
  56  	str r3, [r0]
  57  	mov r0, #0
  58  	bx lr
  59  
  60  .global fesetenv
  61  .type fesetenv,%function
  62  fesetenv:
  63  	cmn r0, #1
  64  	moveq r3, #0
  65  	ldrne r3, [r0]
  66  	fmxr fpscr, r3
  67  	mov r0, #0
  68  	bx lr
  69  
  70  #endif
  71