Lines Matching defs:u64

415  * @param   u64     The 64-bit value to assign to *pu64.
419 DECLASM(uint64_t) ASMAtomicXchgU64(volatile uint64_t *pu64, uint64_t u64);
421 DECLINLINE(uint64_t) ASMAtomicXchgU64(volatile uint64_t *pu64, uint64_t u64)
425 u64 = _InterlockedExchange64((__int64 *)pu64, u64);
430 "=r" (u64)
431 : "1" (u64),
437 mov rax, [u64]
439 mov [u64], rax
445 uint32_t u32EBX = (uint32_t)u64;
453 : "=A" (u64),
457 "c" ( (uint32_t)(u64 >> 32) ),
463 : "=A" (u64),
466 "b" ( (uint32_t)u64 ),
467 "c" ( (uint32_t)(u64 >> 32) ));
472 mov ebx, dword ptr [u64]
473 mov ecx, dword ptr [u64 + 4]
480 mov dword ptr [u64], eax
481 mov dword ptr [u64 + 4], edx
485 return u64;
1572 uint64_t u64;
1578 : "=r" (u64)
1586 mov [u64], rax
1590 u64 = *pu64;
1599 : "=A" (u64),
1611 : "=A" (u64),
1627 mov dword ptr [u64], eax
1628 mov dword ptr [u64 + 4], edx
1632 return u64;
1652 uint64_t u64;
1658 : "=r" (u64)
1665 mov [u64], rax
1668 u64 = *pu64;
1681 : "=A" (u64),
1692 : "=A" (u64),
1708 mov dword ptr [u64], eax
1709 mov dword ptr [u64 + 4], edx
1713 return u64;
2134 * @param u64 The 64-bit value to assign to *pu64.
2136 DECLINLINE(void) ASMAtomicWriteU64(volatile uint64_t *pu64, uint64_t u64)
2138 ASMAtomicXchgU64(pu64, u64);
2146 * @param u64 The 64-bit value to assign to *pu64.
2148 DECLINLINE(void) ASMAtomicUoWriteU64(volatile uint64_t *pu64, uint64_t u64)
2152 *pu64 = u64;
2154 ASMAtomicXchgU64(pu64, u64);
2505 * @param u64 Number to add.
2508 DECLASM(uint64_t) ASMAtomicAddU64(uint64_t volatile *pu64, uint64_t u64);
2510 DECLINLINE(uint64_t) ASMAtomicAddU64(uint64_t volatile *pu64, uint64_t u64)
2513 u64 = _InterlockedExchangeAdd64((__int64 *)pu64, u64);
2514 return u64;
2518 : "=r" (u64),
2520 : "0" (u64),
2523 return u64;
2530 u64New = u64Old + u64;
2622 * @param u64 Number to subtract.
2624 DECLINLINE(uint64_t) ASMAtomicSubU64(uint64_t volatile *pu64, uint64_t u64)
2626 return ASMAtomicAddU64(pu64, (uint64_t)-(int64_t)u64);
2747 uint64_t u64;
2748 u64 = _InterlockedIncrement64((__int64 *)pu64);
2749 return u64;
2752 uint64_t u64;
2754 : "=r" (u64),
2759 return u64 + 1;
2864 uint64_t u64 = _InterlockedDecrement64((__int64 volatile *)pu64);
2865 return u64;
2868 uint64_t u64;
2870 : "=r" (u64),
2875 return u64-1;
2964 * @param pu64 Pointer to the pointer variable to OR u64 with.
2965 * @param u64 The value to OR *pu64 with.
2968 DECLASM(void) ASMAtomicOrU64(uint64_t volatile *pu64, uint64_t u64);
2970 DECLINLINE(void) ASMAtomicOrU64(uint64_t volatile *pu64, uint64_t u64)
2973 _InterlockedOr64((__int64 volatile *)pu64, (__int64)u64);
2978 : "r" (u64),
2984 uint64_t u64New = u64Old | u64;
2997 * @param pi64 Pointer to the pointer variable to OR u64 with.
3057 * @param pu64 Pointer to the pointer variable to AND u64 with.
3058 * @param u64 The value to AND *pu64 with.
3061 DECLASM(void) ASMAtomicAndU64(uint64_t volatile *pu64, uint64_t u64);
3063 DECLINLINE(void) ASMAtomicAndU64(uint64_t volatile *pu64, uint64_t u64)
3066 _InterlockedAnd64((__int64 volatile *)pu64, u64);
3071 : "r" (u64),
3077 uint64_t u64New = u64Old & u64;
3147 * @param pu64 Pointer to the pointer variable to OR u64 with.
3148 * @param u64 The value to OR *pu64 with.
3151 DECLASM(void) ASMAtomicUoOrU64(uint64_t volatile *pu64, uint64_t u64);
3153 DECLINLINE(void) ASMAtomicUoOrU64(uint64_t volatile *pu64, uint64_t u64)
3158 : "r" (u64),
3164 uint64_t u64New = u64Old | u64;
3177 * @param pi64 Pointer to the pointer variable to OR u64 with.
3234 * @param pu64 Pointer to the pointer variable to AND u64 with.
3235 * @param u64 The value to AND *pu64 with.
3238 DECLASM(void) ASMAtomicUoAndU64(uint64_t volatile *pu64, uint64_t u64);
3240 DECLINLINE(void) ASMAtomicUoAndU64(uint64_t volatile *pu64, uint64_t u64)
3245 : "r" (u64),
3251 uint64_t u64New = u64Old & u64;
4885 * @param u64 64-bit integer value.
4887 DECLINLINE(uint64_t) ASMByteSwapU64(uint64_t u64)
4890 u64 = _byteswap_uint64(u64);
4892 u64 = (uint64_t)ASMByteSwapU32((uint32_t)u64) << 32
4893 | (uint64_t)ASMByteSwapU32((uint32_t)(u64 >> 32));
4895 return u64;
4945 * @param u64 The value to rotate.
4948 DECLINLINE(uint64_t) ASMRotateLeftU64(uint64_t u64, uint32_t cShift)
4951 return _rotl64(u64, cShift);
4953 __asm__ __volatile__("rolq %b1, %0" : "=g" (u64) : "Jc" (cShift), "0" (u64));
4954 return u64;
4957 __asm__ __volatile__("testb $0x20, %%cl\n\t" /* if (cShift >= 0x20) { swap(u64.hi, u64lo); cShift -= 0x20; } */
4967 : "=A" (u64), "=c" (cShift), "=r" (uSpill)
4968 : "0" (u64),
4970 return u64;
4973 return (u64 << cShift) | (u64 >> (64 - cShift));
4982 * @param u64 The value to rotate.
4985 DECLINLINE(uint64_t) ASMRotateRightU64(uint64_t u64, uint32_t cShift)
4988 return _rotr64(u64, cShift);
4990 __asm__ __volatile__("rorq %b1, %0" : "=g" (u64) : "Jc" (cShift), "0" (u64));
4991 return u64;
4994 __asm__ __volatile__("testb $0x20, %%cl\n\t" /* if (cShift >= 0x20) { swap(u64.hi, u64lo); cShift -= 0x20; } */
5004 : "=A" (u64), "=c" (cShift), "=r" (uSpill)
5005 : "0" (u64),
5007 return u64;
5010 return (u64 >> cShift) | (u64 << (64 - cShift));