VirtualBox

Ignore:
Timestamp:
Aug 18, 2022 12:07:28 AM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
153093
Message:

IPRT/nocrt: Implemented log2f and added testing of log2 and log2f. bugref:10261

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/math/log2f.asm

    r96276 r96279  
    11; $Id$
    22;; @file
    3 ; IPRT - No-CRT log2 - AMD64 & X86.
     3; IPRT - No-CRT log2f - AMD64 & X86.
    44;
    55
     
    3636
    3737;;
    38 ; Compute the log2 of rd
     38; Compute the log2f of rf
    3939; @returns st(0) / xmm0
    40 ; @param    rd      [xSP + xCB*2] / xmm0
    41 RT_NOCRT_BEGINPROC log2
     40; @param    rf      [xSP + xCB*2] / xmm0
     41RT_NOCRT_BEGINPROC log2f
    4242        push    xBP
    4343        SEH64_PUSH_xBP
     
    5252        ;
    5353%ifdef RT_ARCH_AMD64
    54         movsd   [xBP - 10h], xmm0
    55         fld     qword [xBP - 10h]
    56 %else
    57         fld     qword [xBP + xCB*2]
     54        movss   [xBP - 10h], xmm0
     55        fld     dword [xBP - 10h]
     56%else
     57        fld     dword [xBP + xCB*2]
    5858%endif
    5959
     
    118118.return_val:
    119119%ifdef RT_ARCH_AMD64
    120         fstp    qword [xBP - 10h]
    121         movsd   xmm0, [xBP - 10h]
     120        fstp    dword [xBP - 10h]
     121        movss   xmm0, [xBP - 10h]
    122122%endif
    123123.return:
     
    153153        ; Load NaN
    154154%ifdef RT_ARCH_AMD64
    155         movsd   xmm0, [.s_r64NaN xWrtRIP]
    156 %else
    157         fld     qword [.s_r64NaN xWrtRIP]
     155        movss   xmm0, [.s_r32NaN xWrtRIP]
     156%else
     157        fld     dword [.s_r32NaN xWrtRIP]
    158158%endif
    159159        jmp     .return
     
    179179        ; Load +Inf
    180180%ifdef RT_ARCH_AMD64
    181         movsd   xmm0, [.s_r64MinusInf xWrtRIP]
    182 %else
    183         fld     qword [.s_r64MinusInf xWrtRIP]
     181        movss   xmm0, [.s_r32MinusInf xWrtRIP]
     182%else
     183        fld     dword [.s_r32MinusInf xWrtRIP]
    184184%endif
    185185        jmp     .return
     
    210210.s_r64AbsFyL2xP1InputMax:
    211211        dq      1.292
    212 ;.s_r64AbsFyL2xP1Range:
    213 ;        dq      0.292
    214 .s_r64MinusInf:
    215         dq      RTFLOAT64U_INF_MINUS
    216 .s_r64NaN:
    217         dq      RTFLOAT64U_QNAN_MINUS
    218 ENDPROC   RT_NOCRT(log2)
    219 
     212.s_r32MinusInf:
     213        dd      RTFLOAT32U_INF_MINUS
     214.s_r32NaN:
     215        dd      RTFLOAT32U_QNAN_MINUS
     216ENDPROC   RT_NOCRT(log2f)
     217
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette