VirtualBox

Changeset 87124 in vbox for trunk/include/iprt


Ignore:
Timestamp:
Dec 24, 2020 2:59:52 PM (4 years ago)
Author:
vboxsync
Message:

iprt/asm.h: Some more fun. bugref:9888

File:
1 edited

Legend:

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

    r85223 r87124  
    15261526
    15271527/**
    1528  * Serialize Instruction.
     1528 * Serialize Instruction (both data store and instruction flush).
    15291529 */
    15301530#if (defined(RT_ARCH_X86) && ARCH_BITS == 16) || defined(IN_GUEST)
     
    15341534#elif defined(RT_ARCH_SPARC64)
    15351535RTDECL(void) ASMSerializeInstruction(void) RT_NOTHROW_PROTO;
     1536#elif defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32)
     1537DECLINLINE(void) ASMSerializeInstruction(void) RT_NOTHROW_DEF
     1538{
     1539    /* Note! Only armv7 and later. */
     1540    __asm__ __volatile__ ("dsb\n\t" ::: "memory");
     1541}
    15361542#else
    15371543# error "Port me"
     
    15571563    }
    15581564# endif
     1565#elif defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32)
     1566    /* Note! Only armv7 and later. */
     1567    __asm__ __volatile__ ("dsb\n\t");
    15591568#elif ARCH_BITS == 16
    15601569    uint16_t volatile u16;
     
    15851594    }
    15861595# endif
     1596#elif defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32)
     1597    /* Note! Only armv7 and later. */
     1598    __asm__ __volatile__ ("dmb\n\t");
    15871599#else
    15881600    ASMMemoryFence();
     
    16091621    }
    16101622# endif
     1623#elif defined(RT_ARCH_ARM64) || defined(RT_ARCH_ARM32)
     1624    /* Note! Only armv7 and later. */
     1625    __asm__ __volatile__ ("dmb\n\t");
    16111626#else
    16121627    ASMMemoryFence();
Note: See TracChangeset for help on using the changeset viewer.

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