3 // Copyright (c) 2006, Intel Corporation
4 // All rights reserved. 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
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.
18 // Low level routines for IPF multiply support
32 //Routine Description:
34 // Multiply two 64-bit signed numbers.
43 // OUT INT64 *ResultHigh);
47 // 64-bit signed result
52 // signed 64x64->128-bit multiply
53 // A in r32, B in r33, Q_hi stored in [r34], Q_lo returned in r8
55 alloc r31=ar.pfs,3,0,0,0 // r32-r34
93 //Routine Description:
95 // Multiply two 64-bit unsigned numbers.
104 // OUT UINT64 *ResultHigh);
108 // 64-bit unsigned result
112 // A in r32, B in r33, Q_hi stored in [r34], Q_lo returned in r8
114 alloc r31=ar.pfs,3,0,0,0 // r32-r34