Changeset 85087 in vbox
- Timestamp:
- Jul 7, 2020 5:02:20 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/asm.h
r83782 r85087 205 205 void ASMCompilerBarrier(void); 206 206 #else /* 2003 should have _ReadWriteBarrier() but I guess we're at 2002 level then... */ 207 DECLINLINE(void) ASMCompilerBarrier(void) 207 DECLINLINE(void) ASMCompilerBarrier(void) RT_NOTHROW_DEF 208 208 { 209 209 __asm … … 230 230 */ 231 231 #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) 232 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMNopPause(void) RT_NOTHROW_PROTO; 233 #else 234 DECLINLINE(void) ASMNopPause(void) RT_NOTHROW_DEF 235 235 { 236 236 # if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86) … … 258 258 */ 259 259 #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) 260 RT_ASM_DECL_PRAGMA_WATCOM(uint8_t) ASMAtomicXchgU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) RT_NOTHROW_PROTO; 261 #else 262 DECLINLINE(uint8_t) ASMAtomicXchgU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) RT_NOTHROW_DEF 263 263 { 264 264 # if RT_INLINE_ASM_GNU_STYLE … … 296 296 * @param i8 The 8-bit value to assign to *pi8. 297 297 */ 298 DECLINLINE(int8_t) ASMAtomicXchgS8(volatile int8_t RT_FAR *pi8, int8_t i8) 298 DECLINLINE(int8_t) ASMAtomicXchgS8(volatile int8_t RT_FAR *pi8, int8_t i8) RT_NOTHROW_DEF 299 299 { 300 300 return (int8_t)ASMAtomicXchgU8((volatile uint8_t RT_FAR *)pi8, (uint8_t)i8); … … 309 309 * @param f The 8-bit value to assign to *pi8. 310 310 */ 311 DECLINLINE(bool) ASMAtomicXchgBool(volatile bool RT_FAR *pf, bool f) 311 DECLINLINE(bool) ASMAtomicXchgBool(volatile bool RT_FAR *pf, bool f) RT_NOTHROW_DEF 312 312 { 313 313 #ifdef _MSC_VER … … 327 327 */ 328 328 #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) 329 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicXchgU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) RT_NOTHROW_PROTO; 330 #else 331 DECLINLINE(uint16_t) ASMAtomicXchgU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) RT_NOTHROW_DEF 332 332 { 333 333 # if RT_INLINE_ASM_GNU_STYLE … … 365 365 * @param i16 The 16-bit value to assign to *pi16. 366 366 */ 367 DECLINLINE(int16_t) ASMAtomicXchgS16(volatile int16_t RT_FAR *pi16, int16_t i16) 367 DECLINLINE(int16_t) ASMAtomicXchgS16(volatile int16_t RT_FAR *pi16, int16_t i16) RT_NOTHROW_DEF 368 368 { 369 369 return (int16_t)ASMAtomicXchgU16((volatile uint16_t RT_FAR *)pi16, (uint16_t)i16); … … 381 381 */ 382 382 #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) 383 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicXchgU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO; 384 #else 385 DECLINLINE(uint32_t) ASMAtomicXchgU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 386 386 { 387 387 # if RT_INLINE_ASM_GNU_STYLE … … 423 423 * @param i32 The 32-bit value to assign to *pi32. 424 424 */ 425 DECLINLINE(int32_t) ASMAtomicXchgS32(volatile int32_t RT_FAR *pi32, int32_t i32) 425 DECLINLINE(int32_t) ASMAtomicXchgS32(volatile int32_t RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 426 426 { 427 427 return (int32_t)ASMAtomicXchgU32((volatile uint32_t RT_FAR *)pi32, (uint32_t)i32); … … 440 440 #if (RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN) \ 441 441 || 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) 442 RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO; 443 #else 444 DECLINLINE(uint64_t) ASMAtomicXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 445 445 { 446 446 # if defined(RT_ARCH_AMD64) … … 518 518 * @param i64 The 64-bit value to assign to *pi64. 519 519 */ 520 DECLINLINE(int64_t) ASMAtomicXchgS64(volatile int64_t RT_FAR *pi64, int64_t i64) 520 DECLINLINE(int64_t) ASMAtomicXchgS64(volatile int64_t RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 521 521 { 522 522 return (int64_t)ASMAtomicXchgU64((volatile uint64_t RT_FAR *)pi64, (uint64_t)i64); … … 531 531 * @param uNew The new value to assign to *puDst. 532 532 */ 533 DECLINLINE(size_t) ASMAtomicXchgZ(size_t volatile RT_FAR *puDst, const size_t uNew) 533 DECLINLINE(size_t) ASMAtomicXchgZ(size_t volatile RT_FAR *puDst, const size_t uNew) RT_NOTHROW_DEF 534 534 { 535 535 #if ARCH_BITS == 16 … … 553 553 * @param pv The pointer value to assign to *ppv. 554 554 */ 555 DECLINLINE(void RT_FAR *) ASMAtomicXchgPtr(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pv) 555 DECLINLINE(void RT_FAR *) ASMAtomicXchgPtr(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pv) RT_NOTHROW_DEF 556 556 { 557 557 #if ARCH_BITS == 32 || ARCH_BITS == 16 … … 595 595 * @param pvRC The pointer value to assign to *ppv. 596 596 */ 597 DECLINLINE(RTRCPTR) ASMAtomicXchgRCPtr(RTRCPTR volatile RT_FAR *ppvRC, RTRCPTR pvRC) 597 DECLINLINE(RTRCPTR) ASMAtomicXchgRCPtr(RTRCPTR volatile RT_FAR *ppvRC, RTRCPTR pvRC) RT_NOTHROW_DEF 598 598 { 599 599 return (RTRCPTR)ASMAtomicXchgU32((uint32_t volatile RT_FAR *)(void RT_FAR *)ppvRC, (uint32_t)pvRC); … … 608 608 * @param pvR0 The pointer value to assign to *ppv. 609 609 */ 610 DECLINLINE(RTR0PTR) ASMAtomicXchgR0Ptr(RTR0PTR volatile RT_FAR *ppvR0, RTR0PTR pvR0) 610 DECLINLINE(RTR0PTR) ASMAtomicXchgR0Ptr(RTR0PTR volatile RT_FAR *ppvR0, RTR0PTR pvR0) RT_NOTHROW_DEF 611 611 { 612 612 #if R0_ARCH_BITS == 32 || ARCH_BITS == 16 … … 627 627 * @param pvR3 The pointer value to assign to *ppv. 628 628 */ 629 DECLINLINE(RTR3PTR) ASMAtomicXchgR3Ptr(RTR3PTR volatile RT_FAR *ppvR3, RTR3PTR pvR3) 629 DECLINLINE(RTR3PTR) ASMAtomicXchgR3Ptr(RTR3PTR volatile RT_FAR *ppvR3, RTR3PTR pvR3) RT_NOTHROW_DEF 630 630 { 631 631 #if R3_ARCH_BITS == 32 || ARCH_BITS == 16 … … 720 720 */ 721 721 #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) 722 RT_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 724 DECLINLINE(bool) ASMAtomicCmpXchgU8(volatile uint8_t RT_FAR *pu8, const uint8_t u8New, uint8_t u8Old) RT_NOTHROW_DEF 725 725 { 726 726 uint8_t u8Ret; … … 750 750 * @remarks x86: Requires a 486 or later. 751 751 */ 752 DECLINLINE(bool) ASMAtomicCmpXchgS8(volatile int8_t RT_FAR *pi8, const int8_t i8New, const int8_t i8Old) 752 DECLINLINE(bool) ASMAtomicCmpXchgS8(volatile int8_t RT_FAR *pi8, const int8_t i8New, const int8_t i8Old) RT_NOTHROW_DEF 753 753 { 754 754 return ASMAtomicCmpXchgU8((volatile uint8_t RT_FAR *)pi8, (uint8_t)i8New, (uint8_t)i8Old); … … 768 768 * @remarks x86: Requires a 486 or later. 769 769 */ 770 DECLINLINE(bool) ASMAtomicCmpXchgBool(volatile bool RT_FAR *pf, const bool fNew, const bool fOld) 770 DECLINLINE(bool) ASMAtomicCmpXchgBool(volatile bool RT_FAR *pf, const bool fNew, const bool fOld) RT_NOTHROW_DEF 771 771 { 772 772 return ASMAtomicCmpXchgU8((volatile uint8_t RT_FAR *)pf, (uint8_t)fNew, (uint8_t)fOld); … … 787 787 */ 788 788 #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) 789 RT_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 791 DECLINLINE(bool) ASMAtomicCmpXchgU32(volatile uint32_t RT_FAR *pu32, const uint32_t u32New, uint32_t u32Old) RT_NOTHROW_DEF 792 792 { 793 793 # if RT_INLINE_ASM_GNU_STYLE … … 844 844 * @remarks x86: Requires a 486 or later. 845 845 */ 846 DECLINLINE(bool) ASMAtomicCmpXchgS32(volatile int32_t RT_FAR *pi32, const int32_t i32New, const int32_t i32Old) 846 DECLINLINE(bool) ASMAtomicCmpXchgS32(volatile int32_t RT_FAR *pi32, const int32_t i32New, const int32_t i32Old) RT_NOTHROW_DEF 847 847 { 848 848 return ASMAtomicCmpXchgU32((volatile uint32_t RT_FAR *)pi32, (uint32_t)i32New, (uint32_t)i32Old); … … 864 864 #if (RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN) \ 865 865 || 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) 866 RT_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 868 DECLINLINE(bool) ASMAtomicCmpXchgU64(volatile uint64_t RT_FAR *pu64, uint64_t u64New, uint64_t u64Old) RT_NOTHROW_DEF 869 869 { 870 870 # if RT_INLINE_ASM_USES_INTRIN … … 963 963 * @remarks x86: Requires a Pentium or later. 964 964 */ 965 DECLINLINE(bool) ASMAtomicCmpXchgS64(volatile int64_t RT_FAR *pi64, const int64_t i64, const int64_t i64Old) 965 DECLINLINE(bool) ASMAtomicCmpXchgS64(volatile int64_t RT_FAR *pi64, const int64_t i64, const int64_t i64Old) RT_NOTHROW_DEF 966 966 { 967 967 return ASMAtomicCmpXchgU64((volatile uint64_t RT_FAR *)pi64, (uint64_t)i64, (uint64_t)i64Old); … … 981 981 * @remarks x86: Requires a 486 or later. 982 982 */ 983 DECLINLINE(bool) ASMAtomicCmpXchgPtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pvNew, const void RT_FAR *pvOld) 983 DECLINLINE(bool) ASMAtomicCmpXchgPtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void RT_FAR *pvNew, const void RT_FAR *pvOld) RT_NOTHROW_DEF 984 984 { 985 985 #if ARCH_BITS == 32 || ARCH_BITS == 16 … … 1091 1091 */ 1092 1092 #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) 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) RT_NOTHROW_PROTO; 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) RT_NOTHROW_DEF 1096 1096 { 1097 1097 # if RT_INLINE_ASM_GNU_STYLE … … 1154 1154 * @remarks x86: Requires a 486 or later. 1155 1155 */ 1156 DECLINLINE(bool) ASMAtomicCmpXchgExS32(volatile int32_t RT_FAR *pi32, const int32_t i32New, const int32_t i32Old, int32_t RT_FAR *pi32Old) 1156 DECLINLINE(bool) ASMAtomicCmpXchgExS32(volatile int32_t RT_FAR *pi32, const int32_t i32New, const int32_t i32Old, int32_t RT_FAR *pi32Old) RT_NOTHROW_DEF 1157 1157 { 1158 1158 return ASMAtomicCmpXchgExU32((volatile uint32_t RT_FAR *)pi32, (uint32_t)i32New, (uint32_t)i32Old, (uint32_t RT_FAR *)pi32Old); … … 1176 1176 #if (RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN) \ 1177 1177 || 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) 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) RT_NOTHROW_PROTO; 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) RT_NOTHROW_DEF 1181 1181 { 1182 1182 # if RT_INLINE_ASM_USES_INTRIN … … 1277 1277 * @remarks x86: Requires a Pentium or later. 1278 1278 */ 1279 DECLINLINE(bool) ASMAtomicCmpXchgExS64(volatile int64_t RT_FAR *pi64, const int64_t i64, const int64_t i64Old, int64_t RT_FAR *pi64Old) 1279 DECLINLINE(bool) ASMAtomicCmpXchgExS64(volatile int64_t RT_FAR *pi64, const int64_t i64, const int64_t i64Old, int64_t RT_FAR *pi64Old) RT_NOTHROW_DEF 1280 1280 { 1281 1281 return ASMAtomicCmpXchgExU64((volatile uint64_t RT_FAR *)pi64, (uint64_t)i64, (uint64_t)i64Old, (uint64_t RT_FAR *)pi64Old); … … 1354 1354 */ 1355 1355 DECLINLINE(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 1357 1357 { 1358 1358 #if ARCH_BITS == 32 || ARCH_BITS == 16 … … 1404 1404 */ 1405 1405 #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) 1406 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionCpuId(void) RT_NOTHROW_PROTO; 1407 #else 1408 DECLINLINE(void) ASMSerializeInstructionCpuId(void) RT_NOTHROW_DEF 1409 1409 { 1410 1410 # if RT_INLINE_ASM_GNU_STYLE … … 1450 1450 */ 1451 1451 #if RT_INLINE_ASM_EXTERNAL 1452 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionIRet(void) ;1453 #else 1454 DECLINLINE(void) ASMSerializeInstructionIRet(void) 1452 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionIRet(void) RT_NOTHROW_PROTO; 1453 #else 1454 DECLINLINE(void) ASMSerializeInstructionIRet(void) RT_NOTHROW_DEF 1455 1455 { 1456 1456 # if RT_INLINE_ASM_GNU_STYLE … … 1495 1495 */ 1496 1496 #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) 1497 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMSerializeInstructionRdTscp(void) RT_NOTHROW_PROTO; 1498 #else 1499 DECLINLINE(void) ASMSerializeInstructionRdTscp(void) RT_NOTHROW_DEF 1500 1500 { 1501 1501 # if RT_INLINE_ASM_GNU_STYLE … … 1533 1533 # define ASMSerializeInstruction() ASMSerializeInstructionCpuId() 1534 1534 #elif defined(RT_ARCH_SPARC64) 1535 RTDECL(void) ASMSerializeInstruction(void) ;1535 RTDECL(void) ASMSerializeInstruction(void) RT_NOTHROW_PROTO; 1536 1536 #else 1537 1537 # error "Port me" … … 1542 1542 * Memory fence, waits for any pending writes and reads to complete. 1543 1543 */ 1544 DECLINLINE(void) ASMMemoryFence(void) 1544 DECLINLINE(void) ASMMemoryFence(void) RT_NOTHROW_DEF 1545 1545 { 1546 1546 #if defined(RT_ARCH_AMD64) || (defined(RT_ARCH_X86) && !defined(RT_WITH_OLD_CPU_SUPPORT)) … … 1570 1570 * Write fence, waits for any pending writes to complete. 1571 1571 */ 1572 DECLINLINE(void) ASMWriteFence(void) 1572 DECLINLINE(void) ASMWriteFence(void) RT_NOTHROW_DEF 1573 1573 { 1574 1574 #if defined(RT_ARCH_AMD64) || (defined(RT_ARCH_X86) && !defined(RT_WITH_OLD_CPU_SUPPORT)) … … 1594 1594 * Read fence, waits for any pending reads to complete. 1595 1595 */ 1596 DECLINLINE(void) ASMReadFence(void) 1596 DECLINLINE(void) ASMReadFence(void) RT_NOTHROW_DEF 1597 1597 { 1598 1598 #if defined(RT_ARCH_AMD64) || (defined(RT_ARCH_X86) && !defined(RT_WITH_OLD_CPU_SUPPORT)) … … 1621 1621 * @param pu8 Pointer to the 8-bit variable to read. 1622 1622 */ 1623 DECLINLINE(uint8_t) ASMAtomicReadU8(volatile uint8_t RT_FAR *pu8) 1623 DECLINLINE(uint8_t) ASMAtomicReadU8(volatile uint8_t RT_FAR *pu8) RT_NOTHROW_DEF 1624 1624 { 1625 1625 ASMMemoryFence(); … … 1634 1634 * @param pu8 Pointer to the 8-bit variable to read. 1635 1635 */ 1636 DECLINLINE(uint8_t) ASMAtomicUoReadU8(volatile uint8_t RT_FAR *pu8) 1636 DECLINLINE(uint8_t) ASMAtomicUoReadU8(volatile uint8_t RT_FAR *pu8) RT_NOTHROW_DEF 1637 1637 { 1638 1638 return *pu8; /* byte reads are atomic on x86 */ … … 1646 1646 * @param pi8 Pointer to the 8-bit variable to read. 1647 1647 */ 1648 DECLINLINE(int8_t) ASMAtomicReadS8(volatile int8_t RT_FAR *pi8) 1648 DECLINLINE(int8_t) ASMAtomicReadS8(volatile int8_t RT_FAR *pi8) RT_NOTHROW_DEF 1649 1649 { 1650 1650 ASMMemoryFence(); … … 1659 1659 * @param pi8 Pointer to the 8-bit variable to read. 1660 1660 */ 1661 DECLINLINE(int8_t) ASMAtomicUoReadS8(volatile int8_t RT_FAR *pi8) 1661 DECLINLINE(int8_t) ASMAtomicUoReadS8(volatile int8_t RT_FAR *pi8) RT_NOTHROW_DEF 1662 1662 { 1663 1663 return *pi8; /* byte reads are atomic on x86 */ … … 1671 1671 * @param pu16 Pointer to the 16-bit variable to read. 1672 1672 */ 1673 DECLINLINE(uint16_t) ASMAtomicReadU16(volatile uint16_t RT_FAR *pu16) 1673 DECLINLINE(uint16_t) ASMAtomicReadU16(volatile uint16_t RT_FAR *pu16) RT_NOTHROW_DEF 1674 1674 { 1675 1675 ASMMemoryFence(); … … 1685 1685 * @param pu16 Pointer to the 16-bit variable to read. 1686 1686 */ 1687 DECLINLINE(uint16_t) ASMAtomicUoReadU16(volatile uint16_t RT_FAR *pu16) 1687 DECLINLINE(uint16_t) ASMAtomicUoReadU16(volatile uint16_t RT_FAR *pu16) RT_NOTHROW_DEF 1688 1688 { 1689 1689 Assert(!((uintptr_t)pu16 & 1)); … … 1698 1698 * @param pi16 Pointer to the 16-bit variable to read. 1699 1699 */ 1700 DECLINLINE(int16_t) ASMAtomicReadS16(volatile int16_t RT_FAR *pi16) 1700 DECLINLINE(int16_t) ASMAtomicReadS16(volatile int16_t RT_FAR *pi16) RT_NOTHROW_DEF 1701 1701 { 1702 1702 ASMMemoryFence(); … … 1712 1712 * @param pi16 Pointer to the 16-bit variable to read. 1713 1713 */ 1714 DECLINLINE(int16_t) ASMAtomicUoReadS16(volatile int16_t RT_FAR *pi16) 1714 DECLINLINE(int16_t) ASMAtomicUoReadS16(volatile int16_t RT_FAR *pi16) RT_NOTHROW_DEF 1715 1715 { 1716 1716 Assert(!((uintptr_t)pi16 & 1)); … … 1725 1725 * @param pu32 Pointer to the 32-bit variable to read. 1726 1726 */ 1727 DECLINLINE(uint32_t) ASMAtomicReadU32(volatile uint32_t RT_FAR *pu32) 1727 DECLINLINE(uint32_t) ASMAtomicReadU32(volatile uint32_t RT_FAR *pu32) RT_NOTHROW_DEF 1728 1728 { 1729 1729 ASMMemoryFence(); … … 1742 1742 * @param pu32 Pointer to the 32-bit variable to read. 1743 1743 */ 1744 DECLINLINE(uint32_t) ASMAtomicUoReadU32(volatile uint32_t RT_FAR *pu32) 1744 DECLINLINE(uint32_t) ASMAtomicUoReadU32(volatile uint32_t RT_FAR *pu32) RT_NOTHROW_DEF 1745 1745 { 1746 1746 Assert(!((uintptr_t)pu32 & 3)); … … 1758 1758 * @param pi32 Pointer to the 32-bit variable to read. 1759 1759 */ 1760 DECLINLINE(int32_t) ASMAtomicReadS32(volatile int32_t RT_FAR *pi32) 1760 DECLINLINE(int32_t) ASMAtomicReadS32(volatile int32_t RT_FAR *pi32) RT_NOTHROW_DEF 1761 1761 { 1762 1762 ASMMemoryFence(); … … 1775 1775 * @param pi32 Pointer to the 32-bit variable to read. 1776 1776 */ 1777 DECLINLINE(int32_t) ASMAtomicUoReadS32(volatile int32_t RT_FAR *pi32) 1777 DECLINLINE(int32_t) ASMAtomicUoReadS32(volatile int32_t RT_FAR *pi32) RT_NOTHROW_DEF 1778 1778 { 1779 1779 Assert(!((uintptr_t)pi32 & 3)); … … 1797 1797 #if (RT_INLINE_ASM_EXTERNAL && !defined(RT_ARCH_AMD64)) \ 1798 1798 || 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) 1799 RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicReadU64(volatile uint64_t RT_FAR *pu64) RT_NOTHROW_PROTO; 1800 #else 1801 DECLINLINE(uint64_t) ASMAtomicReadU64(volatile uint64_t RT_FAR *pu64) RT_NOTHROW_DEF 1802 1802 { 1803 1803 uint64_t u64; … … 1879 1879 && ( (RT_INLINE_ASM_EXTERNAL && !RT_INLINE_ASM_USES_INTRIN) \ 1880 1880 || 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) 1881 RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicUoReadU64(volatile uint64_t RT_FAR *pu64) RT_NOTHROW_PROTO; 1882 #else 1883 DECLINLINE(uint64_t) ASMAtomicUoReadU64(volatile uint64_t RT_FAR *pu64) RT_NOTHROW_DEF 1884 1884 { 1885 1885 uint64_t u64; … … 1959 1959 * @remarks x86: Requires a Pentium or later. 1960 1960 */ 1961 DECLINLINE(int64_t) ASMAtomicReadS64(volatile int64_t RT_FAR *pi64) 1961 DECLINLINE(int64_t) ASMAtomicReadS64(volatile int64_t RT_FAR *pi64) RT_NOTHROW_DEF 1962 1962 { 1963 1963 return (int64_t)ASMAtomicReadU64((volatile uint64_t RT_FAR *)pi64); … … 1975 1975 * @remarks x86: Requires a Pentium or later. 1976 1976 */ 1977 DECLINLINE(int64_t) ASMAtomicUoReadS64(volatile int64_t RT_FAR *pi64) 1977 DECLINLINE(int64_t) ASMAtomicUoReadS64(volatile int64_t RT_FAR *pi64) RT_NOTHROW_DEF 1978 1978 { 1979 1979 return (int64_t)ASMAtomicUoReadU64((volatile uint64_t RT_FAR *)pi64); … … 1987 1987 * @param pcb Pointer to the size_t variable to read. 1988 1988 */ 1989 DECLINLINE(size_t) ASMAtomicReadZ(size_t volatile RT_FAR *pcb) 1989 DECLINLINE(size_t) ASMAtomicReadZ(size_t volatile RT_FAR *pcb) RT_NOTHROW_DEF 1990 1990 { 1991 1991 #if ARCH_BITS == 64 … … 2008 2008 * @param pcb Pointer to the size_t variable to read. 2009 2009 */ 2010 DECLINLINE(size_t) ASMAtomicUoReadZ(size_t volatile RT_FAR *pcb) 2010 DECLINLINE(size_t) ASMAtomicUoReadZ(size_t volatile RT_FAR *pcb) RT_NOTHROW_DEF 2011 2011 { 2012 2012 #if ARCH_BITS == 64 || ARCH_BITS == 16 … … 2032 2032 * requires less typing (no casts). 2033 2033 */ 2034 DECLINLINE(void RT_FAR *) ASMAtomicReadPtr(void RT_FAR * volatile RT_FAR *ppv) 2034 DECLINLINE(void RT_FAR *) ASMAtomicReadPtr(void RT_FAR * volatile RT_FAR *ppv) RT_NOTHROW_DEF 2035 2035 { 2036 2036 #if ARCH_BITS == 32 || ARCH_BITS == 16 … … 2073 2073 * requires less typing (no casts). 2074 2074 */ 2075 DECLINLINE(void RT_FAR *) ASMAtomicUoReadPtr(void RT_FAR * volatile RT_FAR *ppv) 2075 DECLINLINE(void RT_FAR *) ASMAtomicUoReadPtr(void RT_FAR * volatile RT_FAR *ppv) RT_NOTHROW_DEF 2076 2076 { 2077 2077 #if ARCH_BITS == 32 || ARCH_BITS == 16 … … 2112 2112 * @param pf Pointer to the boolean variable to read. 2113 2113 */ 2114 DECLINLINE(bool) ASMAtomicReadBool(volatile bool RT_FAR *pf) 2114 DECLINLINE(bool) ASMAtomicReadBool(volatile bool RT_FAR *pf) RT_NOTHROW_DEF 2115 2115 { 2116 2116 ASMMemoryFence(); … … 2125 2125 * @param pf Pointer to the boolean variable to read. 2126 2126 */ 2127 DECLINLINE(bool) ASMAtomicUoReadBool(volatile bool RT_FAR *pf) 2127 DECLINLINE(bool) ASMAtomicUoReadBool(volatile bool RT_FAR *pf) RT_NOTHROW_DEF 2128 2128 { 2129 2129 return *pf; /* byte reads are atomic on x86 */ … … 2229 2229 * @param u8 The 8-bit value to assign to *pu8. 2230 2230 */ 2231 DECLINLINE(void) ASMAtomicWriteU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) 2231 DECLINLINE(void) ASMAtomicWriteU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) RT_NOTHROW_DEF 2232 2232 { 2233 2233 ASMAtomicXchgU8(pu8, u8); … … 2241 2241 * @param u8 The 8-bit value to assign to *pu8. 2242 2242 */ 2243 DECLINLINE(void) ASMAtomicUoWriteU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) 2243 DECLINLINE(void) ASMAtomicUoWriteU8(volatile uint8_t RT_FAR *pu8, uint8_t u8) RT_NOTHROW_DEF 2244 2244 { 2245 2245 *pu8 = u8; /* byte writes are atomic on x86 */ … … 2253 2253 * @param i8 The 8-bit value to assign to *pi8. 2254 2254 */ 2255 DECLINLINE(void) ASMAtomicWriteS8(volatile int8_t RT_FAR *pi8, int8_t i8) 2255 DECLINLINE(void) ASMAtomicWriteS8(volatile int8_t RT_FAR *pi8, int8_t i8) RT_NOTHROW_DEF 2256 2256 { 2257 2257 ASMAtomicXchgS8(pi8, i8); … … 2265 2265 * @param i8 The 8-bit value to assign to *pi8. 2266 2266 */ 2267 DECLINLINE(void) ASMAtomicUoWriteS8(volatile int8_t RT_FAR *pi8, int8_t i8) 2267 DECLINLINE(void) ASMAtomicUoWriteS8(volatile int8_t RT_FAR *pi8, int8_t i8) RT_NOTHROW_DEF 2268 2268 { 2269 2269 *pi8 = i8; /* byte writes are atomic on x86 */ … … 2277 2277 * @param u16 The 16-bit value to assign to *pu16. 2278 2278 */ 2279 DECLINLINE(void) ASMAtomicWriteU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) 2279 DECLINLINE(void) ASMAtomicWriteU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) RT_NOTHROW_DEF 2280 2280 { 2281 2281 ASMAtomicXchgU16(pu16, u16); … … 2289 2289 * @param u16 The 16-bit value to assign to *pu16. 2290 2290 */ 2291 DECLINLINE(void) ASMAtomicUoWriteU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) 2291 DECLINLINE(void) ASMAtomicUoWriteU16(volatile uint16_t RT_FAR *pu16, uint16_t u16) RT_NOTHROW_DEF 2292 2292 { 2293 2293 Assert(!((uintptr_t)pu16 & 1)); … … 2302 2302 * @param i16 The 16-bit value to assign to *pi16. 2303 2303 */ 2304 DECLINLINE(void) ASMAtomicWriteS16(volatile int16_t RT_FAR *pi16, int16_t i16) 2304 DECLINLINE(void) ASMAtomicWriteS16(volatile int16_t RT_FAR *pi16, int16_t i16) RT_NOTHROW_DEF 2305 2305 { 2306 2306 ASMAtomicXchgS16(pi16, i16); … … 2314 2314 * @param i16 The 16-bit value to assign to *pi16. 2315 2315 */ 2316 DECLINLINE(void) ASMAtomicUoWriteS16(volatile int16_t RT_FAR *pi16, int16_t i16) 2316 DECLINLINE(void) ASMAtomicUoWriteS16(volatile int16_t RT_FAR *pi16, int16_t i16) RT_NOTHROW_DEF 2317 2317 { 2318 2318 Assert(!((uintptr_t)pi16 & 1)); … … 2327 2327 * @param u32 The 32-bit value to assign to *pu32. 2328 2328 */ 2329 DECLINLINE(void) ASMAtomicWriteU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) 2329 DECLINLINE(void) ASMAtomicWriteU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 2330 2330 { 2331 2331 ASMAtomicXchgU32(pu32, u32); … … 2339 2339 * @param u32 The 32-bit value to assign to *pu32. 2340 2340 */ 2341 DECLINLINE(void) ASMAtomicUoWriteU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) 2341 DECLINLINE(void) ASMAtomicUoWriteU32(volatile uint32_t RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 2342 2342 { 2343 2343 Assert(!((uintptr_t)pu32 & 3)); … … 2356 2356 * @param i32 The 32-bit value to assign to *pi32. 2357 2357 */ 2358 DECLINLINE(void) ASMAtomicWriteS32(volatile int32_t RT_FAR *pi32, int32_t i32) 2358 DECLINLINE(void) ASMAtomicWriteS32(volatile int32_t RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 2359 2359 { 2360 2360 ASMAtomicXchgS32(pi32, i32); … … 2368 2368 * @param i32 The 32-bit value to assign to *pi32. 2369 2369 */ 2370 DECLINLINE(void) ASMAtomicUoWriteS32(volatile int32_t RT_FAR *pi32, int32_t i32) 2370 DECLINLINE(void) ASMAtomicUoWriteS32(volatile int32_t RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 2371 2371 { 2372 2372 Assert(!((uintptr_t)pi32 & 3)); … … 2385 2385 * @param u64 The 64-bit value to assign to *pu64. 2386 2386 */ 2387 DECLINLINE(void) ASMAtomicWriteU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) 2387 DECLINLINE(void) ASMAtomicWriteU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 2388 2388 { 2389 2389 ASMAtomicXchgU64(pu64, u64); … … 2397 2397 * @param u64 The 64-bit value to assign to *pu64. 2398 2398 */ 2399 DECLINLINE(void) ASMAtomicUoWriteU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) 2399 DECLINLINE(void) ASMAtomicUoWriteU64(volatile uint64_t RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 2400 2400 { 2401 2401 Assert(!((uintptr_t)pu64 & 7)); … … 2414 2414 * @param i64 The 64-bit value to assign to *pi64. 2415 2415 */ 2416 DECLINLINE(void) ASMAtomicWriteS64(volatile int64_t RT_FAR *pi64, int64_t i64) 2416 DECLINLINE(void) ASMAtomicWriteS64(volatile int64_t RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 2417 2417 { 2418 2418 ASMAtomicXchgS64(pi64, i64); … … 2426 2426 * @param i64 The 64-bit value to assign to *pi64. 2427 2427 */ 2428 DECLINLINE(void) ASMAtomicUoWriteS64(volatile int64_t RT_FAR *pi64, int64_t i64) 2428 DECLINLINE(void) ASMAtomicUoWriteS64(volatile int64_t RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 2429 2429 { 2430 2430 Assert(!((uintptr_t)pi64 & 7)); … … 2444 2444 * @param cb The value to assign to *pcb. 2445 2445 */ 2446 DECLINLINE(void) ASMAtomicWriteZ(volatile size_t RT_FAR *pcb, size_t cb) 2446 DECLINLINE(void) ASMAtomicWriteZ(volatile size_t RT_FAR *pcb, size_t cb) RT_NOTHROW_DEF 2447 2447 { 2448 2448 #if ARCH_BITS == 64 … … 2465 2465 * @param f The boolean value to assign to *pf. 2466 2466 */ 2467 DECLINLINE(void) ASMAtomicWriteBool(volatile bool RT_FAR *pf, bool f) 2467 DECLINLINE(void) ASMAtomicWriteBool(volatile bool RT_FAR *pf, bool f) RT_NOTHROW_DEF 2468 2468 { 2469 2469 ASMAtomicWriteU8((uint8_t volatile RT_FAR *)pf, f); … … 2477 2477 * @param f The boolean value to assign to *pf. 2478 2478 */ 2479 DECLINLINE(void) ASMAtomicUoWriteBool(volatile bool RT_FAR *pf, bool f) 2479 DECLINLINE(void) ASMAtomicUoWriteBool(volatile bool RT_FAR *pf, bool f) RT_NOTHROW_DEF 2480 2480 { 2481 2481 *pf = f; /* byte writes are atomic on x86 */ … … 2489 2489 * @param pv The pointer value to assign to *ppv. 2490 2490 */ 2491 DECLINLINE(void) ASMAtomicWritePtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void *pv) 2491 DECLINLINE(void) ASMAtomicWritePtrVoid(void RT_FAR * volatile RT_FAR *ppv, const void *pv) RT_NOTHROW_DEF 2492 2492 { 2493 2493 #if ARCH_BITS == 32 || ARCH_BITS == 16 … … 2725 2725 * @remarks x86: Requires a 486 or later. 2726 2726 */ 2727 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicAddU16(uint16_t volatile RT_FAR *pu16, uint32_t u16) ;2727 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicAddU16(uint16_t volatile RT_FAR *pu16, uint32_t u16) RT_NOTHROW_PROTO; 2728 2728 2729 2729 … … 2738 2738 */ 2739 2739 #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) 2740 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicAddU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO; 2741 #else 2742 DECLINLINE(uint32_t) ASMAtomicAddU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 2743 2743 { 2744 2744 # if RT_INLINE_ASM_USES_INTRIN … … 2782 2782 * @remarks x86: Requires a 486 or later. 2783 2783 */ 2784 DECLINLINE(int32_t) ASMAtomicAddS32(int32_t volatile RT_FAR *pi32, int32_t i32) 2784 DECLINLINE(int32_t) ASMAtomicAddS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 2785 2785 { 2786 2786 return (int32_t)ASMAtomicAddU32((uint32_t volatile RT_FAR *)pi32, (uint32_t)i32); … … 2798 2798 */ 2799 2799 #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) 2800 DECLASM(uint64_t) ASMAtomicAddU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO; 2801 #else 2802 DECLINLINE(uint64_t) ASMAtomicAddU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 2803 2803 { 2804 2804 # if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64) … … 2840 2840 * @remarks x86: Requires a Pentium or later. 2841 2841 */ 2842 DECLINLINE(int64_t) ASMAtomicAddS64(int64_t volatile RT_FAR *pi64, int64_t i64) 2842 DECLINLINE(int64_t) ASMAtomicAddS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 2843 2843 { 2844 2844 return (int64_t)ASMAtomicAddU64((uint64_t volatile RT_FAR *)pi64, (uint64_t)i64); … … 2853 2853 * @param cb Number to add. 2854 2854 */ 2855 DECLINLINE(size_t) ASMAtomicAddZ(size_t volatile RT_FAR *pcb, size_t cb) 2855 DECLINLINE(size_t) ASMAtomicAddZ(size_t volatile RT_FAR *pcb, size_t cb) RT_NOTHROW_DEF 2856 2856 { 2857 2857 #if ARCH_BITS == 64 … … 2898 2898 * @remarks x86: Requires a 486 or later. 2899 2899 */ 2900 DECLINLINE(uint16_t) ASMAtomicSubU16(uint16_t volatile RT_FAR *pu16, uint32_t u16) 2900 DECLINLINE(uint16_t) ASMAtomicSubU16(uint16_t volatile RT_FAR *pu16, uint32_t u16) RT_NOTHROW_DEF 2901 2901 { 2902 2902 return ASMAtomicAddU16(pu16, (uint16_t)-(int16_t)u16); … … 2913 2913 * @remarks x86: Requires a 486 or later. 2914 2914 */ 2915 DECLINLINE(int16_t) ASMAtomicSubS16(int16_t volatile RT_FAR *pi16, int16_t i16) 2915 DECLINLINE(int16_t) ASMAtomicSubS16(int16_t volatile RT_FAR *pi16, int16_t i16) RT_NOTHROW_DEF 2916 2916 { 2917 2917 return (int16_t)ASMAtomicAddU16((uint16_t volatile RT_FAR *)pi16, (uint16_t)-i16); … … 2928 2928 * @remarks x86: Requires a 486 or later. 2929 2929 */ 2930 DECLINLINE(uint32_t) ASMAtomicSubU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) 2930 DECLINLINE(uint32_t) ASMAtomicSubU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 2931 2931 { 2932 2932 return ASMAtomicAddU32(pu32, (uint32_t)-(int32_t)u32); … … 2943 2943 * @remarks x86: Requires a 486 or later. 2944 2944 */ 2945 DECLINLINE(int32_t) ASMAtomicSubS32(int32_t volatile RT_FAR *pi32, int32_t i32) 2945 DECLINLINE(int32_t) ASMAtomicSubS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 2946 2946 { 2947 2947 return (int32_t)ASMAtomicAddU32((uint32_t volatile RT_FAR *)pi32, (uint32_t)-i32); … … 2958 2958 * @remarks x86: Requires a Pentium or later. 2959 2959 */ 2960 DECLINLINE(uint64_t) ASMAtomicSubU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) 2960 DECLINLINE(uint64_t) ASMAtomicSubU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 2961 2961 { 2962 2962 return ASMAtomicAddU64(pu64, (uint64_t)-(int64_t)u64); … … 2973 2973 * @remarks x86: Requires a Pentium or later. 2974 2974 */ 2975 DECLINLINE(int64_t) ASMAtomicSubS64(int64_t volatile RT_FAR *pi64, int64_t i64) 2975 DECLINLINE(int64_t) ASMAtomicSubS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 2976 2976 { 2977 2977 return (int64_t)ASMAtomicAddU64((uint64_t volatile RT_FAR *)pi64, (uint64_t)-i64); … … 2988 2988 * @remarks x86: Requires a 486 or later. 2989 2989 */ 2990 DECLINLINE(size_t) ASMAtomicSubZ(size_t volatile RT_FAR *pcb, size_t cb) 2990 DECLINLINE(size_t) ASMAtomicSubZ(size_t volatile RT_FAR *pcb, size_t cb) RT_NOTHROW_DEF 2991 2991 { 2992 2992 #if ARCH_BITS == 64 … … 3033 3033 * @remarks x86: Requires a 486 or later. 3034 3034 */ 3035 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicIncU16(uint16_t volatile RT_FAR *pu16) ;3035 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMAtomicIncU16(uint16_t volatile RT_FAR *pu16) RT_NOTHROW_PROTO; 3036 3036 3037 3037 … … 3045 3045 */ 3046 3046 #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) 3047 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicIncU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_PROTO; 3048 #else 3049 DECLINLINE(uint32_t) ASMAtomicIncU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_DEF 3050 3050 { 3051 3051 uint32_t u32; … … 3089 3089 * @remarks x86: Requires a 486 or later. 3090 3090 */ 3091 DECLINLINE(int32_t) ASMAtomicIncS32(int32_t volatile RT_FAR *pi32) 3091 DECLINLINE(int32_t) ASMAtomicIncS32(int32_t volatile RT_FAR *pi32) RT_NOTHROW_DEF 3092 3092 { 3093 3093 return (int32_t)ASMAtomicIncU32((uint32_t volatile RT_FAR *)pi32); … … 3104 3104 */ 3105 3105 #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) 3106 DECLASM(uint64_t) ASMAtomicIncU64(uint64_t volatile RT_FAR *pu64) RT_NOTHROW_PROTO; 3107 #else 3108 DECLINLINE(uint64_t) ASMAtomicIncU64(uint64_t volatile RT_FAR *pu64) RT_NOTHROW_DEF 3109 3109 { 3110 3110 # if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64) … … 3137 3137 * @remarks x86: Requires a Pentium or later. 3138 3138 */ 3139 DECLINLINE(int64_t) ASMAtomicIncS64(int64_t volatile RT_FAR *pi64) 3139 DECLINLINE(int64_t) ASMAtomicIncS64(int64_t volatile RT_FAR *pi64) RT_NOTHROW_DEF 3140 3140 { 3141 3141 return (int64_t)ASMAtomicIncU64((uint64_t volatile RT_FAR *)pi64); … … 3151 3151 * @remarks x86: Requires a 486 or later. 3152 3152 */ 3153 DECLINLINE(int64_t) ASMAtomicIncZ(size_t volatile RT_FAR *pcb) 3153 DECLINLINE(int64_t) ASMAtomicIncZ(size_t volatile RT_FAR *pcb) RT_NOTHROW_DEF 3154 3154 { 3155 3155 #if ARCH_BITS == 64 … … 3175 3175 * @remarks x86: Requires a 486 or later. 3176 3176 */ 3177 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicDecU16(uint16_t volatile RT_FAR *pu16) ;3177 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicDecU16(uint16_t volatile RT_FAR *pu16) RT_NOTHROW_PROTO; 3178 3178 3179 3179 … … 3187 3187 */ 3188 3188 #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) 3189 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicDecU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_PROTO; 3190 #else 3191 DECLINLINE(uint32_t) ASMAtomicDecU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_DEF 3192 3192 { 3193 3193 uint32_t u32; … … 3231 3231 * @remarks x86: Requires a 486 or later. 3232 3232 */ 3233 DECLINLINE(int32_t) ASMAtomicDecS32(int32_t volatile RT_FAR *pi32) 3233 DECLINLINE(int32_t) ASMAtomicDecS32(int32_t volatile RT_FAR *pi32) RT_NOTHROW_DEF 3234 3234 { 3235 3235 return (int32_t)ASMAtomicDecU32((uint32_t volatile RT_FAR *)pi32); … … 3246 3246 */ 3247 3247 #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) 3248 RT_ASM_DECL_PRAGMA_WATCOM(uint64_t) ASMAtomicDecU64(uint64_t volatile RT_FAR *pu64) RT_NOTHROW_PROTO; 3249 #else 3250 DECLINLINE(uint64_t) ASMAtomicDecU64(uint64_t volatile RT_FAR *pu64) RT_NOTHROW_DEF 3251 3251 { 3252 3252 # if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64) … … 3278 3278 * @remarks x86: Requires a Pentium or later. 3279 3279 */ 3280 DECLINLINE(int64_t) ASMAtomicDecS64(int64_t volatile RT_FAR *pi64) 3280 DECLINLINE(int64_t) ASMAtomicDecS64(int64_t volatile RT_FAR *pi64) RT_NOTHROW_DEF 3281 3281 { 3282 3282 return (int64_t)ASMAtomicDecU64((uint64_t volatile RT_FAR *)pi64); … … 3292 3292 * @remarks x86: Requires a 486 or later. 3293 3293 */ 3294 DECLINLINE(int64_t) ASMAtomicDecZ(size_t volatile RT_FAR *pcb) 3294 DECLINLINE(int64_t) ASMAtomicDecZ(size_t volatile RT_FAR *pcb) RT_NOTHROW_DEF 3295 3295 { 3296 3296 #if ARCH_BITS == 64 … … 3315 3315 */ 3316 3316 #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) 3317 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO; 3318 #else 3319 DECLINLINE(void) ASMAtomicOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 3320 3320 { 3321 3321 # if RT_INLINE_ASM_USES_INTRIN … … 3352 3352 * @remarks x86: Requires a 386 or later. 3353 3353 */ 3354 DECLINLINE(void) ASMAtomicOrS32(int32_t volatile RT_FAR *pi32, int32_t i32) 3354 DECLINLINE(void) ASMAtomicOrS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 3355 3355 { 3356 3356 ASMAtomicOrU32((uint32_t volatile RT_FAR *)pi32, i32); … … 3367 3367 */ 3368 3368 #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) 3369 DECLASM(void) ASMAtomicOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO; 3370 #else 3371 DECLINLINE(void) ASMAtomicOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 3372 3372 { 3373 3373 # if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64) … … 3401 3401 * @remarks x86: Requires a Pentium or later. 3402 3402 */ 3403 DECLINLINE(void) ASMAtomicOrS64(int64_t volatile RT_FAR *pi64, int64_t i64) 3403 DECLINLINE(void) ASMAtomicOrS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 3404 3404 { 3405 3405 ASMAtomicOrU64((uint64_t volatile RT_FAR *)pi64, i64); … … 3416 3416 */ 3417 3417 #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) 3418 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO; 3419 #else 3420 DECLINLINE(void) ASMAtomicAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 3421 3421 { 3422 3422 # if RT_INLINE_ASM_USES_INTRIN … … 3453 3453 * @remarks x86: Requires a 386 or later. 3454 3454 */ 3455 DECLINLINE(void) ASMAtomicAndS32(int32_t volatile RT_FAR *pi32, int32_t i32) 3455 DECLINLINE(void) ASMAtomicAndS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 3456 3456 { 3457 3457 ASMAtomicAndU32((uint32_t volatile RT_FAR *)pi32, (uint32_t)i32); … … 3468 3468 */ 3469 3469 #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) 3470 DECLASM(void) ASMAtomicAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO; 3471 #else 3472 DECLINLINE(void) ASMAtomicAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 3473 3473 { 3474 3474 # if RT_INLINE_ASM_USES_INTRIN && defined(RT_ARCH_AMD64) … … 3502 3502 * @remarks x86: Requires a Pentium or later. 3503 3503 */ 3504 DECLINLINE(void) ASMAtomicAndS64(int64_t volatile RT_FAR *pi64, int64_t i64) 3504 DECLINLINE(void) ASMAtomicAndS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 3505 3505 { 3506 3506 ASMAtomicAndU64((uint64_t volatile RT_FAR *)pi64, (uint64_t)i64); … … 3517 3517 */ 3518 3518 #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) 3519 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicUoOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO; 3520 #else 3521 DECLINLINE(void) ASMAtomicUoOrU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 3522 3522 { 3523 3523 # if RT_INLINE_ASM_GNU_STYLE … … 3551 3551 * @remarks x86: Requires a 386 or later. 3552 3552 */ 3553 DECLINLINE(void) ASMAtomicUoOrS32(int32_t volatile RT_FAR *pi32, int32_t i32) 3553 DECLINLINE(void) ASMAtomicUoOrS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 3554 3554 { 3555 3555 ASMAtomicUoOrU32((uint32_t volatile RT_FAR *)pi32, i32); … … 3566 3566 */ 3567 3567 #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) 3568 DECLASM(void) ASMAtomicUoOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO; 3569 #else 3570 DECLINLINE(void) ASMAtomicUoOrU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 3571 3571 { 3572 3572 # if RT_INLINE_ASM_GNU_STYLE && defined(RT_ARCH_AMD64) … … 3597 3597 * @remarks x86: Requires a Pentium or later. 3598 3598 */ 3599 DECLINLINE(void) ASMAtomicUoOrS64(int64_t volatile RT_FAR *pi64, int64_t i64) 3599 DECLINLINE(void) ASMAtomicUoOrS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 3600 3600 { 3601 3601 ASMAtomicUoOrU64((uint64_t volatile RT_FAR *)pi64, i64); … … 3612 3612 */ 3613 3613 #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) 3614 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicUoAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_PROTO; 3615 #else 3616 DECLINLINE(void) ASMAtomicUoAndU32(uint32_t volatile RT_FAR *pu32, uint32_t u32) RT_NOTHROW_DEF 3617 3617 { 3618 3618 # if RT_INLINE_ASM_GNU_STYLE … … 3646 3646 * @remarks x86: Requires a 386 or later. 3647 3647 */ 3648 DECLINLINE(void) ASMAtomicUoAndS32(int32_t volatile RT_FAR *pi32, int32_t i32) 3648 DECLINLINE(void) ASMAtomicUoAndS32(int32_t volatile RT_FAR *pi32, int32_t i32) RT_NOTHROW_DEF 3649 3649 { 3650 3650 ASMAtomicUoAndU32((uint32_t volatile RT_FAR *)pi32, (uint32_t)i32); … … 3661 3661 */ 3662 3662 #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) 3663 DECLASM(void) ASMAtomicUoAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_PROTO; 3664 #else 3665 DECLINLINE(void) ASMAtomicUoAndU64(uint64_t volatile RT_FAR *pu64, uint64_t u64) RT_NOTHROW_DEF 3666 3666 { 3667 3667 # if RT_INLINE_ASM_GNU_STYLE && defined(RT_ARCH_AMD64) … … 3692 3692 * @remarks x86: Requires a Pentium or later. 3693 3693 */ 3694 DECLINLINE(void) ASMAtomicUoAndS64(int64_t volatile RT_FAR *pi64, int64_t i64) 3694 DECLINLINE(void) ASMAtomicUoAndS64(int64_t volatile RT_FAR *pi64, int64_t i64) RT_NOTHROW_DEF 3695 3695 { 3696 3696 ASMAtomicUoAndU64((uint64_t volatile RT_FAR *)pi64, (uint64_t)i64); … … 3707 3707 */ 3708 3708 #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) 3709 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicUoIncU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_PROTO; 3710 #else 3711 DECLINLINE(uint32_t) ASMAtomicUoIncU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_DEF 3712 3712 { 3713 3713 uint32_t u32; … … 3748 3748 */ 3749 3749 #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) 3750 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMAtomicUoDecU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_PROTO; 3751 #else 3752 DECLINLINE(uint32_t) ASMAtomicUoDecU32(uint32_t volatile RT_FAR *pu32) RT_NOTHROW_DEF 3753 3753 { 3754 3754 uint32_t u32; … … 3806 3806 */ 3807 3807 #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) 3808 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemZeroPage(volatile void RT_FAR *pv) RT_NOTHROW_PROTO; 3809 # else 3810 DECLINLINE(void) ASMMemZeroPage(volatile void RT_FAR *pv) RT_NOTHROW_DEF 3811 3811 { 3812 3812 # if RT_INLINE_ASM_USES_INTRIN … … 3863 3863 */ 3864 3864 #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) 3865 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemZero32(volatile void RT_FAR *pv, size_t cb) RT_NOTHROW_PROTO; 3866 #else 3867 DECLINLINE(void) ASMMemZero32(volatile void RT_FAR *pv, size_t cb) RT_NOTHROW_DEF 3868 3868 { 3869 3869 # if RT_INLINE_ASM_USES_INTRIN … … 3911 3911 */ 3912 3912 #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) 3913 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMMemFill32(volatile void RT_FAR *pv, size_t cb, uint32_t u32) RT_NOTHROW_PROTO; 3914 #else 3915 DECLINLINE(void) ASMMemFill32(volatile void RT_FAR *pv, size_t cb, uint32_t u32) RT_NOTHROW_DEF 3916 3916 { 3917 3917 # if RT_INLINE_ASM_USES_INTRIN … … 3965 3965 && !defined(RT_ARCH_SPARC64) \ 3966 3966 && !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) 3967 DECLASM(void RT_FAR *) ASMMemFirstNonZero(void const RT_FAR *pv, size_t cb) RT_NOTHROW_PROTO; 3968 #else 3969 DECLINLINE(void RT_FAR *) ASMMemFirstNonZero(void const RT_FAR *pv, size_t cb) RT_NOTHROW_DEF 3970 3970 { 3971 3971 uint8_t const *pb = (uint8_t const RT_FAR *)pv; … … 3990 3990 * @sa ASMMemFirstNonZero 3991 3991 */ 3992 DECLINLINE(bool) ASMMemIsZero(void const RT_FAR *pv, size_t cb) 3992 DECLINLINE(bool) ASMMemIsZero(void const RT_FAR *pv, size_t cb) RT_NOTHROW_DEF 3993 3993 { 3994 3994 return ASMMemFirstNonZero(pv, cb) == NULL; … … 4004 4004 * boundary 4005 4005 */ 4006 DECLINLINE(bool) ASMMemIsZeroPage(void const RT_FAR *pvPage) 4006 DECLINLINE(bool) ASMMemIsZeroPage(void const RT_FAR *pvPage) RT_NOTHROW_DEF 4007 4007 { 4008 4008 # if 0 /*RT_INLINE_ASM_GNU_STYLE - this is actually slower... */ … … 4074 4074 && !defined(RT_ARCH_SPARC64) \ 4075 4075 && !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) 4076 DECLASM(void *) ASMMemFirstMismatchingU8(void const RT_FAR *pv, size_t cb, uint8_t u8) RT_NOTHROW_PROTO; 4077 #else 4078 DECLINLINE(void *) ASMMemFirstMismatchingU8(void const RT_FAR *pv, size_t cb, uint8_t u8) RT_NOTHROW_DEF 4079 4079 { 4080 4080 uint8_t const *pb = (uint8_t const RT_FAR *)pv; … … 4100 4100 * @remarks No alignment requirements. 4101 4101 */ 4102 DECLINLINE(bool) ASMMemIsAllU8(void const RT_FAR *pv, size_t cb, uint8_t u8) 4102 DECLINLINE(bool) ASMMemIsAllU8(void const RT_FAR *pv, size_t cb, uint8_t u8) RT_NOTHROW_DEF 4103 4103 { 4104 4104 return ASMMemFirstMismatchingU8(pv, cb, u8) == NULL; … … 4118 4118 * @param u32 The value it's supposed to be filled with. 4119 4119 */ 4120 DECLINLINE(uint32_t RT_FAR *) ASMMemFirstMismatchingU32(void const RT_FAR *pv, size_t cb, uint32_t u32) 4120 DECLINLINE(uint32_t RT_FAR *) ASMMemFirstMismatchingU32(void const RT_FAR *pv, size_t cb, uint32_t u32) RT_NOTHROW_DEF 4121 4121 { 4122 4122 /** @todo rewrite this in inline assembly? */ … … 4144 4144 */ 4145 4145 #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) 4146 RT_ASM_DECL_PRAGMA_WATCOM(uint8_t) ASMProbeReadByte(const void RT_FAR *pvByte) RT_NOTHROW_PROTO; 4147 #else 4148 DECLINLINE(uint8_t) ASMProbeReadByte(const void RT_FAR *pvByte) RT_NOTHROW_DEF 4149 4149 { 4150 4150 /** @todo verify that the compiler actually doesn't optimize this away. (intel & gcc) */ … … 4184 4184 * @param cbBuf The size of the buffer in bytes. Must be >= 1. 4185 4185 */ 4186 DECLINLINE(void) ASMProbeReadBuffer(const void RT_FAR *pvBuf, size_t cbBuf) 4186 DECLINLINE(void) ASMProbeReadBuffer(const void RT_FAR *pvBuf, size_t cbBuf) RT_NOTHROW_DEF 4187 4187 { 4188 4188 /** @todo verify that the compiler actually doesn't optimize this away. (intel & gcc) */ … … 4221 4221 */ 4222 4222 #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) 4223 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4224 #else 4225 DECLINLINE(void) ASMBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4226 4226 { 4227 4227 # if RT_INLINE_ASM_USES_INTRIN … … 4262 4262 */ 4263 4263 #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) 4264 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4265 #else 4266 DECLINLINE(void) ASMAtomicBitSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4267 4267 { 4268 4268 AssertMsg(!((uintptr_t)pvBitmap & 3), ("address %p not 32-bit aligned", pvBitmap)); … … 4304 4304 */ 4305 4305 #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) 4306 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4307 #else 4308 DECLINLINE(void) ASMBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4309 4309 { 4310 4310 # if RT_INLINE_ASM_USES_INTRIN … … 4346 4346 */ 4347 4347 #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) 4348 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4349 #else 4350 DECLINLINE(void) ASMAtomicBitClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4351 4351 { 4352 4352 AssertMsg(!((uintptr_t)pvBitmap & 3), ("address %p not 32-bit aligned", pvBitmap)); … … 4386 4386 */ 4387 4387 #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) 4388 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4389 #else 4390 DECLINLINE(void) ASMBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4391 4391 { 4392 4392 # if RT_INLINE_ASM_USES_INTRIN … … 4426 4426 */ 4427 4427 #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) 4428 RT_ASM_DECL_PRAGMA_WATCOM(void) ASMAtomicBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4429 #else 4430 DECLINLINE(void) ASMAtomicBitToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4431 4431 { 4432 4432 AssertMsg(!((uintptr_t)pvBitmap & 3), ("address %p not 32-bit aligned", pvBitmap)); … … 4469 4469 */ 4470 4470 #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) 4471 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4472 #else 4473 DECLINLINE(bool) ASMBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4474 4474 { 4475 4475 union { bool f; uint32_t u32; uint8_t u8; } rc; … … 4520 4520 */ 4521 4521 #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) 4522 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4523 #else 4524 DECLINLINE(bool) ASMAtomicBitTestAndSet(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4525 4525 { 4526 4526 union { bool f; uint32_t u32; uint8_t u8; } rc; … … 4572 4572 */ 4573 4573 #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) 4574 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4575 #else 4576 DECLINLINE(bool) ASMBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4577 4577 { 4578 4578 union { bool f; uint32_t u32; uint8_t u8; } rc; … … 4624 4624 */ 4625 4625 #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) 4626 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4627 #else 4628 DECLINLINE(bool) ASMAtomicBitTestAndClear(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4629 4629 { 4630 4630 union { bool f; uint32_t u32; uint8_t u8; } rc; … … 4677 4677 */ 4678 4678 #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) 4679 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4680 #else 4681 DECLINLINE(bool) ASMBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4682 4682 { 4683 4683 union { bool f; uint32_t u32; uint8_t u8; } rc; … … 4728 4728 */ 4729 4729 #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) 4730 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMAtomicBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4731 #else 4732 DECLINLINE(bool) ASMAtomicBitTestAndToggle(volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4733 4733 { 4734 4734 union { bool f; uint32_t u32; uint8_t u8; } rc; … … 4778 4778 */ 4779 4779 #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) 4780 RT_ASM_DECL_PRAGMA_WATCOM(bool) ASMBitTest(const volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_PROTO; 4781 #else 4782 DECLINLINE(bool) ASMBitTest(const volatile void RT_FAR *pvBitmap, int32_t iBit) RT_NOTHROW_DEF 4783 4783 { 4784 4784 union { bool f; uint32_t u32; uint8_t u8; } rc; … … 4822 4822 * @param iBitEnd The first bit not to clear. 4823 4823 */ 4824 DECLINLINE(void) ASMBitClearRange(volatile void RT_FAR *pvBitmap, int32_t iBitStart, int32_t iBitEnd) 4824 DECLINLINE(void) ASMBitClearRange(volatile void RT_FAR *pvBitmap, int32_t iBitStart, int32_t iBitEnd) RT_NOTHROW_DEF 4825 4825 { 4826 4826 if (iBitStart < iBitEnd) … … 4863 4863 * @param iBitEnd The first bit not to set. 4864 4864 */ 4865 DECLINLINE(void) ASMBitSetRange(volatile void RT_FAR *pvBitmap, int32_t iBitStart, int32_t iBitEnd) 4865 DECLINLINE(void) ASMBitSetRange(volatile void RT_FAR *pvBitmap, int32_t iBitStart, int32_t iBitEnd) RT_NOTHROW_DEF 4866 4866 { 4867 4867 if (iBitStart < iBitEnd) … … 4906 4906 */ 4907 4907 #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) 4908 DECLASM(int32_t) ASMBitFirstClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits) RT_NOTHROW_PROTO; 4909 #else 4910 DECLINLINE(int32_t) ASMBitFirstClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits) RT_NOTHROW_DEF 4911 4911 { 4912 4912 if (cBits) … … 4992 4992 */ 4993 4993 #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) 4994 DECLASM(int) ASMBitNextClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev) RT_NOTHROW_PROTO; 4995 #else 4996 DECLINLINE(int) ASMBitNextClear(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev) RT_NOTHROW_DEF 4997 4997 { 4998 4998 const volatile uint32_t RT_FAR *pau32Bitmap = (const volatile uint32_t RT_FAR *)pvBitmap; … … 5061 5061 */ 5062 5062 #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) 5063 DECLASM(int32_t) ASMBitFirstSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits) RT_NOTHROW_PROTO; 5064 #else 5065 DECLINLINE(int32_t) ASMBitFirstSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits) RT_NOTHROW_DEF 5066 5066 { 5067 5067 if (cBits) … … 5146 5146 */ 5147 5147 #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) 5148 DECLASM(int) ASMBitNextSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev) RT_NOTHROW_PROTO; 5149 #else 5150 DECLINLINE(int) ASMBitNextSet(const volatile void RT_FAR *pvBitmap, uint32_t cBits, uint32_t iBitPrev) RT_NOTHROW_DEF 5151 5151 { 5152 5152 const volatile uint32_t RT_FAR *pau32Bitmap = (const volatile uint32_t RT_FAR *)pvBitmap; … … 5216 5216 */ 5217 5217 #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) 5218 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU32(uint32_t u32) RT_NOTHROW_PROTO; 5219 #else 5220 DECLINLINE(unsigned) ASMBitFirstSetU32(uint32_t u32) RT_NOTHROW_DEF 5221 5221 { 5222 5222 # if RT_INLINE_ASM_USES_INTRIN … … 5265 5265 * @remark Similar to ffs() in BSD. 5266 5266 */ 5267 DECLINLINE(unsigned) ASMBitFirstSetS32(int32_t i32) 5267 DECLINLINE(unsigned) ASMBitFirstSetS32(int32_t i32) RT_NOTHROW_DEF 5268 5268 { 5269 5269 return ASMBitFirstSetU32((uint32_t)i32); … … 5282 5282 */ 5283 5283 #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) 5284 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU64(uint64_t u64) RT_NOTHROW_PROTO; 5285 #else 5286 DECLINLINE(unsigned) ASMBitFirstSetU64(uint64_t u64) RT_NOTHROW_DEF 5287 5287 { 5288 5288 # if RT_INLINE_ASM_USES_INTRIN … … 5337 5337 */ 5338 5338 #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) 5339 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitFirstSetU16(uint16_t u16) RT_NOTHROW_PROTO; 5340 #else 5341 DECLINLINE(unsigned) ASMBitFirstSetU16(uint16_t u16) RT_NOTHROW_DEF 5342 5342 { 5343 5343 return ASMBitFirstSetU32((uint32_t)u16); … … 5356 5356 */ 5357 5357 #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) 5358 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU32(uint32_t u32) RT_NOTHROW_PROTO; 5359 #else 5360 DECLINLINE(unsigned) ASMBitLastSetU32(uint32_t u32) RT_NOTHROW_DEF 5361 5361 { 5362 5362 # if RT_INLINE_ASM_USES_INTRIN … … 5405 5405 * @remark Similar to fls() in BSD. 5406 5406 */ 5407 DECLINLINE(unsigned) ASMBitLastSetS32(int32_t i32) 5407 DECLINLINE(unsigned) ASMBitLastSetS32(int32_t i32) RT_NOTHROW_DEF 5408 5408 { 5409 5409 return ASMBitLastSetU32((uint32_t)i32); … … 5422 5422 */ 5423 5423 #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) 5424 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU64(uint64_t u64) RT_NOTHROW_PROTO; 5425 #else 5426 DECLINLINE(unsigned) ASMBitLastSetU64(uint64_t u64) RT_NOTHROW_DEF 5427 5427 { 5428 5428 # if RT_INLINE_ASM_USES_INTRIN … … 5475 5475 */ 5476 5476 #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) 5477 RT_ASM_DECL_PRAGMA_WATCOM_386(unsigned) ASMBitLastSetU16(uint16_t u16) RT_NOTHROW_PROTO; 5478 #else 5479 DECLINLINE(unsigned) ASMBitLastSetU16(uint16_t u16) RT_NOTHROW_DEF 5480 5480 { 5481 5481 return ASMBitLastSetU32((uint32_t)u16); … … 5491 5491 */ 5492 5492 #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) 5493 RT_ASM_DECL_PRAGMA_WATCOM(uint16_t) ASMByteSwapU16(uint16_t u16) RT_NOTHROW_PROTO; 5494 #else 5495 DECLINLINE(uint16_t) ASMByteSwapU16(uint16_t u16) RT_NOTHROW_DEF 5496 5496 { 5497 5497 # if RT_INLINE_ASM_USES_INTRIN … … 5519 5519 */ 5520 5520 #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) 5521 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMByteSwapU32(uint32_t u32) RT_NOTHROW_PROTO; 5522 #else 5523 DECLINLINE(uint32_t) ASMByteSwapU32(uint32_t u32) RT_NOTHROW_DEF 5524 5524 { 5525 5525 # if RT_INLINE_ASM_USES_INTRIN … … 5546 5546 * @param u64 64-bit integer value. 5547 5547 */ 5548 DECLINLINE(uint64_t) ASMByteSwapU64(uint64_t u64) 5548 DECLINLINE(uint64_t) ASMByteSwapU64(uint64_t u64) RT_NOTHROW_DEF 5549 5549 { 5550 5550 #if defined(RT_ARCH_AMD64) && RT_INLINE_ASM_USES_INTRIN … … 5566 5566 */ 5567 5567 #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) 5568 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMRotateLeftU32(uint32_t u32, unsigned cShift) RT_NOTHROW_PROTO; 5569 #else 5570 DECLINLINE(uint32_t) ASMRotateLeftU32(uint32_t u32, uint32_t cShift) RT_NOTHROW_DEF 5571 5571 { 5572 5572 # if RT_INLINE_ASM_USES_INTRIN … … 5591 5591 */ 5592 5592 #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) 5593 RT_ASM_DECL_PRAGMA_WATCOM(uint32_t) ASMRotateRightU32(uint32_t u32, unsigned cShift) RT_NOTHROW_PROTO; 5594 #else 5595 DECLINLINE(uint32_t) ASMRotateRightU32(uint32_t u32, uint32_t cShift) RT_NOTHROW_DEF 5596 5596 { 5597 5597 # if RT_INLINE_ASM_USES_INTRIN … … 5615 5615 * @param cShift How many bits to rotate by. 5616 5616 */ 5617 DECLINLINE(uint64_t) ASMRotateLeftU64(uint64_t u64, uint32_t cShift) 5617 DECLINLINE(uint64_t) ASMRotateLeftU64(uint64_t u64, uint32_t cShift) RT_NOTHROW_DEF 5618 5618 { 5619 5619 #if RT_INLINE_ASM_USES_INTRIN … … 5652 5652 * @param cShift How many bits to rotate by. 5653 5653 */ 5654 DECLINLINE(uint64_t) ASMRotateRightU64(uint64_t u64, uint32_t cShift) 5654 DECLINLINE(uint64_t) ASMRotateRightU64(uint64_t u64, uint32_t cShift) RT_NOTHROW_DEF 5655 5655 { 5656 5656 #if RT_INLINE_ASM_USES_INTRIN
Note:
See TracChangeset
for help on using the changeset viewer.