LRotU64.c revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
2N/A/** @file
2N/A Math worker functions.
2N/A
2N/A Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
2N/A This program and the accompanying materials
2N/A are licensed and made available under the terms and conditions of the BSD License
2N/A which accompanies this distribution. The full text of the license may be found at
2N/A http://opensource.org/licenses/bsd-license.php.
2N/A
2N/A THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
2N/A WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
2N/A
2N/A**/
2N/A
2N/A#include "BaseLibInternals.h"
2N/A
2N/A/**
2N/A Rotates a 64-bit integer left between 0 and 63 bits, filling the low bits
2N/A with the high bits that were rotated.
2N/A
2N/A This function rotates the 64-bit value Operand to the left by Count bits. The
2N/A low Count bits are fill with the high Count bits of Operand. The rotated
2N/A value is returned.
2N/A
2N/A If Count is greater than 63, then ASSERT().
2N/A
2N/A @param Operand The 64-bit operand to rotate left.
2N/A @param Count The number of bits to rotate left.
2N/A
2N/A @return Operand << Count
2N/A
2N/A**/
2N/AUINT64
2N/AEFIAPI
2N/ALRotU64 (
2N/A IN UINT64 Operand,
2N/A IN UINTN Count
2N/A )
2N/A{
2N/A ASSERT (Count < 64);
2N/A return InternalMathLRotU64 (Operand, Count);
2N/A}
2N/A