VirtualBox

Changeset 106542 in vbox for trunk


Ignore:
Timestamp:
Oct 21, 2024 7:41:54 AM (6 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165376
Message:

include/iprt/asm-mem.h: Make it build on win.arm64, bugref:10392

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/asm-mem.h

    r103025 r106542  
    4747/* Emit the intrinsics at all optimization levels. */
    4848# include <iprt/sanitized/intrin.h>
    49 # pragma intrinsic(__cpuid)
    50 # pragma intrinsic(__stosd)
    51 # pragma intrinsic(__stosw)
    52 # pragma intrinsic(__stosb)
    53 # ifdef RT_ARCH_AMD64
    54 #  pragma intrinsic(__stosq)
     49# if defined(RT_ARCH_X86) || defined(RT_ARCH_AMD64)
     50#  pragma intrinsic(__cpuid)
     51#  pragma intrinsic(__stosd)
     52#  pragma intrinsic(__stosw)
     53#  pragma intrinsic(__stosb)
     54#  ifdef RT_ARCH_AMD64
     55#   pragma intrinsic(__stosq)
     56#  endif
     57# elif defined(RT_ARCH_ARM64) || defined(RT_ARCH_X86)
     58#  pragma intrinsic(__iso_volatile_load8)
    5559# endif
    5660#endif
     
    326330
    327331# elif defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32)
     332#  if defined(RT_INLINE_ASM_USES_INTRIN)
     333    return (uint8_t)__iso_volatile_load8((volatile const char *)pvByte);
     334#  else
    328335    uint32_t u32;
    329336    __asm__ __volatile__("Lstart_ASMProbeReadByte_%=:\n\t"
    330 if defined(RT_ARCH_ARM64)
     337 if defined(RT_ARCH_ARM64)
    331338                         "ldxrb     %w[uDst], %[pMem]\n\t"
    332 else
     339 else
    333340                         "ldrexb    %[uDst], %[pMem]\n\t"
    334 endif
     341 endif
    335342                         : [uDst] "=&r" (u32)
    336343                         : [pMem] "Q" (*(uint8_t const *)pvByte));
    337344    return (uint8_t)u32;
     345#  endif
    338346
    339347# else
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