VirtualBox

Ignore:
Timestamp:
Feb 19, 2016 11:18:18 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
105617
Message:

iprt/asm.h: Cleaned up the ASMMemIsAll8/U32 mess and implmeneted the former in assembly. (Found inverted usage due to bad naming in copyUtf8Block, but it is fortunately an unused method.) Replaces the complicated ASMBitFirstSet based scanning in RTSgBufIsZero with a simple call to the new ASMMemIsZero function.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r3/alloc-ef.cpp

    r57432 r59747  
    681681         */
    682682#  ifdef RTALLOC_EFENCE_IN_FRONT
    683         void *pvWrong = ASMMemIsAll8((char *)pv + pBlock->cbUnaligned,
    684                                      RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) - pBlock->cbUnaligned,
    685                                      RTALLOC_EFENCE_NOMAN_FILLER);
     683        void *pvWrong = ASMMemFirstMismatchingU8((char *)pv + pBlock->cbUnaligned,
     684                                                 RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) - pBlock->cbUnaligned,
     685                                                 RTALLOC_EFENCE_NOMAN_FILLER);
    686686#  else
    687687        /* Alignment must match allocation alignment in rtMemAlloc(). */
    688         void  *pvWrong   = ASMMemIsAll8((char *)pv + pBlock->cbUnaligned,
    689                                         pBlock->cbAligned - pBlock->cbUnaligned,
    690                                         RTALLOC_EFENCE_NOMAN_FILLER);
     688        void  *pvWrong = ASMMemFirstMismatchingU8((char *)pv + pBlock->cbUnaligned,
     689                                                  pBlock->cbAligned - pBlock->cbUnaligned,
     690                                                  RTALLOC_EFENCE_NOMAN_FILLER);
    691691        if (pvWrong)
    692692            RTAssertDoPanic();
    693         pvWrong = ASMMemIsAll8((void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK),
    694                                RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) - pBlock->cbAligned,
    695                                RTALLOC_EFENCE_NOMAN_FILLER);
     693        pvWrong = ASMMemFirstMismatchingU8((void *)((uintptr_t)pv & ~(uintptr_t)PAGE_OFFSET_MASK),
     694                                           RT_ALIGN_Z(pBlock->cbAligned, PAGE_SIZE) - pBlock->cbAligned,
     695                                           RTALLOC_EFENCE_NOMAN_FILLER);
    696696#  endif
    697697        if (pvWrong)
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