48#define _COMPONENT ACPI_UTILITIES
73#ifndef ACPI_USE_NATIVE_MATH64
101 MultiplicandOvl.
Full = Multiplicand;
107 ACPI_MUL_64_BY_32 (0, MultiplicandOvl.
Part.
Hi, Multiplier,
108 Product.
Part.
Hi, Carry32);
110 ACPI_MUL_64_BY_32 (0, MultiplicandOvl.
Part.
Lo, Multiplier,
111 Product.
Part.
Lo, Carry32);
113 Product.
Part.
Hi += Carry32;
119 *OutProduct = Product.
Full;
150 OperandOvl.
Full = Operand;
152 if ((
Count & 63) >= 32)
158 ACPI_SHIFT_LEFT_64_BY_32 (OperandOvl.
Part.
Hi,
165 *OutResult = OperandOvl.
Full;
195 OperandOvl.
Full = Operand;
197 if ((
Count & 63) >= 32)
203 ACPI_SHIFT_RIGHT_64_BY_32 (OperandOvl.
Part.
Hi,
210 *OutResult = OperandOvl.
Full;
241 *OutProduct = Multiplicand * Multiplier;
271 *OutResult = Operand <<
Count;
301 *OutResult = Operand >>
Count;
316#ifndef ACPI_USE_NATIVE_DIVIDE
359 DividendOvl.
Full = Dividend;
366 Quotient.
Part.
Hi, Remainder32);
368 ACPI_DIV_64_BY_32 (Remainder32, DividendOvl.
Part.
Lo,
Divisor,
369 Quotient.
Part.
Lo, Remainder32);
375 *OutQuotient = Quotient.
Full;
379 *OutRemainder = Remainder32;
431 Dividend.
Full = InDividend;
445 Quotient.
Part.
Hi, Partial1);
447 ACPI_DIV_64_BY_32 (Partial1, Dividend.
Part.
Lo,
Divisor.Part.Lo,
458 NormalizedDividend = Dividend;
468 NormalizedDividend.
Part.
Hi, NormalizedDividend.
Part.
Lo);
470 }
while (NormalizedDivisor.
Part.
Hi != 0);
489 if (Partial3.
Part.
Hi == 0)
523 *OutQuotient = Quotient.
Full;
573 *OutQuotient = InDividend /
Divisor;
606 *OutQuotient = InDividend / InDivisor;
610 *OutRemainder = InDividend % InDivisor;
unsigned long long UINT64
#define AE_AML_DIVIDE_BY_ZERO
#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo)
#define ACPI_MODULE_NAME(Name)
#define return_ACPI_STATUS(s)
#define ACPI_FUNCTION_TRACE(a)
#define ACPI_ERROR(plist)
ACPI_STATUS AcpiUtShortShiftRight(UINT64 Operand, UINT32 Count, UINT64 *OutResult)
struct uint64_struct UINT64_STRUCT
ACPI_STATUS AcpiUtShortShiftLeft(UINT64 Operand, UINT32 Count, UINT64 *OutResult)
union uint64_overlay UINT64_OVERLAY
ACPI_STATUS AcpiUtDivide(UINT64 InDividend, UINT64 InDivisor, UINT64 *OutQuotient, UINT64 *OutRemainder)
ACPI_STATUS AcpiUtShortDivide(UINT64 Dividend, UINT32 Divisor, UINT64 *OutQuotient, UINT32 *OutRemainder)
ACPI_STATUS AcpiUtShortMultiply(UINT64 Multiplicand, UINT32 Multiplier, UINT64 *OutProduct)
_In_ LARGE_INTEGER Divisor
_In_ LARGE_INTEGER _Out_opt_ PLARGE_INTEGER Remainder