Lines Matching +full:full +full:- +full:bit
3 * Module Name: utmath - Integer math support routines
11 * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
104 * re-exports any such software from a foreign destination, Licensee shall
105 * ensure that the distribution and export/re-export of the software is in
108 * any of its subsidiaries will export/re-export any technical data, process,
130 * 3. Neither the names of the above-listed copyright holders nor the names
159 /* Structures used only for 64-bit divide */
170 UINT64 Full; member
176 * Optional support for 64-bit double-precision integer multiply and shift.
177 * This code is configurable and is implemented in order to support 32-bit
178 * kernel environments where a 64-bit double-precision math library is not
187 * PARAMETERS: Multiplicand - 64-bit multiplicand
188 * Multiplier - 32-bit multiplier
189 * OutProduct - Pointer to where the product is returned
209 MultiplicandOvl.Full = Multiplicand; in AcpiUtShortMultiply()
227 *OutProduct = Product.Full; in AcpiUtShortMultiply()
238 * PARAMETERS: Operand - 64-bit shift operand
239 * Count - 32-bit shift count
240 * OutResult - Pointer to where the result is returned
258 OperandOvl.Full = Operand; in AcpiUtShortShiftLeft()
264 Count = (Count & 63) - 32; in AcpiUtShortShiftLeft()
273 *OutResult = OperandOvl.Full; in AcpiUtShortShiftLeft()
283 * PARAMETERS: Operand - 64-bit shift operand
284 * Count - 32-bit shift count
285 * OutResult - Pointer to where the result is returned
303 OperandOvl.Full = Operand; in AcpiUtShortShiftRight()
309 Count = (Count & 63) - 32; in AcpiUtShortShiftRight()
318 *OutResult = OperandOvl.Full; in AcpiUtShortShiftRight()
417 * Optional support for 64-bit double-precision integer divide. This code
418 * is configurable and is implemented in order to support 32-bit kernel
419 * environments where a 64-bit double-precision math library is not available.
421 * Support for a more normal 64-bit divide/modulo (with check for a divide-
422 * by-zero) appears after this optional section of code.
431 * PARAMETERS: Dividend - 64-bit dividend
432 * Divisor - 32-bit divisor
433 * OutQuotient - Pointer to where the quotient is returned
434 * OutRemainder - Pointer to where the remainder is returned
436 * RETURN: Status (Checks for divide-by-zero)
439 * divide and modulo. The result is a 64-bit quotient and a
440 * 32-bit remainder.
467 DividendOvl.Full = Dividend; in AcpiUtShortDivide()
483 *OutQuotient = Quotient.Full; in AcpiUtShortDivide()
498 * PARAMETERS: InDividend - Dividend
499 * InDivisor - Divisor
500 * OutQuotient - Pointer to where the quotient is returned
501 * OutRemainder - Pointer to where the remainder is returned
503 * RETURN: Status (Checks for divide-by-zero)
538 Divisor.Full = InDivisor; in AcpiUtDivide()
539 Dividend.Full = InDividend; in AcpiUtDivide()
562 * 2) The general case where the divisor is a full 64 bits in AcpiUtDivide()
588 * adjustment. The 64-bit remainder must be generated. in AcpiUtDivide()
591 Partial2.Full = (UINT64) Quotient.Part.Lo * Divisor.Part.Lo; in AcpiUtDivide()
592 Partial3.Full = (UINT64) Partial2.Part.Hi + Partial1; in AcpiUtDivide()
605 Quotient.Part.Lo--; in AcpiUtDivide()
606 Remainder.Full -= Divisor.Full; in AcpiUtDivide()
611 Quotient.Part.Lo--; in AcpiUtDivide()
612 Remainder.Full -= Divisor.Full; in AcpiUtDivide()
616 Remainder.Full = Remainder.Full - Dividend.Full; in AcpiUtDivide()
617 Remainder.Part.Hi = (UINT32) -((INT32) Remainder.Part.Hi); in AcpiUtDivide()
618 Remainder.Part.Lo = (UINT32) -((INT32) Remainder.Part.Lo); in AcpiUtDivide()
622 Remainder.Part.Hi--; in AcpiUtDivide()
631 *OutQuotient = Quotient.Full; in AcpiUtDivide()
635 *OutRemainder = Remainder.Full; in AcpiUtDivide()
650 * 1) The target is a 64-bit platform and therefore 64-bit
652 * 2) The target is a 32-bit or 16-bit platform, and the
653 * double-precision integer math library is available to