Home | History | Annotate | Download | only in BaseLib
      1 /*++
      2 
      3 Copyright (c) 2004 - 2006, Intel Corporation. All rights reserved.<BR>
      4 This program and the accompanying materials
      5 are licensed and made available under the terms and conditions of the BSD License
      6 which accompanies this distribution.  The full text of the license may be found at
      7 http://opensource.org/licenses/bsd-license.php
      8 
      9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 
     13 Module Name:
     14 
     15   MultS64x64.c
     16 
     17 Abstract:
     18 
     19   Math worker functions.
     20 
     21 --*/
     22 
     23 #include "BaseLibInternals.h"
     24 
     25 /**
     26   Multiples a 64-bit signed integer by a 64-bit signed integer and generates a
     27   64-bit signed result.
     28 
     29   This function multiples the 64-bit signed value Multiplicand by the 64-bit
     30   signed value Multiplier and generates a 64-bit signed result. This 64-bit
     31   signed result is returned.
     32 
     33   If the result overflows, then ASSERT().
     34 
     35   @param  Multiplicand  A 64-bit signed value.
     36   @param  Multiplier    A 64-bit signed value.
     37 
     38   @return Multiplicand * Multiplier
     39 
     40 **/
     41 INT64
     42 EFIAPI
     43 MultS64x64 (
     44   IN      INT64                     Multiplicand,
     45   IN      INT64                     Multiplier
     46   )
     47 {
     48   return (INT64)MultU64x64 ((UINT64) Multiplicand, (UINT64) Multiplier);
     49 }
     50