Lines Matching refs:u32C
327 * @returns (u32A * u32B) / u32C.
330 * @param u32C The 32-bit value to divide A*B by.
339 DECLASM(uint32_t) ASMMultU32ByU32DivByU32(uint32_t u32A, uint32_t u32B, uint32_t u32C);
341 DECLINLINE(uint32_t) ASMMultU32ByU32DivByU32(uint32_t u32A, uint32_t u32B, uint32_t u32C)
350 "r" (u32C),
354 return (uint32_t)(((uint64_t)u32A * u32B) / u32C);
364 * @returns (u64A * u32B) / u32C.
367 * @param u32C The 32-bit value to divide A*B by.
376 DECLASM(uint64_t) ASMMultU64ByU32DivByU32(uint64_t u64A, uint32_t u32B, uint32_t u32C);
378 DECLINLINE(uint64_t) ASMMultU64ByU32DivByU32(uint64_t u64A, uint32_t u32B, uint32_t u32C)
388 "r" ((uint64_t)u32C),
399 edx = u32C */
400 "xchg %%edx,%%ecx \n\t" /* ecx = u32C
406 "divl %%ecx \n\t" /* eax = u64Hi / u32C
407 edx = u64Hi % u32C */
408 "movl %%eax,%%edi \n\t" /* edi = u64Result.hi = u64Hi / u32C */
417 "D"(u32C));
425 u.s.Hi = (uint32_t)(u64Hi / u32C);
426 u.s.Lo = (uint32_t)((((u64Hi % u32C) << 32) + (u64Lo & 0xffffffff)) / u32C);