VirtualBox

Changeset 85087 in vbox


Ignore:
Timestamp:
Jul 7, 2020 5:02:20 PM (5 years ago)
Author:
vboxsync
Message:

iprt/asm.h: add RT_NOTHROW* stuff to just be sure. bugref:9794

File:
1 edited

Legend:

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

    r83782 r85087  
    205205void ASMCompilerBarrier(void);
    206206#else /* 2003 should have _ReadWriteBarrier() but I guess we're at 2002 level then... */
    207 DECLINLINE(void) ASMCompilerBarrier(void)
     207DECLINLINE(void) ASMCompilerBarrier(void) RT_NOTHROW_DEF
    208208{
    209209    __asm
     
    230230 */
    231231#if RT_INLINE_ASM_EXTERNAL && (defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86))
    232 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMNopPause(void);
    233 #else
    234 DECLINLINE(void) ASMNopPause(void)
     232RT_ASM_DECL_PRAGMA_WATCOM(void) ASMNopPause(void) RT_NOTHROW_PROTO;
     233#else
     234DECLINLINE(void) ASMNopPause(void) RT_NOTHROW_DEF
    235235{
    236236# if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
     
    258258 */
    259259#if RT_INLINE_ASM_EXTERNAL
    260 RT_ASM_DECL_PRAGMA_WATCOM(uint8_t) ASMAtomicXchgU8(volatile uint8_t RT_FAR *pu8, uint8_t u8);
    261 #else
    262 DECLINLINE(uint8_t) ASMAtomicXchgU8(volatile uint8_t RT_FAR *pu8, uint8_t u8)
     260RT_ASM_DECL_PRAGMA_WATCOM(uint8_t) ASMAtomicXchgU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) RT_NOTHROW_PROTO;
     261#else
     262DECLINLINE(uint8_t) ASMAtomicXchgU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) RT_NOTHROW_DEF
    263263{
    264264# if RT_INLINE_ASM_GNU_STYLE
     
    296296 * @param   i8      The 8-bit value to assign to *pi8.
    297297 */
    298 DECLINLINE(int8_t) ASMAtomicXchgS8(volatile int8_t RT_FAR *pi8, int8_t i8)
     298DECLINLINE(int8_t) ASMAtomicXchgS8(volatile int8_t RT_FAR *pi8, int8_t i8) RT_NOTHROW_DEF
    299299{
    300300    return (int8_t)ASMAtomicXchgU8((volatile uint8_t RT_FAR *)pi8, (uint8_t)i8);
     
    309309 * @param   f       The 8-bit value to assign to *pi8.
    310310 */
    311 DECLINLINE(bool) ASMAtomicXchgBool(volatile bool RT_FAR *pf, bool f)
     311DECLINLINE(bool) ASMAtomicXchgBool(volatile bool RT_FAR *pf, bool f) RT_NOTHROW_DEF
    312312{
    313313#ifdef _MSC_VER
     
    327327 */
    328328#if RT_INLINE_ASM_EXTERNAL
    329 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicXchgU16(volatile uint16_t RT_FAR *pu16, uint16_t u16);
    330 #else
    331 DECLINLINE(uint16_t) ASMAtomicXchgU16(volatile uint16_t RT_FAR *pu16, uint16_t u16)
     329RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicXchgU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) RT_NOTHROW_PROTO;
     330#else
     331DECLINLINE(uint16_t) ASMAtomicXchgU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) RT_NOTHROW_DEF
    332332{
    333333# if RT_INLINE_ASM_GNU_STYLE
     
    365365 * @param   i16     The 16-bit value to assign to *pi16.
    366366 */
    367 DECLINLINE(int16_t) ASMAtomicXchgS16(volatile int16_t RT_FAR *pi16, int16_t i16)
     367DECLINLINE(int16_t) ASMAtomicXchgS16(volatile int16_t RT_FAR *pi16, int16_t i16) RT_NOTHROW_DEF
    368368{
    369369    return (int16_t)ASMAtomicXchgU16((volatile uint16_t RT_FAR *)pi16, (uint16_t)i16);
     
    381381 */
    382382#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    383 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicXchgU32(volatile uint32_t RT_FAR *pu32, uint32_t u32);
    384 #else
    385 DECLINLINE(uint32_t) ASMAtomicXchgU32(volatile uint32_t RT_FAR *pu32, uint32_t u32)
     383RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicXchgU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO;
     384#else
     385DECLINLINE(uint32_t) ASMAtomicXchgU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    386386{
    387387# if RT_INLINE_ASM_GNU_STYLE
     
    423423 * @param   i32     The 32-bit value to assign to *pi32.
    424424 */
    425 DECLINLINE(int32_t) ASMAtomicXchgS32(volatile int32_t RT_FAR *pi32, int32_t i32)
     425DECLINLINE(int32_t) ASMAtomicXchgS32(volatile int32_t RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    426426{
    427427    return (int32_t)ASMAtomicXchgU32((volatile uint32_t RT_FAR *)pi32, (uint32_t)i32);
     
    440440#if (RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN) \
    441441 || RT_INLINE_DONT_MIX_CMPXCHG8B_AND_PIC
    442 RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64);
    443 #else
    444 DECLINLINE(uint64_t) ASMAtomicXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64)
     442RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO;
     443#else
     444DECLINLINE(uint64_t) ASMAtomicXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    445445{
    446446# if defined(RT_ARCH_AMD64)
     
    518518 * @param   i64     The 64-bit value to assign to *pi64.
    519519 */
    520 DECLINLINE(int64_t) ASMAtomicXchgS64(volatile int64_t RT_FAR *pi64, int64_t i64)
     520DECLINLINE(int64_t) ASMAtomicXchgS64(volatile int64_t RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    521521{
    522522    return (int64_t)ASMAtomicXchgU64((volatile uint64_t RT_FAR *)pi64, (uint64_t)i64);
     
    531531 * @param   uNew    The new value to assign to *puDst.
    532532 */
    533 DECLINLINE(size_t) ASMAtomicXchgZ(size_t volatile RT_FAR *puDst, const size_t uNew)
     533DECLINLINE(size_t) ASMAtomicXchgZ(size_t volatile RT_FAR *puDst, const size_t uNew) RT_NOTHROW_DEF
    534534{
    535535#if ARCH_BITS == 16
     
    553553 * @param   pv     The pointer value to assign to *ppv.
    554554 */
    555 DECLINLINE(void RT_FAR *) ASMAtomicXchgPtr(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pv)
     555DECLINLINE(void RT_FAR *) ASMAtomicXchgPtr(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pv) RT_NOTHROW_DEF
    556556{
    557557#if ARCH_BITS == 32 || ARCH_BITS == 16
     
    595595 * @param   pvRC    The pointer value to assign to *ppv.
    596596 */
    597 DECLINLINE(RTRCPTR) ASMAtomicXchgRCPtr(RTRCPTR volatile RT_FAR *ppvRC, RTRCPTR pvRC)
     597DECLINLINE(RTRCPTR) ASMAtomicXchgRCPtr(RTRCPTR volatile RT_FAR *ppvRC, RTRCPTR pvRC) RT_NOTHROW_DEF
    598598{
    599599    return (RTRCPTR)ASMAtomicXchgU32((uint32_t volatile RT_FAR *)(void RT_FAR *)ppvRC, (uint32_t)pvRC);
     
    608608 * @param   pvR0   The pointer value to assign to *ppv.
    609609 */
    610 DECLINLINE(RTR0PTR) ASMAtomicXchgR0Ptr(RTR0PTR volatile RT_FAR *ppvR0, RTR0PTR pvR0)
     610DECLINLINE(RTR0PTR) ASMAtomicXchgR0Ptr(RTR0PTR volatile RT_FAR *ppvR0, RTR0PTR pvR0) RT_NOTHROW_DEF
    611611{
    612612#if R0_ARCH_BITS == 32 || ARCH_BITS == 16
     
    627627 * @param   pvR3   The pointer value to assign to *ppv.
    628628 */
    629 DECLINLINE(RTR3PTR) ASMAtomicXchgR3Ptr(RTR3PTR volatile RT_FAR *ppvR3, RTR3PTR pvR3)
     629DECLINLINE(RTR3PTR) ASMAtomicXchgR3Ptr(RTR3PTR volatile RT_FAR *ppvR3, RTR3PTR pvR3) RT_NOTHROW_DEF
    630630{
    631631#if R3_ARCH_BITS == 32 || ARCH_BITS == 16
     
    720720 */
    721721#if RT_INLINE_ASM_EXTERNAL || !RT_INLINE_ASM_GNU_STYLE
    722 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgU8(volatile uint8_t RT_FAR *pu8, const uint8_t u8New, const uint8_t u8Old);
    723 #else
    724 DECLINLINE(bool) ASMAtomicCmpXchgU8(volatile uint8_t RT_FAR *pu8, const uint8_t u8New, uint8_t u8Old)
     722RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgU8(volatile uint8_t RT_FAR *pu8, const uint8_t u8New, const uint8_t u8Old) RT_NOTHROW_PROTO;
     723#else
     724DECLINLINE(bool) ASMAtomicCmpXchgU8(volatile uint8_t RT_FAR *pu8, const uint8_t u8New, uint8_t u8Old) RT_NOTHROW_DEF
    725725{
    726726    uint8_t u8Ret;
     
    750750 * @remarks x86: Requires a 486 or later.
    751751 */
    752 DECLINLINE(bool) ASMAtomicCmpXchgS8(volatile int8_t RT_FAR *pi8, const int8_t i8New, const int8_t i8Old)
     752DECLINLINE(bool) ASMAtomicCmpXchgS8(volatile int8_t RT_FAR *pi8, const int8_t i8New, const int8_t i8Old) RT_NOTHROW_DEF
    753753{
    754754    return ASMAtomicCmpXchgU8((volatile uint8_t RT_FAR *)pi8, (uint8_t)i8New, (uint8_t)i8Old);
     
    768768 * @remarks x86: Requires a 486 or later.
    769769 */
    770 DECLINLINE(bool) ASMAtomicCmpXchgBool(volatile bool RT_FAR *pf, const bool fNew, const bool fOld)
     770DECLINLINE(bool) ASMAtomicCmpXchgBool(volatile bool RT_FAR *pf, const bool fNew, const bool fOld) RT_NOTHROW_DEF
    771771{
    772772    return ASMAtomicCmpXchgU8((volatile uint8_t RT_FAR *)pf, (uint8_t)fNew, (uint8_t)fOld);
     
    787787 */
    788788#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    789 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, const uint32_t u32Old);
    790 #else
    791 DECLINLINE(bool) ASMAtomicCmpXchgU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, uint32_t u32Old)
     789RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, const uint32_t u32Old) RT_NOTHROW_PROTO;
     790#else
     791DECLINLINE(bool) ASMAtomicCmpXchgU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, uint32_t u32Old) RT_NOTHROW_DEF
    792792{
    793793# if RT_INLINE_ASM_GNU_STYLE
     
    844844 * @remarks x86: Requires a 486 or later.
    845845 */
    846 DECLINLINE(bool) ASMAtomicCmpXchgS32(volatile int32_t RT_FAR *pi32, const int32_t i32New, const int32_t i32Old)
     846DECLINLINE(bool) ASMAtomicCmpXchgS32(volatile int32_t RT_FAR *pi32, const int32_t i32New, const int32_t i32Old) RT_NOTHROW_DEF
    847847{
    848848    return ASMAtomicCmpXchgU32((volatile uint32_t RT_FAR *)pi32, (uint32_t)i32New, (uint32_t)i32Old);
     
    864864#if (RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN) \
    865865 || RT_INLINE_DONT_MIX_CMPXCHG8B_AND_PIC
    866 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgU64(volatile uint64_t RT_FAR *pu64, const uint64_t u64New, const uint64_t u64Old);
    867 #else
    868 DECLINLINE(bool) ASMAtomicCmpXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64New, uint64_t u64Old)
     866RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgU64(volatile uint64_t RT_FAR *pu64, const uint64_t u64New, const uint64_t u64Old) RT_NOTHROW_PROTO;
     867#else
     868DECLINLINE(bool) ASMAtomicCmpXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64New, uint64_t u64Old) RT_NOTHROW_DEF
    869869{
    870870# if RT_INLINE_ASM_USES_INTRIN
     
    963963 * @remarks x86: Requires a Pentium or later.
    964964 */
    965 DECLINLINE(bool) ASMAtomicCmpXchgS64(volatile int64_t RT_FAR *pi64, const int64_t i64, const int64_t i64Old)
     965DECLINLINE(bool) ASMAtomicCmpXchgS64(volatile int64_t RT_FAR *pi64, const int64_t i64, const int64_t i64Old) RT_NOTHROW_DEF
    966966{
    967967    return ASMAtomicCmpXchgU64((volatile uint64_t RT_FAR *)pi64, (uint64_t)i64, (uint64_t)i64Old);
     
    981981 * @remarks x86: Requires a 486 or later.
    982982 */
    983 DECLINLINE(bool) ASMAtomicCmpXchgPtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pvNew, const void RT_FAR *pvOld)
     983DECLINLINE(bool) ASMAtomicCmpXchgPtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pvNew, const void RT_FAR *pvOld) RT_NOTHROW_DEF
    984984{
    985985#if ARCH_BITS == 32 || ARCH_BITS == 16
     
    10911091 */
    10921092#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    1093 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgExU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, const uint32_t u32Old, uint32_t RT_FAR *pu32Old);
    1094 #else
    1095 DECLINLINE(bool) ASMAtomicCmpXchgExU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, const uint32_t u32Old, uint32_t RT_FAR *pu32Old)
     1093RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgExU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, const uint32_t u32Old, uint32_t RT_FAR *pu32Old) RT_NOTHROW_PROTO;
     1094#else
     1095DECLINLINE(bool) ASMAtomicCmpXchgExU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, const uint32_t u32Old, uint32_t RT_FAR *pu32Old) RT_NOTHROW_DEF
    10961096{
    10971097# if RT_INLINE_ASM_GNU_STYLE
     
    11541154 * @remarks x86: Requires a 486 or later.
    11551155 */
    1156 DECLINLINE(bool) ASMAtomicCmpXchgExS32(volatile int32_t RT_FAR *pi32, const int32_t i32New, const int32_t i32Old, int32_t RT_FAR *pi32Old)
     1156DECLINLINE(bool) ASMAtomicCmpXchgExS32(volatile int32_t RT_FAR *pi32, const int32_t i32New, const int32_t i32Old, int32_t RT_FAR *pi32Old) RT_NOTHROW_DEF
    11571157{
    11581158    return ASMAtomicCmpXchgExU32((volatile uint32_t RT_FAR *)pi32, (uint32_t)i32New, (uint32_t)i32Old, (uint32_t RT_FAR *)pi32Old);
     
    11761176#if (RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN) \
    11771177 || RT_INLINE_DONT_MIX_CMPXCHG8B_AND_PIC
    1178 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgExU64(volatile uint64_t RT_FAR *pu64, const uint64_t u64New, const uint64_t u64Old, uint64_t RT_FAR *pu64Old);
    1179 #else
    1180 DECLINLINE(bool) ASMAtomicCmpXchgExU64(volatile uint64_t RT_FAR *pu64, const uint64_t u64New, const uint64_t u64Old, uint64_t RT_FAR *pu64Old)
     1178RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicCmpXchgExU64(volatile uint64_t RT_FAR *pu64, const uint64_t u64New, const uint64_t u64Old, uint64_t RT_FAR *pu64Old) RT_NOTHROW_PROTO;
     1179#else
     1180DECLINLINE(bool) ASMAtomicCmpXchgExU64(volatile uint64_t RT_FAR *pu64, const uint64_t u64New, const uint64_t u64Old, uint64_t RT_FAR *pu64Old) RT_NOTHROW_DEF
    11811181{
    11821182# if RT_INLINE_ASM_USES_INTRIN
     
    12771277 * @remarks x86: Requires a Pentium or later.
    12781278 */
    1279 DECLINLINE(bool) ASMAtomicCmpXchgExS64(volatile int64_t RT_FAR *pi64, const int64_t i64, const int64_t i64Old, int64_t RT_FAR *pi64Old)
     1279DECLINLINE(bool) ASMAtomicCmpXchgExS64(volatile int64_t RT_FAR *pi64, const int64_t i64, const int64_t i64Old, int64_t RT_FAR *pi64Old) RT_NOTHROW_DEF
    12801280{
    12811281    return ASMAtomicCmpXchgExU64((volatile uint64_t RT_FAR *)pi64, (uint64_t)i64, (uint64_t)i64Old, (uint64_t RT_FAR *)pi64Old);
     
    13541354 */
    13551355DECLINLINE(bool) ASMAtomicCmpXchgExPtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pvNew, const void RT_FAR *pvOld,
    1356                                            void RT_FAR * RT_FAR *ppvOld)
     1356                                           void RT_FAR * RT_FAR *ppvOld) RT_NOTHROW_DEF
    13571357{
    13581358#if ARCH_BITS == 32 || ARCH_BITS == 16
     
    14041404 */
    14051405#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    1406 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionCpuId(void);
    1407 #else
    1408 DECLINLINE(void) ASMSerializeInstructionCpuId(void)
     1406RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionCpuId(void) RT_NOTHROW_PROTO;
     1407#else
     1408DECLINLINE(void) ASMSerializeInstructionCpuId(void) RT_NOTHROW_DEF
    14091409{
    14101410# if RT_INLINE_ASM_GNU_STYLE
     
    14501450 */
    14511451#if RT_INLINE_ASM_EXTERNAL
    1452 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionIRet(void);
    1453 #else
    1454 DECLINLINE(void) ASMSerializeInstructionIRet(void)
     1452RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionIRet(void) RT_NOTHROW_PROTO;
     1453#else
     1454DECLINLINE(void) ASMSerializeInstructionIRet(void) RT_NOTHROW_DEF
    14551455{
    14561456# if RT_INLINE_ASM_GNU_STYLE
     
    14951495 */
    14961496#if RT_INLINE_ASM_EXTERNAL && RT_INLINE_ASM_USES_INTRIN < 15
    1497 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionRdTscp(void);
    1498 #else
    1499 DECLINLINE(void) ASMSerializeInstructionRdTscp(void)
     1497RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionRdTscp(void) RT_NOTHROW_PROTO;
     1498#else
     1499DECLINLINE(void) ASMSerializeInstructionRdTscp(void) RT_NOTHROW_DEF
    15001500{
    15011501# if RT_INLINE_ASM_GNU_STYLE
     
    15331533# define ASMSerializeInstruction() ASMSerializeInstructionCpuId()
    15341534#elif defined(RT_ARCH_SPARC64)
    1535 RTDECL(void) ASMSerializeInstruction(void);
     1535RTDECL(void) ASMSerializeInstruction(void) RT_NOTHROW_PROTO;
    15361536#else
    15371537# error "Port me"
     
    15421542 * Memory fence, waits for any pending writes and reads to complete.
    15431543 */
    1544 DECLINLINE(void) ASMMemoryFence(void)
     1544DECLINLINE(void) ASMMemoryFence(void) RT_NOTHROW_DEF
    15451545{
    15461546#if defined(RT_ARCH_AMD64) || (defined(RT_ARCH_X86) && !defined(RT_WITH_OLD_CPU_SUPPORT))
     
    15701570 * Write fence, waits for any pending writes to complete.
    15711571 */
    1572 DECLINLINE(void) ASMWriteFence(void)
     1572DECLINLINE(void) ASMWriteFence(void) RT_NOTHROW_DEF
    15731573{
    15741574#if defined(RT_ARCH_AMD64) || (defined(RT_ARCH_X86) && !defined(RT_WITH_OLD_CPU_SUPPORT))
     
    15941594 * Read fence, waits for any pending reads to complete.
    15951595 */
    1596 DECLINLINE(void) ASMReadFence(void)
     1596DECLINLINE(void) ASMReadFence(void) RT_NOTHROW_DEF
    15971597{
    15981598#if defined(RT_ARCH_AMD64) || (defined(RT_ARCH_X86) && !defined(RT_WITH_OLD_CPU_SUPPORT))
     
    16211621 * @param   pu8    Pointer to the 8-bit variable to read.
    16221622 */
    1623 DECLINLINE(uint8_t) ASMAtomicReadU8(volatile uint8_t RT_FAR *pu8)
     1623DECLINLINE(uint8_t) ASMAtomicReadU8(volatile uint8_t RT_FAR *pu8) RT_NOTHROW_DEF
    16241624{
    16251625    ASMMemoryFence();
     
    16341634 * @param   pu8    Pointer to the 8-bit variable to read.
    16351635 */
    1636 DECLINLINE(uint8_t) ASMAtomicUoReadU8(volatile uint8_t RT_FAR *pu8)
     1636DECLINLINE(uint8_t) ASMAtomicUoReadU8(volatile uint8_t RT_FAR *pu8) RT_NOTHROW_DEF
    16371637{
    16381638    return *pu8;    /* byte reads are atomic on x86 */
     
    16461646 * @param   pi8    Pointer to the 8-bit variable to read.
    16471647 */
    1648 DECLINLINE(int8_t) ASMAtomicReadS8(volatile int8_t RT_FAR *pi8)
     1648DECLINLINE(int8_t) ASMAtomicReadS8(volatile int8_t RT_FAR *pi8) RT_NOTHROW_DEF
    16491649{
    16501650    ASMMemoryFence();
     
    16591659 * @param   pi8    Pointer to the 8-bit variable to read.
    16601660 */
    1661 DECLINLINE(int8_t) ASMAtomicUoReadS8(volatile int8_t RT_FAR *pi8)
     1661DECLINLINE(int8_t) ASMAtomicUoReadS8(volatile int8_t RT_FAR *pi8) RT_NOTHROW_DEF
    16621662{
    16631663    return *pi8;    /* byte reads are atomic on x86 */
     
    16711671 * @param   pu16    Pointer to the 16-bit variable to read.
    16721672 */
    1673 DECLINLINE(uint16_t) ASMAtomicReadU16(volatile uint16_t RT_FAR *pu16)
     1673DECLINLINE(uint16_t) ASMAtomicReadU16(volatile uint16_t RT_FAR *pu16) RT_NOTHROW_DEF
    16741674{
    16751675    ASMMemoryFence();
     
    16851685 * @param   pu16    Pointer to the 16-bit variable to read.
    16861686 */
    1687 DECLINLINE(uint16_t) ASMAtomicUoReadU16(volatile uint16_t RT_FAR *pu16)
     1687DECLINLINE(uint16_t) ASMAtomicUoReadU16(volatile uint16_t RT_FAR *pu16) RT_NOTHROW_DEF
    16881688{
    16891689    Assert(!((uintptr_t)pu16 & 1));
     
    16981698 * @param   pi16    Pointer to the 16-bit variable to read.
    16991699 */
    1700 DECLINLINE(int16_t) ASMAtomicReadS16(volatile int16_t RT_FAR *pi16)
     1700DECLINLINE(int16_t) ASMAtomicReadS16(volatile int16_t RT_FAR *pi16) RT_NOTHROW_DEF
    17011701{
    17021702    ASMMemoryFence();
     
    17121712 * @param   pi16    Pointer to the 16-bit variable to read.
    17131713 */
    1714 DECLINLINE(int16_t) ASMAtomicUoReadS16(volatile int16_t RT_FAR *pi16)
     1714DECLINLINE(int16_t) ASMAtomicUoReadS16(volatile int16_t RT_FAR *pi16) RT_NOTHROW_DEF
    17151715{
    17161716    Assert(!((uintptr_t)pi16 & 1));
     
    17251725 * @param   pu32    Pointer to the 32-bit variable to read.
    17261726 */
    1727 DECLINLINE(uint32_t) ASMAtomicReadU32(volatile uint32_t RT_FAR *pu32)
     1727DECLINLINE(uint32_t) ASMAtomicReadU32(volatile uint32_t RT_FAR *pu32) RT_NOTHROW_DEF
    17281728{
    17291729    ASMMemoryFence();
     
    17421742 * @param   pu32    Pointer to the 32-bit variable to read.
    17431743 */
    1744 DECLINLINE(uint32_t) ASMAtomicUoReadU32(volatile uint32_t RT_FAR *pu32)
     1744DECLINLINE(uint32_t) ASMAtomicUoReadU32(volatile uint32_t RT_FAR *pu32) RT_NOTHROW_DEF
    17451745{
    17461746    Assert(!((uintptr_t)pu32 & 3));
     
    17581758 * @param   pi32    Pointer to the 32-bit variable to read.
    17591759 */
    1760 DECLINLINE(int32_t) ASMAtomicReadS32(volatile int32_t RT_FAR *pi32)
     1760DECLINLINE(int32_t) ASMAtomicReadS32(volatile int32_t RT_FAR *pi32) RT_NOTHROW_DEF
    17611761{
    17621762    ASMMemoryFence();
     
    17751775 * @param   pi32    Pointer to the 32-bit variable to read.
    17761776 */
    1777 DECLINLINE(int32_t) ASMAtomicUoReadS32(volatile int32_t RT_FAR *pi32)
     1777DECLINLINE(int32_t) ASMAtomicUoReadS32(volatile int32_t RT_FAR *pi32) RT_NOTHROW_DEF
    17781778{
    17791779    Assert(!((uintptr_t)pi32 & 3));
     
    17971797#if (RT_INLINE_ASM_EXTERNAL && !defined(RT_ARCH_AMD64)) \
    17981798 || RT_INLINE_DONT_MIX_CMPXCHG8B_AND_PIC
    1799 RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicReadU64(volatile uint64_t RT_FAR *pu64);
    1800 #else
    1801 DECLINLINE(uint64_t) ASMAtomicReadU64(volatile uint64_t RT_FAR *pu64)
     1799RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicReadU64(volatile uint64_t RT_FAR *pu64) RT_NOTHROW_PROTO;
     1800#else
     1801DECLINLINE(uint64_t) ASMAtomicReadU64(volatile uint64_t RT_FAR *pu64) RT_NOTHROW_DEF
    18021802{
    18031803    uint64_t u64;
     
    18791879  && (   (RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN) \
    18801880      || RT_INLINE_DONT_MIX_CMPXCHG8B_AND_PIC)
    1881 RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicUoReadU64(volatile uint64_t RT_FAR *pu64);
    1882 #else
    1883 DECLINLINE(uint64_t) ASMAtomicUoReadU64(volatile uint64_t RT_FAR *pu64)
     1881RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicUoReadU64(volatile uint64_t RT_FAR *pu64) RT_NOTHROW_PROTO;
     1882#else
     1883DECLINLINE(uint64_t) ASMAtomicUoReadU64(volatile uint64_t RT_FAR *pu64) RT_NOTHROW_DEF
    18841884{
    18851885    uint64_t u64;
     
    19591959 * @remarks x86: Requires a Pentium or later.
    19601960 */
    1961 DECLINLINE(int64_t) ASMAtomicReadS64(volatile int64_t RT_FAR *pi64)
     1961DECLINLINE(int64_t) ASMAtomicReadS64(volatile int64_t RT_FAR *pi64) RT_NOTHROW_DEF
    19621962{
    19631963    return (int64_t)ASMAtomicReadU64((volatile uint64_t RT_FAR *)pi64);
     
    19751975 * @remarks x86: Requires a Pentium or later.
    19761976 */
    1977 DECLINLINE(int64_t) ASMAtomicUoReadS64(volatile int64_t RT_FAR *pi64)
     1977DECLINLINE(int64_t) ASMAtomicUoReadS64(volatile int64_t RT_FAR *pi64) RT_NOTHROW_DEF
    19781978{
    19791979    return (int64_t)ASMAtomicUoReadU64((volatile uint64_t RT_FAR *)pi64);
     
    19871987 * @param   pcb     Pointer to the size_t variable to read.
    19881988 */
    1989 DECLINLINE(size_t) ASMAtomicReadZ(size_t volatile RT_FAR *pcb)
     1989DECLINLINE(size_t) ASMAtomicReadZ(size_t volatile RT_FAR *pcb) RT_NOTHROW_DEF
    19901990{
    19911991#if ARCH_BITS == 64
     
    20082008 * @param   pcb     Pointer to the size_t variable to read.
    20092009 */
    2010 DECLINLINE(size_t) ASMAtomicUoReadZ(size_t volatile RT_FAR *pcb)
     2010DECLINLINE(size_t) ASMAtomicUoReadZ(size_t volatile RT_FAR *pcb) RT_NOTHROW_DEF
    20112011{
    20122012#if ARCH_BITS == 64 || ARCH_BITS == 16
     
    20322032 *          requires less typing (no casts).
    20332033 */
    2034 DECLINLINE(void RT_FAR *) ASMAtomicReadPtr(void RT_FAR * volatile RT_FAR *ppv)
     2034DECLINLINE(void RT_FAR *) ASMAtomicReadPtr(void RT_FAR * volatile RT_FAR *ppv) RT_NOTHROW_DEF
    20352035{
    20362036#if ARCH_BITS == 32 || ARCH_BITS == 16
     
    20732073 *          requires less typing (no casts).
    20742074 */
    2075 DECLINLINE(void RT_FAR *) ASMAtomicUoReadPtr(void RT_FAR * volatile RT_FAR *ppv)
     2075DECLINLINE(void RT_FAR *) ASMAtomicUoReadPtr(void RT_FAR * volatile RT_FAR *ppv) RT_NOTHROW_DEF
    20762076{
    20772077#if ARCH_BITS == 32 || ARCH_BITS == 16
     
    21122112 * @param   pf      Pointer to the boolean variable to read.
    21132113 */
    2114 DECLINLINE(bool) ASMAtomicReadBool(volatile bool RT_FAR *pf)
     2114DECLINLINE(bool) ASMAtomicReadBool(volatile bool RT_FAR *pf) RT_NOTHROW_DEF
    21152115{
    21162116    ASMMemoryFence();
     
    21252125 * @param   pf      Pointer to the boolean variable to read.
    21262126 */
    2127 DECLINLINE(bool) ASMAtomicUoReadBool(volatile bool RT_FAR *pf)
     2127DECLINLINE(bool) ASMAtomicUoReadBool(volatile bool RT_FAR *pf) RT_NOTHROW_DEF
    21282128{
    21292129    return *pf;     /* byte reads are atomic on x86 */
     
    22292229 * @param   u8      The 8-bit value to assign to *pu8.
    22302230 */
    2231 DECLINLINE(void) ASMAtomicWriteU8(volatile uint8_t RT_FAR *pu8, uint8_t u8)
     2231DECLINLINE(void) ASMAtomicWriteU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) RT_NOTHROW_DEF
    22322232{
    22332233    ASMAtomicXchgU8(pu8, u8);
     
    22412241 * @param   u8      The 8-bit value to assign to *pu8.
    22422242 */
    2243 DECLINLINE(void) ASMAtomicUoWriteU8(volatile uint8_t RT_FAR *pu8, uint8_t u8)
     2243DECLINLINE(void) ASMAtomicUoWriteU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) RT_NOTHROW_DEF
    22442244{
    22452245    *pu8 = u8;      /* byte writes are atomic on x86 */
     
    22532253 * @param   i8      The 8-bit value to assign to *pi8.
    22542254 */
    2255 DECLINLINE(void) ASMAtomicWriteS8(volatile int8_t RT_FAR *pi8, int8_t i8)
     2255DECLINLINE(void) ASMAtomicWriteS8(volatile int8_t RT_FAR *pi8, int8_t i8) RT_NOTHROW_DEF
    22562256{
    22572257    ASMAtomicXchgS8(pi8, i8);
     
    22652265 * @param   i8      The 8-bit value to assign to *pi8.
    22662266 */
    2267 DECLINLINE(void) ASMAtomicUoWriteS8(volatile int8_t RT_FAR *pi8, int8_t i8)
     2267DECLINLINE(void) ASMAtomicUoWriteS8(volatile int8_t RT_FAR *pi8, int8_t i8) RT_NOTHROW_DEF
    22682268{
    22692269    *pi8 = i8;      /* byte writes are atomic on x86 */
     
    22772277 * @param   u16     The 16-bit value to assign to *pu16.
    22782278 */
    2279 DECLINLINE(void) ASMAtomicWriteU16(volatile uint16_t RT_FAR *pu16, uint16_t u16)
     2279DECLINLINE(void) ASMAtomicWriteU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) RT_NOTHROW_DEF
    22802280{
    22812281    ASMAtomicXchgU16(pu16, u16);
     
    22892289 * @param   u16     The 16-bit value to assign to *pu16.
    22902290 */
    2291 DECLINLINE(void) ASMAtomicUoWriteU16(volatile uint16_t RT_FAR *pu16, uint16_t u16)
     2291DECLINLINE(void) ASMAtomicUoWriteU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) RT_NOTHROW_DEF
    22922292{
    22932293    Assert(!((uintptr_t)pu16 & 1));
     
    23022302 * @param   i16     The 16-bit value to assign to *pi16.
    23032303 */
    2304 DECLINLINE(void) ASMAtomicWriteS16(volatile int16_t RT_FAR *pi16, int16_t i16)
     2304DECLINLINE(void) ASMAtomicWriteS16(volatile int16_t RT_FAR *pi16, int16_t i16) RT_NOTHROW_DEF
    23052305{
    23062306    ASMAtomicXchgS16(pi16, i16);
     
    23142314 * @param   i16     The 16-bit value to assign to *pi16.
    23152315 */
    2316 DECLINLINE(void) ASMAtomicUoWriteS16(volatile int16_t RT_FAR *pi16, int16_t i16)
     2316DECLINLINE(void) ASMAtomicUoWriteS16(volatile int16_t RT_FAR *pi16, int16_t i16) RT_NOTHROW_DEF
    23172317{
    23182318    Assert(!((uintptr_t)pi16 & 1));
     
    23272327 * @param   u32     The 32-bit value to assign to *pu32.
    23282328 */
    2329 DECLINLINE(void) ASMAtomicWriteU32(volatile uint32_t RT_FAR *pu32, uint32_t u32)
     2329DECLINLINE(void) ASMAtomicWriteU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    23302330{
    23312331    ASMAtomicXchgU32(pu32, u32);
     
    23392339 * @param   u32     The 32-bit value to assign to *pu32.
    23402340 */
    2341 DECLINLINE(void) ASMAtomicUoWriteU32(volatile uint32_t RT_FAR *pu32, uint32_t u32)
     2341DECLINLINE(void) ASMAtomicUoWriteU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    23422342{
    23432343    Assert(!((uintptr_t)pu32 & 3));
     
    23562356 * @param   i32     The 32-bit value to assign to *pi32.
    23572357 */
    2358 DECLINLINE(void) ASMAtomicWriteS32(volatile int32_t RT_FAR *pi32, int32_t i32)
     2358DECLINLINE(void) ASMAtomicWriteS32(volatile int32_t RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    23592359{
    23602360    ASMAtomicXchgS32(pi32, i32);
     
    23682368 * @param   i32     The 32-bit value to assign to *pi32.
    23692369 */
    2370 DECLINLINE(void) ASMAtomicUoWriteS32(volatile int32_t RT_FAR *pi32, int32_t i32)
     2370DECLINLINE(void) ASMAtomicUoWriteS32(volatile int32_t RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    23712371{
    23722372    Assert(!((uintptr_t)pi32 & 3));
     
    23852385 * @param   u64     The 64-bit value to assign to *pu64.
    23862386 */
    2387 DECLINLINE(void) ASMAtomicWriteU64(volatile uint64_t RT_FAR *pu64, uint64_t u64)
     2387DECLINLINE(void) ASMAtomicWriteU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    23882388{
    23892389    ASMAtomicXchgU64(pu64, u64);
     
    23972397 * @param   u64     The 64-bit value to assign to *pu64.
    23982398 */
    2399 DECLINLINE(void) ASMAtomicUoWriteU64(volatile uint64_t RT_FAR *pu64, uint64_t u64)
     2399DECLINLINE(void) ASMAtomicUoWriteU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    24002400{
    24012401    Assert(!((uintptr_t)pu64 & 7));
     
    24142414 * @param   i64     The 64-bit value to assign to *pi64.
    24152415 */
    2416 DECLINLINE(void) ASMAtomicWriteS64(volatile int64_t RT_FAR *pi64, int64_t i64)
     2416DECLINLINE(void) ASMAtomicWriteS64(volatile int64_t RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    24172417{
    24182418    ASMAtomicXchgS64(pi64, i64);
     
    24262426 * @param   i64     The 64-bit value to assign to *pi64.
    24272427 */
    2428 DECLINLINE(void) ASMAtomicUoWriteS64(volatile int64_t RT_FAR *pi64, int64_t i64)
     2428DECLINLINE(void) ASMAtomicUoWriteS64(volatile int64_t RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    24292429{
    24302430    Assert(!((uintptr_t)pi64 & 7));
     
    24442444 * @param   cb      The value to assign to *pcb.
    24452445 */
    2446 DECLINLINE(void) ASMAtomicWriteZ(volatile size_t RT_FAR *pcb, size_t cb)
     2446DECLINLINE(void) ASMAtomicWriteZ(volatile size_t RT_FAR *pcb, size_t cb) RT_NOTHROW_DEF
    24472447{
    24482448#if ARCH_BITS == 64
     
    24652465 * @param   f       The boolean value to assign to *pf.
    24662466 */
    2467 DECLINLINE(void) ASMAtomicWriteBool(volatile bool RT_FAR *pf, bool f)
     2467DECLINLINE(void) ASMAtomicWriteBool(volatile bool RT_FAR *pf, bool f) RT_NOTHROW_DEF
    24682468{
    24692469    ASMAtomicWriteU8((uint8_t volatile RT_FAR *)pf, f);
     
    24772477 * @param   f       The boolean value to assign to *pf.
    24782478 */
    2479 DECLINLINE(void) ASMAtomicUoWriteBool(volatile bool RT_FAR *pf, bool f)
     2479DECLINLINE(void) ASMAtomicUoWriteBool(volatile bool RT_FAR *pf, bool f) RT_NOTHROW_DEF
    24802480{
    24812481    *pf = f;    /* byte writes are atomic on x86 */
     
    24892489 * @param   pv      The pointer value to assign to *ppv.
    24902490 */
    2491 DECLINLINE(void) ASMAtomicWritePtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void *pv)
     2491DECLINLINE(void) ASMAtomicWritePtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void *pv) RT_NOTHROW_DEF
    24922492{
    24932493#if ARCH_BITS == 32 || ARCH_BITS == 16
     
    27252725 * @remarks x86: Requires a 486 or later.
    27262726 */
    2727 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicAddU16(uint16_t volatile RT_FAR *pu16, uint32_t u16);
     2727RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicAddU16(uint16_t volatile RT_FAR *pu16, uint32_t u16) RT_NOTHROW_PROTO;
    27282728
    27292729
     
    27382738 */
    27392739#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    2740 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicAddU32(uint32_t volatile RT_FAR *pu32, uint32_t u32);
    2741 #else
    2742 DECLINLINE(uint32_t) ASMAtomicAddU32(uint32_t volatile RT_FAR *pu32, uint32_t u32)
     2740RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicAddU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO;
     2741#else
     2742DECLINLINE(uint32_t) ASMAtomicAddU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    27432743{
    27442744# if RT_INLINE_ASM_USES_INTRIN
     
    27822782 * @remarks x86: Requires a 486 or later.
    27832783 */
    2784 DECLINLINE(int32_t) ASMAtomicAddS32(int32_t volatile RT_FAR *pi32, int32_t i32)
     2784DECLINLINE(int32_t) ASMAtomicAddS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    27852785{
    27862786    return (int32_t)ASMAtomicAddU32((uint32_t volatile RT_FAR *)pi32, (uint32_t)i32);
     
    27982798 */
    27992799#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    2800 DECLASM(uint64_t) ASMAtomicAddU64(uint64_t volatile RT_FAR *pu64, uint64_t u64);
    2801 #else
    2802 DECLINLINE(uint64_t) ASMAtomicAddU64(uint64_t volatile RT_FAR *pu64, uint64_t u64)
     2800DECLASM(uint64_t) ASMAtomicAddU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO;
     2801#else
     2802DECLINLINE(uint64_t) ASMAtomicAddU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    28032803{
    28042804# if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64)
     
    28402840 * @remarks x86: Requires a Pentium or later.
    28412841 */
    2842 DECLINLINE(int64_t) ASMAtomicAddS64(int64_t volatile RT_FAR *pi64, int64_t i64)
     2842DECLINLINE(int64_t) ASMAtomicAddS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    28432843{
    28442844    return (int64_t)ASMAtomicAddU64((uint64_t volatile RT_FAR *)pi64, (uint64_t)i64);
     
    28532853 * @param   cb          Number to add.
    28542854 */
    2855 DECLINLINE(size_t) ASMAtomicAddZ(size_t volatile RT_FAR *pcb, size_t cb)
     2855DECLINLINE(size_t) ASMAtomicAddZ(size_t volatile RT_FAR *pcb, size_t cb) RT_NOTHROW_DEF
    28562856{
    28572857#if ARCH_BITS == 64
     
    28982898 * @remarks x86: Requires a 486 or later.
    28992899 */
    2900 DECLINLINE(uint16_t) ASMAtomicSubU16(uint16_t volatile RT_FAR *pu16, uint32_t u16)
     2900DECLINLINE(uint16_t) ASMAtomicSubU16(uint16_t volatile RT_FAR *pu16, uint32_t u16) RT_NOTHROW_DEF
    29012901{
    29022902    return ASMAtomicAddU16(pu16, (uint16_t)-(int16_t)u16);
     
    29132913 * @remarks x86: Requires a 486 or later.
    29142914 */
    2915 DECLINLINE(int16_t) ASMAtomicSubS16(int16_t volatile RT_FAR *pi16, int16_t i16)
     2915DECLINLINE(int16_t) ASMAtomicSubS16(int16_t volatile RT_FAR *pi16, int16_t i16) RT_NOTHROW_DEF
    29162916{
    29172917    return (int16_t)ASMAtomicAddU16((uint16_t volatile RT_FAR *)pi16, (uint16_t)-i16);
     
    29282928 * @remarks x86: Requires a 486 or later.
    29292929 */
    2930 DECLINLINE(uint32_t) ASMAtomicSubU32(uint32_t volatile RT_FAR *pu32, uint32_t u32)
     2930DECLINLINE(uint32_t) ASMAtomicSubU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    29312931{
    29322932    return ASMAtomicAddU32(pu32, (uint32_t)-(int32_t)u32);
     
    29432943 * @remarks x86: Requires a 486 or later.
    29442944 */
    2945 DECLINLINE(int32_t) ASMAtomicSubS32(int32_t volatile RT_FAR *pi32, int32_t i32)
     2945DECLINLINE(int32_t) ASMAtomicSubS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    29462946{
    29472947    return (int32_t)ASMAtomicAddU32((uint32_t volatile RT_FAR *)pi32, (uint32_t)-i32);
     
    29582958 * @remarks x86: Requires a Pentium or later.
    29592959 */
    2960 DECLINLINE(uint64_t) ASMAtomicSubU64(uint64_t volatile RT_FAR *pu64, uint64_t u64)
     2960DECLINLINE(uint64_t) ASMAtomicSubU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    29612961{
    29622962    return ASMAtomicAddU64(pu64, (uint64_t)-(int64_t)u64);
     
    29732973 * @remarks x86: Requires a Pentium or later.
    29742974 */
    2975 DECLINLINE(int64_t) ASMAtomicSubS64(int64_t volatile RT_FAR *pi64, int64_t i64)
     2975DECLINLINE(int64_t) ASMAtomicSubS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    29762976{
    29772977    return (int64_t)ASMAtomicAddU64((uint64_t volatile RT_FAR *)pi64, (uint64_t)-i64);
     
    29882988 * @remarks x86: Requires a 486 or later.
    29892989 */
    2990 DECLINLINE(size_t) ASMAtomicSubZ(size_t volatile RT_FAR *pcb, size_t cb)
     2990DECLINLINE(size_t) ASMAtomicSubZ(size_t volatile RT_FAR *pcb, size_t cb) RT_NOTHROW_DEF
    29912991{
    29922992#if ARCH_BITS == 64
     
    30333033 * @remarks x86: Requires a 486 or later.
    30343034 */
    3035 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicIncU16(uint16_t volatile RT_FAR *pu16);
     3035RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicIncU16(uint16_t volatile RT_FAR *pu16) RT_NOTHROW_PROTO;
    30363036
    30373037
     
    30453045 */
    30463046#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3047 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicIncU32(uint32_t volatile RT_FAR *pu32);
    3048 #else
    3049 DECLINLINE(uint32_t) ASMAtomicIncU32(uint32_t volatile RT_FAR *pu32)
     3047RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicIncU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_PROTO;
     3048#else
     3049DECLINLINE(uint32_t) ASMAtomicIncU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_DEF
    30503050{
    30513051    uint32_t u32;
     
    30893089 * @remarks x86: Requires a 486 or later.
    30903090 */
    3091 DECLINLINE(int32_t) ASMAtomicIncS32(int32_t volatile RT_FAR *pi32)
     3091DECLINLINE(int32_t) ASMAtomicIncS32(int32_t volatile RT_FAR *pi32) RT_NOTHROW_DEF
    30923092{
    30933093    return (int32_t)ASMAtomicIncU32((uint32_t volatile RT_FAR *)pi32);
     
    31043104 */
    31053105#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3106 DECLASM(uint64_t) ASMAtomicIncU64(uint64_t volatile RT_FAR *pu64);
    3107 #else
    3108 DECLINLINE(uint64_t) ASMAtomicIncU64(uint64_t volatile RT_FAR *pu64)
     3106DECLASM(uint64_t) ASMAtomicIncU64(uint64_t volatile RT_FAR *pu64) RT_NOTHROW_PROTO;
     3107#else
     3108DECLINLINE(uint64_t) ASMAtomicIncU64(uint64_t volatile RT_FAR *pu64) RT_NOTHROW_DEF
    31093109{
    31103110# if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64)
     
    31373137 * @remarks x86: Requires a Pentium or later.
    31383138 */
    3139 DECLINLINE(int64_t) ASMAtomicIncS64(int64_t volatile RT_FAR *pi64)
     3139DECLINLINE(int64_t) ASMAtomicIncS64(int64_t volatile RT_FAR *pi64) RT_NOTHROW_DEF
    31403140{
    31413141    return (int64_t)ASMAtomicIncU64((uint64_t volatile RT_FAR *)pi64);
     
    31513151 * @remarks x86: Requires a 486 or later.
    31523152 */
    3153 DECLINLINE(int64_t) ASMAtomicIncZ(size_t volatile RT_FAR *pcb)
     3153DECLINLINE(int64_t) ASMAtomicIncZ(size_t volatile RT_FAR *pcb) RT_NOTHROW_DEF
    31543154{
    31553155#if ARCH_BITS == 64
     
    31753175 * @remarks x86: Requires a 486 or later.
    31763176 */
    3177 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicDecU16(uint16_t volatile RT_FAR *pu16);
     3177RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicDecU16(uint16_t volatile RT_FAR *pu16) RT_NOTHROW_PROTO;
    31783178
    31793179
     
    31873187 */
    31883188#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3189 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicDecU32(uint32_t volatile RT_FAR *pu32);
    3190 #else
    3191 DECLINLINE(uint32_t) ASMAtomicDecU32(uint32_t volatile RT_FAR *pu32)
     3189RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicDecU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_PROTO;
     3190#else
     3191DECLINLINE(uint32_t) ASMAtomicDecU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_DEF
    31923192{
    31933193    uint32_t u32;
     
    32313231 * @remarks x86: Requires a 486 or later.
    32323232 */
    3233 DECLINLINE(int32_t) ASMAtomicDecS32(int32_t volatile RT_FAR *pi32)
     3233DECLINLINE(int32_t) ASMAtomicDecS32(int32_t volatile RT_FAR *pi32) RT_NOTHROW_DEF
    32343234{
    32353235    return (int32_t)ASMAtomicDecU32((uint32_t volatile RT_FAR *)pi32);
     
    32463246 */
    32473247#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3248 RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicDecU64(uint64_t volatile RT_FAR *pu64);
    3249 #else
    3250 DECLINLINE(uint64_t) ASMAtomicDecU64(uint64_t volatile RT_FAR *pu64)
     3248RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicDecU64(uint64_t volatile RT_FAR *pu64) RT_NOTHROW_PROTO;
     3249#else
     3250DECLINLINE(uint64_t) ASMAtomicDecU64(uint64_t volatile RT_FAR *pu64) RT_NOTHROW_DEF
    32513251{
    32523252# if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64)
     
    32783278 * @remarks x86: Requires a Pentium or later.
    32793279 */
    3280 DECLINLINE(int64_t) ASMAtomicDecS64(int64_t volatile RT_FAR *pi64)
     3280DECLINLINE(int64_t) ASMAtomicDecS64(int64_t volatile RT_FAR *pi64) RT_NOTHROW_DEF
    32813281{
    32823282    return (int64_t)ASMAtomicDecU64((uint64_t volatile RT_FAR *)pi64);
     
    32923292 * @remarks x86: Requires a 486 or later.
    32933293 */
    3294 DECLINLINE(int64_t) ASMAtomicDecZ(size_t volatile RT_FAR *pcb)
     3294DECLINLINE(int64_t) ASMAtomicDecZ(size_t volatile RT_FAR *pcb) RT_NOTHROW_DEF
    32953295{
    32963296#if ARCH_BITS == 64
     
    33153315 */
    33163316#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3317 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32);
    3318 #else
    3319 DECLINLINE(void) ASMAtomicOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32)
     3317RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO;
     3318#else
     3319DECLINLINE(void) ASMAtomicOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    33203320{
    33213321# if RT_INLINE_ASM_USES_INTRIN
     
    33523352 * @remarks x86: Requires a 386 or later.
    33533353 */
    3354 DECLINLINE(void) ASMAtomicOrS32(int32_t volatile RT_FAR *pi32, int32_t i32)
     3354DECLINLINE(void) ASMAtomicOrS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    33553355{
    33563356    ASMAtomicOrU32((uint32_t volatile RT_FAR *)pi32, i32);
     
    33673367 */
    33683368#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3369 DECLASM(void) ASMAtomicOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64);
    3370 #else
    3371 DECLINLINE(void) ASMAtomicOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64)
     3369DECLASM(void) ASMAtomicOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO;
     3370#else
     3371DECLINLINE(void) ASMAtomicOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    33723372{
    33733373# if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64)
     
    34013401 * @remarks x86: Requires a Pentium or later.
    34023402 */
    3403 DECLINLINE(void) ASMAtomicOrS64(int64_t volatile RT_FAR *pi64, int64_t i64)
     3403DECLINLINE(void) ASMAtomicOrS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    34043404{
    34053405    ASMAtomicOrU64((uint64_t volatile RT_FAR *)pi64, i64);
     
    34163416 */
    34173417#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3418 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32);
    3419 #else
    3420 DECLINLINE(void) ASMAtomicAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32)
     3418RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO;
     3419#else
     3420DECLINLINE(void) ASMAtomicAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    34213421{
    34223422# if RT_INLINE_ASM_USES_INTRIN
     
    34533453 * @remarks x86: Requires a 386 or later.
    34543454 */
    3455 DECLINLINE(void) ASMAtomicAndS32(int32_t volatile RT_FAR *pi32, int32_t i32)
     3455DECLINLINE(void) ASMAtomicAndS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    34563456{
    34573457    ASMAtomicAndU32((uint32_t volatile RT_FAR *)pi32, (uint32_t)i32);
     
    34683468 */
    34693469#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3470 DECLASM(void) ASMAtomicAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64);
    3471 #else
    3472 DECLINLINE(void) ASMAtomicAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64)
     3470DECLASM(void) ASMAtomicAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO;
     3471#else
     3472DECLINLINE(void) ASMAtomicAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    34733473{
    34743474# if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64)
     
    35023502 * @remarks x86: Requires a Pentium or later.
    35033503 */
    3504 DECLINLINE(void) ASMAtomicAndS64(int64_t volatile RT_FAR *pi64, int64_t i64)
     3504DECLINLINE(void) ASMAtomicAndS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    35053505{
    35063506    ASMAtomicAndU64((uint64_t volatile RT_FAR *)pi64, (uint64_t)i64);
     
    35173517 */
    35183518#if RT_INLINE_ASM_EXTERNAL
    3519 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicUoOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32);
    3520 #else
    3521 DECLINLINE(void) ASMAtomicUoOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32)
     3519RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicUoOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO;
     3520#else
     3521DECLINLINE(void) ASMAtomicUoOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    35223522{
    35233523# if RT_INLINE_ASM_GNU_STYLE
     
    35513551 * @remarks x86: Requires a 386 or later.
    35523552 */
    3553 DECLINLINE(void) ASMAtomicUoOrS32(int32_t volatile RT_FAR *pi32, int32_t i32)
     3553DECLINLINE(void) ASMAtomicUoOrS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    35543554{
    35553555    ASMAtomicUoOrU32((uint32_t volatile RT_FAR *)pi32, i32);
     
    35663566 */
    35673567#if RT_INLINE_ASM_EXTERNAL
    3568 DECLASM(void) ASMAtomicUoOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64);
    3569 #else
    3570 DECLINLINE(void) ASMAtomicUoOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64)
     3568DECLASM(void) ASMAtomicUoOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO;
     3569#else
     3570DECLINLINE(void) ASMAtomicUoOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    35713571{
    35723572# if RT_INLINE_ASM_GNU_STYLE && defined(RT_ARCH_AMD64)
     
    35973597 * @remarks x86: Requires a Pentium or later.
    35983598 */
    3599 DECLINLINE(void) ASMAtomicUoOrS64(int64_t volatile RT_FAR *pi64, int64_t i64)
     3599DECLINLINE(void) ASMAtomicUoOrS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    36003600{
    36013601    ASMAtomicUoOrU64((uint64_t volatile RT_FAR *)pi64, i64);
     
    36123612 */
    36133613#if RT_INLINE_ASM_EXTERNAL
    3614 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicUoAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32);
    3615 #else
    3616 DECLINLINE(void) ASMAtomicUoAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32)
     3614RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicUoAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO;
     3615#else
     3616DECLINLINE(void) ASMAtomicUoAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF
    36173617{
    36183618# if RT_INLINE_ASM_GNU_STYLE
     
    36463646 * @remarks x86: Requires a 386 or later.
    36473647 */
    3648 DECLINLINE(void) ASMAtomicUoAndS32(int32_t volatile RT_FAR *pi32, int32_t i32)
     3648DECLINLINE(void) ASMAtomicUoAndS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF
    36493649{
    36503650    ASMAtomicUoAndU32((uint32_t volatile RT_FAR *)pi32, (uint32_t)i32);
     
    36613661 */
    36623662#if RT_INLINE_ASM_EXTERNAL
    3663 DECLASM(void) ASMAtomicUoAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64);
    3664 #else
    3665 DECLINLINE(void) ASMAtomicUoAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64)
     3663DECLASM(void) ASMAtomicUoAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO;
     3664#else
     3665DECLINLINE(void) ASMAtomicUoAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF
    36663666{
    36673667# if RT_INLINE_ASM_GNU_STYLE && defined(RT_ARCH_AMD64)
     
    36923692 * @remarks x86: Requires a Pentium or later.
    36933693 */
    3694 DECLINLINE(void) ASMAtomicUoAndS64(int64_t volatile RT_FAR *pi64, int64_t i64)
     3694DECLINLINE(void) ASMAtomicUoAndS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF
    36953695{
    36963696    ASMAtomicUoAndU64((uint64_t volatile RT_FAR *)pi64, (uint64_t)i64);
     
    37073707 */
    37083708#if RT_INLINE_ASM_EXTERNAL
    3709 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicUoIncU32(uint32_t volatile RT_FAR *pu32);
    3710 #else
    3711 DECLINLINE(uint32_t) ASMAtomicUoIncU32(uint32_t volatile RT_FAR *pu32)
     3709RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicUoIncU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_PROTO;
     3710#else
     3711DECLINLINE(uint32_t) ASMAtomicUoIncU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_DEF
    37123712{
    37133713    uint32_t u32;
     
    37483748 */
    37493749#if RT_INLINE_ASM_EXTERNAL
    3750 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicUoDecU32(uint32_t volatile RT_FAR *pu32);
    3751 #else
    3752 DECLINLINE(uint32_t) ASMAtomicUoDecU32(uint32_t volatile RT_FAR *pu32)
     3750RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicUoDecU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_PROTO;
     3751#else
     3752DECLINLINE(uint32_t) ASMAtomicUoDecU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_DEF
    37533753{
    37543754    uint32_t u32;
     
    38063806 */
    38073807#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3808 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemZeroPage(volatile void RT_FAR *pv);
    3809 # else
    3810 DECLINLINE(void) ASMMemZeroPage(volatile void RT_FAR *pv)
     3808RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemZeroPage(volatile void RT_FAR *pv) RT_NOTHROW_PROTO;
     3809# else
     3810DECLINLINE(void) ASMMemZeroPage(volatile void RT_FAR *pv) RT_NOTHROW_DEF
    38113811{
    38123812#  if RT_INLINE_ASM_USES_INTRIN
     
    38633863 */
    38643864#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3865 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemZero32(volatile void RT_FAR *pv, size_t cb);
    3866 #else
    3867 DECLINLINE(void) ASMMemZero32(volatile void RT_FAR *pv, size_t cb)
     3865RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemZero32(volatile void RT_FAR *pv, size_t cb) RT_NOTHROW_PROTO;
     3866#else
     3867DECLINLINE(void) ASMMemZero32(volatile void RT_FAR *pv, size_t cb) RT_NOTHROW_DEF
    38683868{
    38693869# if RT_INLINE_ASM_USES_INTRIN
     
    39113911 */
    39123912#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    3913 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemFill32(volatile void RT_FAR *pv, size_t cb, uint32_t u32);
    3914 #else
    3915 DECLINLINE(void) ASMMemFill32(volatile void RT_FAR *pv, size_t cb, uint32_t u32)
     3913RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemFill32(volatile void RT_FAR *pv, size_t cb, uint32_t u32) RT_NOTHROW_PROTO;
     3914#else
     3915DECLINLINE(void) ASMMemFill32(volatile void RT_FAR *pv, size_t cb, uint32_t u32) RT_NOTHROW_DEF
    39163916{
    39173917# if RT_INLINE_ASM_USES_INTRIN
     
    39653965    && !defined(RT_ARCH_SPARC64) \
    39663966    && !defined(RT_ARCH_SPARC)
    3967 DECLASM(void RT_FAR *) ASMMemFirstNonZero(void const RT_FAR *pv, size_t cb);
    3968 #else
    3969 DECLINLINE(void RT_FAR *) ASMMemFirstNonZero(void const RT_FAR *pv, size_t cb)
     3967DECLASM(void RT_FAR *) ASMMemFirstNonZero(void const RT_FAR *pv, size_t cb) RT_NOTHROW_PROTO;
     3968#else
     3969DECLINLINE(void RT_FAR *) ASMMemFirstNonZero(void const RT_FAR *pv, size_t cb) RT_NOTHROW_DEF
    39703970{
    39713971    uint8_t const *pb = (uint8_t const RT_FAR *)pv;
     
    39903990 * @sa      ASMMemFirstNonZero
    39913991 */
    3992 DECLINLINE(bool) ASMMemIsZero(void const RT_FAR *pv, size_t cb)
     3992DECLINLINE(bool) ASMMemIsZero(void const RT_FAR *pv, size_t cb) RT_NOTHROW_DEF
    39933993{
    39943994    return ASMMemFirstNonZero(pv, cb) == NULL;
     
    40044004 *                      boundary
    40054005 */
    4006 DECLINLINE(bool) ASMMemIsZeroPage(void const RT_FAR *pvPage)
     4006DECLINLINE(bool) ASMMemIsZeroPage(void const RT_FAR *pvPage) RT_NOTHROW_DEF
    40074007{
    40084008# if 0 /*RT_INLINE_ASM_GNU_STYLE - this is actually slower... */
     
    40744074    && !defined(RT_ARCH_SPARC64) \
    40754075    && !defined(RT_ARCH_SPARC)
    4076 DECLASM(void *) ASMMemFirstMismatchingU8(void const RT_FAR *pv, size_t cb, uint8_t u8);
    4077 #else
    4078 DECLINLINE(void *) ASMMemFirstMismatchingU8(void const RT_FAR *pv, size_t cb, uint8_t u8)
     4076DECLASM(void *) ASMMemFirstMismatchingU8(void const RT_FAR *pv, size_t cb, uint8_t u8) RT_NOTHROW_PROTO;
     4077#else
     4078DECLINLINE(void *) ASMMemFirstMismatchingU8(void const RT_FAR *pv, size_t cb, uint8_t u8) RT_NOTHROW_DEF
    40794079{
    40804080    uint8_t const *pb = (uint8_t const RT_FAR *)pv;
     
    41004100 * @remarks No alignment requirements.
    41014101 */
    4102 DECLINLINE(bool) ASMMemIsAllU8(void const RT_FAR *pv, size_t cb, uint8_t u8)
     4102DECLINLINE(bool) ASMMemIsAllU8(void const RT_FAR *pv, size_t cb, uint8_t u8) RT_NOTHROW_DEF
    41034103{
    41044104    return ASMMemFirstMismatchingU8(pv, cb, u8) == NULL;
     
    41184118 * @param   u32     The value it's supposed to be filled with.
    41194119 */
    4120 DECLINLINE(uint32_t RT_FAR *) ASMMemFirstMismatchingU32(void const RT_FAR *pv, size_t cb, uint32_t u32)
     4120DECLINLINE(uint32_t RT_FAR *) ASMMemFirstMismatchingU32(void const RT_FAR *pv, size_t cb, uint32_t u32) RT_NOTHROW_DEF
    41214121{
    41224122/** @todo rewrite this in inline assembly? */
     
    41444144 */
    41454145#if RT_INLINE_ASM_EXTERNAL
    4146 RT_ASM_DECL_PRAGMA_WATCOM(uint8_t) ASMProbeReadByte(const void RT_FAR *pvByte);
    4147 #else
    4148 DECLINLINE(uint8_t) ASMProbeReadByte(const void RT_FAR *pvByte)
     4146RT_ASM_DECL_PRAGMA_WATCOM(uint8_t) ASMProbeReadByte(const void RT_FAR *pvByte) RT_NOTHROW_PROTO;
     4147#else
     4148DECLINLINE(uint8_t) ASMProbeReadByte(const void RT_FAR *pvByte) RT_NOTHROW_DEF
    41494149{
    41504150    /** @todo verify that the compiler actually doesn't optimize this away. (intel & gcc) */
     
    41844184 * @param   cbBuf       The size of the buffer in bytes. Must be >= 1.
    41854185 */
    4186 DECLINLINE(void) ASMProbeReadBuffer(const void RT_FAR *pvBuf, size_t cbBuf)
     4186DECLINLINE(void) ASMProbeReadBuffer(const void RT_FAR *pvBuf, size_t cbBuf) RT_NOTHROW_DEF
    41874187{
    41884188    /** @todo verify that the compiler actually doesn't optimize this away. (intel & gcc) */
     
    42214221 */
    42224222#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4223 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4224 #else
    4225 DECLINLINE(void) ASMBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4223RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4224#else
     4225DECLINLINE(void) ASMBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    42264226{
    42274227# if RT_INLINE_ASM_USES_INTRIN
     
    42624262 */
    42634263#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4264 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4265 #else
    4266 DECLINLINE(void) ASMAtomicBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4264RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4265#else
     4266DECLINLINE(void) ASMAtomicBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    42674267{
    42684268    AssertMsg(!((uintptr_t)pvBitmap & 3), ("address %p not 32-bit aligned", pvBitmap));
     
    43044304 */
    43054305#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4306 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4307 #else
    4308 DECLINLINE(void) ASMBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4306RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4307#else
     4308DECLINLINE(void) ASMBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    43094309{
    43104310# if RT_INLINE_ASM_USES_INTRIN
     
    43464346 */
    43474347#if RT_INLINE_ASM_EXTERNAL
    4348 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4349 #else
    4350 DECLINLINE(void) ASMAtomicBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4348RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4349#else
     4350DECLINLINE(void) ASMAtomicBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    43514351{
    43524352    AssertMsg(!((uintptr_t)pvBitmap & 3), ("address %p not 32-bit aligned", pvBitmap));
     
    43864386 */
    43874387#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4388 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4389 #else
    4390 DECLINLINE(void) ASMBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4388RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4389#else
     4390DECLINLINE(void) ASMBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    43914391{
    43924392# if RT_INLINE_ASM_USES_INTRIN
     
    44264426 */
    44274427#if RT_INLINE_ASM_EXTERNAL
    4428 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4429 #else
    4430 DECLINLINE(void) ASMAtomicBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4428RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4429#else
     4430DECLINLINE(void) ASMAtomicBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    44314431{
    44324432    AssertMsg(!((uintptr_t)pvBitmap & 3), ("address %p not 32-bit aligned", pvBitmap));
     
    44694469 */
    44704470#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4471 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4472 #else
    4473 DECLINLINE(bool) ASMBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4471RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4472#else
     4473DECLINLINE(bool) ASMBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    44744474{
    44754475    union { bool f; uint32_t u32; uint8_t u8; } rc;
     
    45204520 */
    45214521#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4522 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4523 #else
    4524 DECLINLINE(bool) ASMAtomicBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4522RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4523#else
     4524DECLINLINE(bool) ASMAtomicBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    45254525{
    45264526    union { bool f; uint32_t u32; uint8_t u8; } rc;
     
    45724572 */
    45734573#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4574 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4575 #else
    4576 DECLINLINE(bool) ASMBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4574RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4575#else
     4576DECLINLINE(bool) ASMBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    45774577{
    45784578    union { bool f; uint32_t u32; uint8_t u8; } rc;
     
    46244624 */
    46254625#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4626 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4627 #else
    4628 DECLINLINE(bool) ASMAtomicBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4626RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4627#else
     4628DECLINLINE(bool) ASMAtomicBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    46294629{
    46304630    union { bool f; uint32_t u32; uint8_t u8; } rc;
     
    46774677 */
    46784678#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4679 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4680 #else
    4681 DECLINLINE(bool) ASMBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4679RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4680#else
     4681DECLINLINE(bool) ASMBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    46824682{
    46834683    union { bool f; uint32_t u32; uint8_t u8; } rc;
     
    47284728 */
    47294729#if RT_INLINE_ASM_EXTERNAL
    4730 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit);
    4731 #else
    4732 DECLINLINE(bool) ASMAtomicBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit)
     4730RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4731#else
     4732DECLINLINE(bool) ASMAtomicBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    47334733{
    47344734    union { bool f; uint32_t u32; uint8_t u8; } rc;
     
    47784778 */
    47794779#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    4780 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTest(const volatile void RT_FAR *pvBitmap, int32_t iBit);
    4781 #else
    4782 DECLINLINE(bool) ASMBitTest(const volatile void RT_FAR *pvBitmap, int32_t iBit)
     4780RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTest(const volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO;
     4781#else
     4782DECLINLINE(bool) ASMBitTest(const volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF
    47834783{
    47844784    union { bool f; uint32_t u32; uint8_t u8; } rc;
     
    48224822 * @param   iBitEnd     The first bit not to clear.
    48234823 */
    4824 DECLINLINE(void) ASMBitClearRange(volatile void RT_FAR *pvBitmap, int32_t iBitStart, int32_t iBitEnd)
     4824DECLINLINE(void) ASMBitClearRange(volatile void RT_FAR *pvBitmap, int32_t iBitStart, int32_t iBitEnd) RT_NOTHROW_DEF
    48254825{
    48264826    if (iBitStart < iBitEnd)
     
    48634863 * @param   iBitEnd     The first bit not to set.
    48644864 */
    4865 DECLINLINE(void) ASMBitSetRange(volatile void RT_FAR *pvBitmap, int32_t iBitStart, int32_t iBitEnd)
     4865DECLINLINE(void) ASMBitSetRange(volatile void RT_FAR *pvBitmap, int32_t iBitStart, int32_t iBitEnd) RT_NOTHROW_DEF
    48664866{
    48674867    if (iBitStart < iBitEnd)
     
    49064906 */
    49074907#if RT_INLINE_ASM_EXTERNAL
    4908 DECLASM(int32_t) ASMBitFirstClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits);
    4909 #else
    4910 DECLINLINE(int32_t) ASMBitFirstClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits)
     4908DECLASM(int32_t) ASMBitFirstClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits) RT_NOTHROW_PROTO;
     4909#else
     4910DECLINLINE(int32_t) ASMBitFirstClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits) RT_NOTHROW_DEF
    49114911{
    49124912    if (cBits)
     
    49924992 */
    49934993#if RT_INLINE_ASM_EXTERNAL
    4994 DECLASM(int) ASMBitNextClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev);
    4995 #else
    4996 DECLINLINE(int) ASMBitNextClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev)
     4994DECLASM(int) ASMBitNextClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev) RT_NOTHROW_PROTO;
     4995#else
     4996DECLINLINE(int) ASMBitNextClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev) RT_NOTHROW_DEF
    49974997{
    49984998    const volatile uint32_t RT_FAR *pau32Bitmap = (const volatile uint32_t RT_FAR *)pvBitmap;
     
    50615061 */
    50625062#if RT_INLINE_ASM_EXTERNAL
    5063 DECLASM(int32_t) ASMBitFirstSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits);
    5064 #else
    5065 DECLINLINE(int32_t) ASMBitFirstSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits)
     5063DECLASM(int32_t) ASMBitFirstSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits) RT_NOTHROW_PROTO;
     5064#else
     5065DECLINLINE(int32_t) ASMBitFirstSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits) RT_NOTHROW_DEF
    50665066{
    50675067    if (cBits)
     
    51465146 */
    51475147#if RT_INLINE_ASM_EXTERNAL
    5148 DECLASM(int) ASMBitNextSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev);
    5149 #else
    5150 DECLINLINE(int) ASMBitNextSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev)
     5148DECLASM(int) ASMBitNextSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev) RT_NOTHROW_PROTO;
     5149#else
     5150DECLINLINE(int) ASMBitNextSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev) RT_NOTHROW_DEF
    51515151{
    51525152    const volatile uint32_t RT_FAR *pau32Bitmap = (const volatile uint32_t RT_FAR *)pvBitmap;
     
    52165216 */
    52175217#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    5218 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU32(uint32_t u32);
    5219 #else
    5220 DECLINLINE(unsigned) ASMBitFirstSetU32(uint32_t u32)
     5218RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU32(uint32_t u32) RT_NOTHROW_PROTO;
     5219#else
     5220DECLINLINE(unsigned) ASMBitFirstSetU32(uint32_t u32) RT_NOTHROW_DEF
    52215221{
    52225222# if RT_INLINE_ASM_USES_INTRIN
     
    52655265 * @remark  Similar to ffs() in BSD.
    52665266 */
    5267 DECLINLINE(unsigned) ASMBitFirstSetS32(int32_t i32)
     5267DECLINLINE(unsigned) ASMBitFirstSetS32(int32_t i32) RT_NOTHROW_DEF
    52685268{
    52695269    return ASMBitFirstSetU32((uint32_t)i32);
     
    52825282 */
    52835283#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    5284 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU64(uint64_t u64);
    5285 #else
    5286 DECLINLINE(unsigned) ASMBitFirstSetU64(uint64_t u64)
     5284RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU64(uint64_t u64) RT_NOTHROW_PROTO;
     5285#else
     5286DECLINLINE(unsigned) ASMBitFirstSetU64(uint64_t u64) RT_NOTHROW_DEF
    52875287{
    52885288# if RT_INLINE_ASM_USES_INTRIN
     
    53375337 */
    53385338#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    5339 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU16(uint16_t u16);
    5340 #else
    5341 DECLINLINE(unsigned) ASMBitFirstSetU16(uint16_t u16)
     5339RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU16(uint16_t u16) RT_NOTHROW_PROTO;
     5340#else
     5341DECLINLINE(unsigned) ASMBitFirstSetU16(uint16_t u16) RT_NOTHROW_DEF
    53425342{
    53435343    return ASMBitFirstSetU32((uint32_t)u16);
     
    53565356 */
    53575357#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    5358 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU32(uint32_t u32);
    5359 #else
    5360 DECLINLINE(unsigned) ASMBitLastSetU32(uint32_t u32)
     5358RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU32(uint32_t u32) RT_NOTHROW_PROTO;
     5359#else
     5360DECLINLINE(unsigned) ASMBitLastSetU32(uint32_t u32) RT_NOTHROW_DEF
    53615361{
    53625362# if RT_INLINE_ASM_USES_INTRIN
     
    54055405 * @remark  Similar to fls() in BSD.
    54065406 */
    5407 DECLINLINE(unsigned) ASMBitLastSetS32(int32_t i32)
     5407DECLINLINE(unsigned) ASMBitLastSetS32(int32_t i32) RT_NOTHROW_DEF
    54085408{
    54095409    return ASMBitLastSetU32((uint32_t)i32);
     
    54225422 */
    54235423#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    5424 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU64(uint64_t u64);
    5425 #else
    5426 DECLINLINE(unsigned) ASMBitLastSetU64(uint64_t u64)
     5424RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU64(uint64_t u64) RT_NOTHROW_PROTO;
     5425#else
     5426DECLINLINE(unsigned) ASMBitLastSetU64(uint64_t u64) RT_NOTHROW_DEF
    54275427{
    54285428# if RT_INLINE_ASM_USES_INTRIN
     
    54755475 */
    54765476#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    5477 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU16(uint16_t u16);
    5478 #else
    5479 DECLINLINE(unsigned) ASMBitLastSetU16(uint16_t u16)
     5477RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU16(uint16_t u16) RT_NOTHROW_PROTO;
     5478#else
     5479DECLINLINE(unsigned) ASMBitLastSetU16(uint16_t u16) RT_NOTHROW_DEF
    54805480{
    54815481    return ASMBitLastSetU32((uint32_t)u16);
     
    54915491 */
    54925492#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    5493 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMByteSwapU16(uint16_t u16);
    5494 #else
    5495 DECLINLINE(uint16_t) ASMByteSwapU16(uint16_t u16)
     5493RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMByteSwapU16(uint16_t u16) RT_NOTHROW_PROTO;
     5494#else
     5495DECLINLINE(uint16_t) ASMByteSwapU16(uint16_t u16) RT_NOTHROW_DEF
    54965496{
    54975497# if RT_INLINE_ASM_USES_INTRIN
     
    55195519 */
    55205520#if RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN
    5521 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMByteSwapU32(uint32_t u32);
    5522 #else
    5523 DECLINLINE(uint32_t) ASMByteSwapU32(uint32_t u32)
     5521RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMByteSwapU32(uint32_t u32) RT_NOTHROW_PROTO;
     5522#else
     5523DECLINLINE(uint32_t) ASMByteSwapU32(uint32_t u32) RT_NOTHROW_DEF
    55245524{
    55255525# if RT_INLINE_ASM_USES_INTRIN
     
    55465546 * @param   u64     64-bit integer value.
    55475547 */
    5548 DECLINLINE(uint64_t) ASMByteSwapU64(uint64_t u64)
     5548DECLINLINE(uint64_t) ASMByteSwapU64(uint64_t u64) RT_NOTHROW_DEF
    55495549{
    55505550#if defined(RT_ARCH_AMD64) && RT_INLINE_ASM_USES_INTRIN
     
    55665566 */
    55675567#ifdef __WATCOMC__
    5568 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMRotateLeftU32(uint32_t u32, unsigned cShift);
    5569 #else
    5570 DECLINLINE(uint32_t) ASMRotateLeftU32(uint32_t u32, uint32_t cShift)
     5568RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMRotateLeftU32(uint32_t u32, unsigned cShift) RT_NOTHROW_PROTO;
     5569#else
     5570DECLINLINE(uint32_t) ASMRotateLeftU32(uint32_t u32, uint32_t cShift) RT_NOTHROW_DEF
    55715571{
    55725572# if RT_INLINE_ASM_USES_INTRIN
     
    55915591 */
    55925592#ifdef __WATCOMC__
    5593 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMRotateRightU32(uint32_t u32, unsigned cShift);
    5594 #else
    5595 DECLINLINE(uint32_t) ASMRotateRightU32(uint32_t u32, uint32_t cShift)
     5593RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMRotateRightU32(uint32_t u32, unsigned cShift) RT_NOTHROW_PROTO;
     5594#else
     5595DECLINLINE(uint32_t) ASMRotateRightU32(uint32_t u32, uint32_t cShift) RT_NOTHROW_DEF
    55965596{
    55975597# if RT_INLINE_ASM_USES_INTRIN
     
    56155615 * @param   cShift              How many bits to rotate by.
    56165616 */
    5617 DECLINLINE(uint64_t) ASMRotateLeftU64(uint64_t u64, uint32_t cShift)
     5617DECLINLINE(uint64_t) ASMRotateLeftU64(uint64_t u64, uint32_t cShift) RT_NOTHROW_DEF
    56185618{
    56195619#if RT_INLINE_ASM_USES_INTRIN
     
    56525652 * @param   cShift              How many bits to rotate by.
    56535653 */
    5654 DECLINLINE(uint64_t) ASMRotateRightU64(uint64_t u64, uint32_t cShift)
     5654DECLINLINE(uint64_t) ASMRotateRightU64(uint64_t u64, uint32_t cShift) RT_NOTHROW_DEF
    56555655{
    56565656#if RT_INLINE_ASM_USES_INTRIN
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