Changeset 96216 in vbox for trunk/src/VBox/Runtime/common/math
- Timestamp:
- Aug 15, 2022 11:12:09 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 153027
- Location:
- trunk/src/VBox/Runtime/common/math
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/math/fabs.asm
r96014 r96216 25 25 ; 26 26 27 28 %define RT_ASM_WITH_SEH64 27 29 %include "iprt/asmdefs.mac" 30 28 31 29 32 BEGINCODE … … 34 37 ; @param rd 32-bit: [ebp + 8] 64-bit: xmm0 35 38 RT_NOCRT_BEGINPROC fabs 36 push xBP 37 mov xBP, xSP 39 push xBP 40 SEH64_PUSH_xBP 41 mov xBP, xSP 42 SEH64_SET_FRAME_xBP 0 43 SEH64_END_PROLOGUE 38 44 39 45 %ifdef RT_ARCH_AMD64 40 sub xSP, 10h 41 42 movsd [xSP], xmm0 43 fld qword [xSP] 44 45 fabs 46 47 fstp qword [xSP] 48 movsd xmm0, [xSP] 49 46 andps xmm0, [g_r64ClearSignMask xWrtRIP] 50 47 %else 51 fld qword [xBP + xCB*2]52 fabs48 fld qword [xBP + xCB*2] ; This turns SNaN into QNaN. 49 fabs 53 50 %endif 54 51 55 leave56 ret52 leave 53 ret 57 54 ENDPROC RT_NOCRT(fabs) 58 55 56 ALIGNCODE(16) 57 g_r64ClearSignMask: 58 dd 0ffffffffh 59 dd 07fffffffh 60 61 dd 0ffffffffh 62 dd 07fffffffh 63 -
trunk/src/VBox/Runtime/common/math/fabsf.asm
r96014 r96216 25 25 ; 26 26 27 28 %define RT_ASM_WITH_SEH64 27 29 %include "iprt/asmdefs.mac" 30 28 31 29 32 BEGINCODE … … 34 37 ; @param rf 32-bit: [ebp + 8] 64-bit: xmm0 35 38 RT_NOCRT_BEGINPROC fabsf 36 push xBP 37 mov xBP, xSP 39 push xBP 40 SEH64_PUSH_xBP 41 mov xBP, xSP 42 SEH64_SET_FRAME_xBP 0 43 SEH64_END_PROLOGUE 38 44 39 45 %ifdef RT_ARCH_AMD64 40 sub xSP, 10h 41 42 movsd [xSP], xmm0 43 fld dword [xSP] 44 45 fabs 46 47 fstp dword [xSP] 48 movsd xmm0, [xSP] 49 46 andps xmm0, [g_r32ClearSignMask xWrtRIP] 50 47 %else 51 fld dword [xBP + xCB*2]52 fabs48 fld dword [xBP + xCB*2] ; This turns SNaN into QNaN. 49 fabs 53 50 %endif 54 51 55 leave56 ret52 leave 53 ret 57 54 ENDPROC RT_NOCRT(fabsf) 58 55 56 ALIGNCODE(16) 57 g_r32ClearSignMask: 58 dd 07fffffffh 59 dd 07fffffffh 60 dd 07fffffffh 61 dd 07fffffffh 62 -
trunk/src/VBox/Runtime/common/math/fabsl.asm
r96014 r96216 25 25 ; 26 26 27 28 %define RT_ASM_WITH_SEH64 27 29 %include "iprt/asmdefs.mac" 30 28 31 29 32 BEGINCODE … … 34 37 ; @param lrd [xSP + xCB*2] 35 38 RT_NOCRT_BEGINPROC fabsl 36 push xBP 37 mov xBP, xSP 39 push xBP 40 SEH64_PUSH_xBP 41 mov xBP, xSP 42 SEH64_SET_FRAME_xBP 0 43 SEH64_END_PROLOGUE 38 44 39 fld tword [xBP + xCB*2]40 fabs45 fld tword [xBP + xCB*2] 46 fabs 41 47 42 .done: 43 leave 44 ret 48 leave 49 ret 45 50 ENDPROC RT_NOCRT(fabsl) 46 51
Note:
See TracChangeset
for help on using the changeset viewer.