- Timestamp:
- Oct 21, 2024 7:41:54 AM (6 months ago)
- svn:sync-xref-src-repo-rev:
- 165376
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/asm-mem.h
r103025 r106542 47 47 /* Emit the intrinsics at all optimization levels. */ 48 48 # 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) 55 59 # endif 56 60 #endif … … 326 330 327 331 # 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 328 335 uint32_t u32; 329 336 __asm__ __volatile__("Lstart_ASMProbeReadByte_%=:\n\t" 330 # if defined(RT_ARCH_ARM64)337 # if defined(RT_ARCH_ARM64) 331 338 "ldxrb %w[uDst], %[pMem]\n\t" 332 # else339 # else 333 340 "ldrexb %[uDst], %[pMem]\n\t" 334 # endif341 # endif 335 342 : [uDst] "=&r" (u32) 336 343 : [pMem] "Q" (*(uint8_t const *)pvByte)); 337 344 return (uint8_t)u32; 345 # endif 338 346 339 347 # else
Note:
See TracChangeset
for help on using the changeset viewer.