1//------------------------------------------------------------------------------
2//
3// Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
4//
5// This program and the accompanying materials
6// are licensed and made available under the terms and conditions of the BSD License
7// which accompanies this distribution.  The full text of the license may be found at
8// http://opensource.org/licenses/bsd-license.php
9//
10// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12//
13//------------------------------------------------------------------------------
14
15
16  EXPORT  __ARM_ll_mullu
17  EXPORT  __aeabi_lmul
18
19  AREA  Math, CODE, READONLY
20
21;
22;INT64
23;EFIAPI
24;__aeabi_lmul (
25;  IN INT64   Multiplicand
26;  IN INT32   Multiplier
27;  );
28;
29__ARM_ll_mullu
30  mov     r3, #0
31// Make upper part of INT64 Multiplier 0 and use __aeabi_lmul
32
33;
34;INT64
35;EFIAPI
36;__aeabi_lmul (
37;  IN INT64   Multiplicand
38;  IN INT64   Multiplier
39;  );
40;
41__aeabi_lmul
42  stmdb   sp!, {lr}
43  mov     lr, r0
44  umull   r0, ip, r2, lr
45  mla     r1, r2, r1, ip
46  mla     r1, r3, lr, r1
47  ldmia   sp!, {pc}
48
49  END
50