Lines Matching refs:pResult

68  * @returns pResult
69 * @param pResult The result variable.
71 DECLINLINE(PRTUINT128U) RTUInt128SetZero(PRTUINT128U pResult)
74 pResult->s.Hi = 0;
75 pResult->s.Lo = 0;
77 pResult->DWords.dw0 = 0;
78 pResult->DWords.dw1 = 0;
79 pResult->DWords.dw2 = 0;
80 pResult->DWords.dw3 = 0;
82 return pResult;
89 * @returns pResult
90 * @param pResult The result variable.
92 DECLINLINE(PRTUINT128U) RTUInt128SetMax(PRTUINT128U pResult)
95 pResult->s.Hi = UINT64_MAX;
96 pResult->s.Lo = UINT64_MAX;
98 pResult->DWords.dw0 = UINT32_MAX;
99 pResult->DWords.dw1 = UINT32_MAX;
100 pResult->DWords.dw2 = UINT32_MAX;
101 pResult->DWords.dw3 = UINT32_MAX;
103 return pResult;
112 * @returns pResult
113 * @param pResult The result variable.
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)
122 pResult->s.Hi++;
123 return pResult;
130 * @returns pResult
131 * @param pResult The result variable.
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)
140 pResult->s.Hi++;
141 return pResult;
148 * @returns pResult
149 * @param pResult The result variable.
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)
158 pResult->s.Hi--;
159 return pResult;
166 * @returns pResult
167 * @param pResult The result variable.
171 DECLINLINE(PRTUINT128U) RTUInt128Mul(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
176 pResult->s.Lo = (uint64_t)pValue1->DWords.dw0 * pValue2->DWords.dw0;
179 pResult->DWords.dw3 = 0;
180 pResult->DWords.dw2 = uTmp.DWords.dw1;
181 pResult->DWords.dw1 += uTmp.DWords.dw0;
182 if (pResult->DWords.dw1 < uTmp.DWords.dw0)
183 if (pResult->DWords.dw2++ == UINT32_MAX)
184 pResult->DWords.dw3++;
186 pResult->s.Hi += (uint64_t)pValue1->DWords.dw2 * pValue2->DWords.dw0;
187 pResult->DWords.dw3 += pValue1->DWords.dw3 * pValue2->DWords.dw0;
191 pResult->DWords.dw1 += uTmp.DWords.dw0;
192 if (pResult->DWords.dw1 < uTmp.DWords.dw0)
193 if (pResult->DWords.dw2++ == UINT32_MAX)
194 pResult->DWords.dw3++;
196 pResult->DWords.dw2 += uTmp.DWords.dw1;
197 if (pResult->DWords.dw2 < uTmp.DWords.dw1)
198 pResult->DWords.dw3++;
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;
210 return pResult;
217 * @returns pResult
218 * @param pResult The result variable.
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;
235 pResult->DWords.dw3 = 0;
236 pResult->DWords.dw2 = uTmp.DWords.dw1;
237 pResult->DWords.dw1 += uTmp.DWords.dw0;
238 if (pResult->DWords.dw1 < uTmp.DWords.dw0)
239 if (pResult->DWords.dw2++ == UINT32_MAX)
240 pResult->DWords.dw3++;
242 pResult->s.Hi += (uint64_t)pValue1->DWords.dw2 * uLoValue2;
243 pResult->DWords.dw3 += pValue1->DWords.dw3 * uLoValue2;
247 pResult->DWords.dw1 += uTmp.DWords.dw0;
248 if (pResult->DWords.dw1 < uTmp.DWords.dw0)
249 if (pResult->DWords.dw2++ == UINT32_MAX)
250 pResult->DWords.dw3++;
252 pResult->DWords.dw2 += uTmp.DWords.dw1;
253 if (pResult->DWords.dw2 < uTmp.DWords.dw1)
254 pResult->DWords.dw3++;
256 pResult->s.Hi += (uint64_t)pValue1->DWords.dw1 * uHiValue2;
257 pResult->DWords.dw3 += pValue1->DWords.dw2 * uHiValue2;
259 return pResult;
267 * @returns pResult
268 * @param pResult The result variable.
272 DECLINLINE(PRTUINT128U) RTUInt128MulU64ByU64(PRTUINT128U pResult, uint64_t uValue1, uint64_t uValue2)
275 pResult->s.Lo = ASMMult2xU64Ret2xU64(uValue1, uValue2, &pResult->s.Hi);
284 pResult->s.Lo = (uint64_t)uLoValue1 * uLoValue2;
287 pResult->DWords.dw3 = 0;
288 pResult->DWords.dw2 = uTmp.DWords.dw1;
289 pResult->DWords.dw1 += uTmp.DWords.dw0;
290 if (pResult->DWords.dw1 < uTmp.DWords.dw0)
291 if (pResult->DWords.dw2++ == UINT32_MAX)
292 pResult->DWords.dw3++;
296 pResult->DWords.dw1 += uTmp.DWords.dw0;
297 if (pResult->DWords.dw1 < uTmp.DWords.dw0)
298 if (pResult->DWords.dw2++ == UINT32_MAX)
299 pResult->DWords.dw3++;
301 pResult->DWords.dw2 += uTmp.DWords.dw1;
302 if (pResult->DWords.dw2 < uTmp.DWords.dw1)
303 pResult->DWords.dw3++;
305 pResult->s.Hi += (uint64_t)uHiValue1 * uHiValue2;
307 return pResult;
316 * @returns pResult
317 * @param pResult The result variable.
321 DECLINLINE(PRTUINT128U) RTUInt128Div(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
324 return RTUInt128DivRem(pResult, &Ignored, pValue1, pValue2);
331 * @returns pResult
332 * @param pResult The result variable (remainder).
336 DECLINLINE(PRTUINT128U) RTUInt128Mod(PRTUINT128U pResult, PCRTUINT128U pValue1, PCRTUINT128U pValue2)
339 RTUInt128DivRem(&Ignored, pResult, pValue1, pValue2);
340 return pResult;
347 * @returns pResult
348 * @param pResult The result variable.
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;
356 return pResult;
363 * @returns pResult
364 * @param pResult The result variable.
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;
372 return pResult;
379 * @returns pResult
380 * @param pResult The result variable.
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;
388 return pResult;
395 * @returns pResult
396 * @param pResult The result variable.
400 DECLINLINE(PRTUINT128U) RTUInt128ShiftLeft(PRTUINT128U pResult, PCRTUINT128U pValue, int cBits)
405 pResult->s.Lo = pValue->s.Lo << cBits;
406 pResult->s.Hi = (pValue->s.Hi << cBits) | (pValue->s.Lo >> (64 - cBits));
410 pResult->s.Lo = 0;
411 pResult->s.Hi = pValue->s.Lo << (cBits - 64);
413 return pResult;
420 * @returns pResult
421 * @param pResult The result variable.
425 DECLINLINE(PRTUINT128U) RTUInt128ShiftRight(PRTUINT128U pResult, PCRTUINT128U pValue, int cBits)
430 pResult->s.Hi = pValue->s.Hi >> cBits;
431 pResult->s.Lo = (pValue->s.Lo >> cBits) | (pValue->s.Hi << (64 - cBits));
435 pResult->s.Hi = 0;
436 pResult->s.Lo = pValue->s.Hi >> (cBits - 64);
438 return pResult;
445 * @returns pResult.
446 * @param pResult The result variable.
449 DECLINLINE(PRTUINT128U) RTUInt128BooleanNot(PRTUINT128U pResult, PCRTUINT128U pValue)
451 pResult->s.Hi = 0;
452 pResult->s.Lo = pValue->s.Lo || pValue->s.Hi ? 0 : 1;
453 return pResult;
460 * @returns pResult.
461 * @param pResult The result variable.
464 DECLINLINE(PRTUINT128U) RTUInt128BitwiseNot(PRTUINT128U pResult, PCRTUINT128U pValue)
466 pResult->s.Hi = ~pValue->s.Hi;
467 pResult->s.Lo = ~pValue->s.Lo;
468 return pResult;
475 * @returns pResult
476 * @param pResult The result variable.
479 DECLINLINE(PRTUINT128U) RTUInt128Assign(PRTUINT128U pResult, PCRTUINT128U pValue)
482 pResult->s.Hi = pValue->s.Hi;
483 pResult->s.Lo = pValue->s.Lo;
485 pResult->DWords.dw0 = pValue->DWords.dw0;
486 pResult->DWords.dw1 = pValue->DWords.dw1;
487 pResult->DWords.dw2 = pValue->DWords.dw2;
488 pResult->DWords.dw3 = pValue->DWords.dw3;
490 return pResult;
497 * @returns pResult
498 * @param pResult The result variable.
519 * @returns pResult
520 * @param pResult The result variable.
541 * @returns pResult
542 * @param pResult The result variable.
563 * @returns pResult
564 * @param pResult The result variable.
585 * @returns pResult
586 * @param pResult The result variable.