Lines Matching defs:pValue1

114  * @param   pValue1             The first value.
117 DECLINLINE(PRTUINT128U) RTUInt128Add(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
119 pResult->s.Hi = pValue1->s.Hi + pValue2->s.Hi;
120 pResult->s.Lo = pValue1->s.Lo + pValue2->s.Lo;
121 if (pResult->s.Lo < pValue1->s.Lo)
132 * @param pValue1 The first value.
135 DECLINLINE(PRTUINT128U) RTUInt128AddU64(PRTUINT128U pResult, PCRTUINT128U pValue1, uint64_t uValue2)
137 pResult->s.Hi = pValue1->s.Hi;
138 pResult->s.Lo = pValue1->s.Lo + uValue2;
139 if (pResult->s.Lo < pValue1->s.Lo)
150 * @param pValue1 The minuend value.
153 DECLINLINE(PRTUINT128U) RTUInt128Sub(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
155 pResult->s.Lo = pValue1->s.Lo - pValue2->s.Lo;
156 pResult->s.Hi = pValue1->s.Hi - pValue2->s.Hi;
157 if (pResult->s.Lo > pValue1->s.Lo)
168 * @param pValue1 The first value.
171 DECLINLINE(PRTUINT128U) RTUInt128Mul(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
176 pResult->s.Lo = (uint64_t)pValue1->DWords.dw0 * pValue2->DWords.dw0;
178 uTmp.u = (uint64_t)pValue1->DWords.dw1 * pValue2->DWords.dw0;
186 pResult->s.Hi += (uint64_t)pValue1->DWords.dw2 * pValue2->DWords.dw0;
187 pResult->DWords.dw3 += pValue1->DWords.dw3 * pValue2->DWords.dw0;
190 uTmp.u = (uint64_t)pValue1->DWords.dw0 * pValue2->DWords.dw1;
200 pResult->s.Hi += (uint64_t)pValue1->DWords.dw1 * pValue2->DWords.dw1;
201 pResult->DWords.dw3 += pValue1->DWords.dw2 * pValue2->DWords.dw1;
204 pResult->s.Hi += (uint64_t)pValue1->DWords.dw0 * pValue2->DWords.dw2;
205 pResult->DWords.dw3 += pValue1->DWords.dw1 * pValue2->DWords.dw2;
208 pResult->DWords.dw3 += pValue1->DWords.dw0 * pValue2->DWords.dw3;
219 * @param pValue1 The first value.
223 RTDECL(PRTUINT128U) RTUInt128MulByU64(PRTUINT128U pResult, PCRTUINT128U pValue1, uint64_t uValue2);
225 DECLINLINE(PRTUINT128U) RTUInt128MulByU64(PRTUINT128U pResult, PCRTUINT128U pValue1, uint64_t uValue2)
232 pResult->s.Lo = (uint64_t)pValue1->DWords.dw0 * uLoValue2;
234 uTmp.u = (uint64_t)pValue1->DWords.dw1 * uLoValue2;
242 pResult->s.Hi += (uint64_t)pValue1->DWords.dw2 * uLoValue2;
243 pResult->DWords.dw3 += pValue1->DWords.dw3 * uLoValue2;
246 uTmp.u = (uint64_t)pValue1->DWords.dw0 * uHiValue2;
256 pResult->s.Hi += (uint64_t)pValue1->DWords.dw1 * uHiValue2;
257 pResult->DWords.dw3 += pValue1->DWords.dw2 * uHiValue2;
311 DECLINLINE(PRTUINT128U) RTUInt128DivRem(PRTUINT128U pQuotient, PRTUINT128U pRemainder, PCRTUINT128U pValue1, PCRTUINT128U pValue2);
318 * @param pValue1 The dividend value.
321 DECLINLINE(PRTUINT128U) RTUInt128Div(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
324 return RTUInt128DivRem(pResult, &Ignored, pValue1, pValue2);
333 * @param pValue1 The dividend value.
336 DECLINLINE(PRTUINT128U) RTUInt128Mod(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
339 RTUInt128DivRem(&Ignored, pResult, pValue1, pValue2);
349 * @param pValue1 The first value.
352 DECLINLINE(PRTUINT128U) RTUInt128And(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
354 pResult->s.Hi = pValue1->s.Hi & pValue2->s.Hi;
355 pResult->s.Lo = pValue1->s.Lo & pValue2->s.Lo;
365 * @param pValue1 The first value.
368 DECLINLINE(PRTUINT128U) RTUInt128Or( PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
370 pResult->s.Hi = pValue1->s.Hi | pValue2->s.Hi;
371 pResult->s.Lo = pValue1->s.Lo | pValue2->s.Lo;
381 * @param pValue1 The first value.
384 DECLINLINE(PRTUINT128U) RTUInt128Xor(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
386 pResult->s.Hi = pValue1->s.Hi ^ pValue2->s.Hi;
387 pResult->s.Lo = pValue1->s.Lo ^ pValue2->s.Lo;
939 * @param pValue1 The first value.
942 DECLINLINE(int) RTUInt128Compare(PCRTUINT128U pValue1, PCRTUINT128U pValue2)
945 if (pValue1->s.Hi != pValue2->s.Hi)
946 return pValue1->s.Hi > pValue2->s.Hi ? 1 : -1;
947 if (pValue1->s.Lo != pValue2->s.Lo)
948 return pValue1->s.Lo > pValue2->s.Lo ? 1 : -1;
951 if (pValue1->DWords.dw3 != pValue2->DWords.dw3)
952 return pValue1->DWords.dw3 > pValue2->DWords.dw3 ? 1 : -1;
953 if (pValue1->DWords.dw2 != pValue2->DWords.dw2)
954 return pValue1->DWords.dw2 > pValue2->DWords.dw2 ? 1 : -1;
955 if (pValue1->DWords.dw1 != pValue2->DWords.dw1)
956 return pValue1->DWords.dw1 > pValue2->DWords.dw1 ? 1 : -1;
957 if (pValue1->DWords.dw0 != pValue2->DWords.dw0)
958 return pValue1->DWords.dw0 > pValue2->DWords.dw0 ? 1 : -1;
968 * @param pValue1 The first value.
971 DECLINLINE(bool) RTUInt128IsSmaller(PCRTUINT128U pValue1, PCRTUINT128U pValue2)
974 return pValue1->s.Hi < pValue2->s.Hi
975 || ( pValue1->s.Hi == pValue2->s.Hi
976 && pValue1->s.Lo < pValue2->s.Lo);
978 return pValue1->DWords.dw3 < pValue2->DWords.dw3
979 || ( pValue1->DWords.dw3 == pValue2->DWords.dw3
980 && ( pValue1->DWords.dw2 < pValue2->DWords.dw2
981 || ( pValue1->DWords.dw2 == pValue2->DWords.dw2
982 && ( pValue1->DWords.dw1 < pValue2->DWords.dw1
983 || ( pValue1->DWords.dw1 == pValue2->DWords.dw1
984 && pValue1->DWords.dw0 < pValue2->DWords.dw0)))));
993 * @param pValue1 The first value.
996 DECLINLINE(bool) RTUInt128IsLarger(PCRTUINT128U pValue1, PCRTUINT128U pValue2)
999 return pValue1->s.Hi > pValue2->s.Hi
1000 || ( pValue1->s.Hi == pValue2->s.Hi
1001 && pValue1->s.Lo > pValue2->s.Lo);
1003 return pValue1->DWords.dw3 > pValue2->DWords.dw3
1004 || ( pValue1->DWords.dw3 == pValue2->DWords.dw3
1005 && ( pValue1->DWords.dw2 > pValue2->DWords.dw2
1006 || ( pValue1->DWords.dw2 == pValue2->DWords.dw2
1007 && ( pValue1->DWords.dw1 > pValue2->DWords.dw1
1008 || ( pValue1->DWords.dw1 == pValue2->DWords.dw1
1009 && pValue1->DWords.dw0 > pValue2->DWords.dw0)))));
1018 * @param pValue1 The first value.
1021 DECLINLINE(bool) RTUInt128IsLargerOrEqual(PCRTUINT128U pValue1, PCRTUINT128U pValue2)
1024 return pValue1->s.Hi > pValue2->s.Hi
1025 || ( pValue1->s.Hi == pValue2->s.Hi
1026 && pValue1->s.Lo >= pValue2->s.Lo);
1028 return pValue1->DWords.dw3 > pValue2->DWords.dw3
1029 || ( pValue1->DWords.dw3 == pValue2->DWords.dw3
1030 && ( pValue1->DWords.dw2 > pValue2->DWords.dw2
1031 || ( pValue1->DWords.dw2 == pValue2->DWords.dw2
1032 && ( pValue1->DWords.dw1 > pValue2->DWords.dw1
1033 || ( pValue1->DWords.dw1 == pValue2->DWords.dw1
1034 && pValue1->DWords.dw0 >= pValue2->DWords.dw0)))));
1043 * @param pValue1 The first value.
1046 DECLINLINE(bool) RTUInt128IsEqual(PCRTUINT128U pValue1, PCRTUINT128U pValue2)
1049 return pValue1->s.Hi == pValue2->s.Hi
1050 && pValue1->s.Lo == pValue2->s.Lo;
1052 return pValue1->DWords.dw0 == pValue2->DWords.dw0
1053 && pValue1->DWords.dw1 == pValue2->DWords.dw1
1054 && pValue1->DWords.dw2 == pValue2->DWords.dw2
1055 && pValue1->DWords.dw3 == pValue2->DWords.dw3;
1064 * @param pValue1 The first value.
1067 DECLINLINE(bool) RTUInt128IsNotEqual(PCRTUINT128U pValue1, PCRTUINT128U pValue2)
1069 return !RTUInt128IsEqual(pValue1, pValue2);
1289 * @param pValue1 The dividend value.
1292 DECLINLINE(PRTUINT128U) RTUInt128DivRem(PRTUINT128U pQuotient, PRTUINT128U pRemainder, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
1308 *pQuotient = *pValue1;
1315 iDiff = RTUInt128Compare(pValue1, pValue2);
1318 *pRemainder = *pValue1;
1333 uint32_t iBitAdder = RTUInt128BitCount(pValue1) - RTUInt128BitCount(pValue2);
1338 if (RTUInt128IsLarger(&NormDivisor, pValue1))
1348 *pRemainder = *pValue1;