github.com/afumu/libc@v0.0.6/musl/src/fenv/arm/fenv-hf.S (about)

     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