VirtualBox

Changeset 52443 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Aug 21, 2014 4:16:19 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
95651
Message:

Runtime: added ASMMultU32ByU32DivByU32() and fixed early clobber operands in ASMMultU64ByU32DivByU32

Location:
trunk/src/VBox/Runtime
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/Makefile.kmk

    r52345 r52443  
    181181        win/amd64/ASMGetDR7.asm \
    182182        common/asm/ASMAtomicCmpXchgU8.asm \
     183        common/asm/ASMMultU32ByU32DivByU32.asm \
    183184        common/asm/ASMMultU64ByU32DivByU32.asm \
    184185        common/asm/ASMCpuId_Idx_ECX.asm \
     
    197198RuntimeWin32ASM_SOURCES = \
    198199        common/asm/ASMAtomicCmpXchgU8.asm \
     200        common/asm/ASMMultU32ByU32DivByU32.asm \
    199201        common/asm/ASMMultU64ByU32DivByU32.asm \
    200202        common/asm/ASMCpuId_Idx_ECX.asm \
  • trunk/src/VBox/Runtime/testcase/tstRTInlineAsm.cpp

    r52345 r52443  
    14341434    uint32_t u32 = ASMDivU64ByU32RetU32(UINT64_C(0x0800000000000000), UINT32_C(0x10000000));
    14351435    CHECKVAL(u32, UINT32_C(0x80000000), "%#010RX32");
     1436
     1437#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
     1438    u32 = ASMMultU32ByU32DivByU32(UINT32_C(0x00000001), UINT32_C(0x00000001), UINT32_C(0x00000001));
     1439    CHECKVAL(u32, UINT32_C(0x00000001), "%#018RX32");
     1440    u32 = ASMMultU32ByU32DivByU32(UINT32_C(0x10000000), UINT32_C(0x80000000), UINT32_C(0x20000000));
     1441    CHECKVAL(u32, UINT32_C(0x40000000), "%#018RX32");
     1442    u32 = ASMMultU32ByU32DivByU32(UINT32_C(0x76543210), UINT32_C(0xffffffff), UINT32_C(0xffffffff));
     1443    CHECKVAL(u32, UINT32_C(0x76543210), "%#018RX32");
     1444    u32 = ASMMultU32ByU32DivByU32(UINT32_C(0xffffffff), UINT32_C(0xffffffff), UINT32_C(0xffffffff));
     1445    CHECKVAL(u32, UINT32_C(0xffffffff), "%#018RX32");
     1446    u32 = ASMMultU32ByU32DivByU32(UINT32_C(0xffffffff), UINT32_C(0xfffffff0), UINT32_C(0xffffffff));
     1447    CHECKVAL(u32, UINT32_C(0xfffffff0), "%#018RX32");
     1448    u32 = ASMMultU32ByU32DivByU32(UINT32_C(0x10359583), UINT32_C(0x58734981), UINT32_C(0xf8694045));
     1449    CHECKVAL(u32, UINT32_C(0x05c584ce), "%#018RX32");
     1450    u32 = ASMMultU32ByU32DivByU32(UINT32_C(0x10359583), UINT32_C(0xf8694045), UINT32_C(0x58734981));
     1451    CHECKVAL(u32, UINT32_C(0x2d860795), "%#018RX32");
     1452#endif
    14361453
    14371454#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
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