1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*---------------------------------------------------------------------------+
5 | Multiply a 12 byte fixed point number by another fixed point number. |
7 | Copyright (C) 1992,1994,1995 |
8 | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, |
9 | Australia. E-mail billm@jacobi.maths.monash.edu.au |
12 | void mul32_Xsig(Xsig *x, unsigned b) |
14 | void mul64_Xsig(Xsig *x, unsigned long long *b) |
16 | void mul_Xsig_Xsig(Xsig *x, unsigned *b) |
18 | The result is neither rounded nor normalized, and the ls bit or so may |
21 +---------------------------------------------------------------------------*/
28 SYM_FUNC_START(mul32_Xsig)
41 movl (%esi),%eax /* lsl of Xsig */
42 mull %ecx /* msl of b */
45 movl 4(%esi),%eax /* midl of Xsig */
46 mull %ecx /* msl of b */
51 movl 8(%esi),%eax /* msl of Xsig */
52 mull %ecx /* msl of b */
66 SYM_FUNC_END(mul32_Xsig)
69 SYM_FUNC_START(mul64_Xsig)
82 movl (%esi),%eax /* lsl of Xsig */
83 mull 4(%ecx) /* msl of b */
86 movl 4(%esi),%eax /* midl of Xsig */
87 mull (%ecx) /* lsl of b */
92 movl 4(%esi),%eax /* midl of Xsig */
93 mull 4(%ecx) /* msl of b */
98 movl 8(%esi),%eax /* msl of Xsig */
99 mull (%ecx) /* lsl of b */
104 movl 8(%esi),%eax /* msl of Xsig */
105 mull 4(%ecx) /* msl of b */
119 SYM_FUNC_END(mul64_Xsig)
123 SYM_FUNC_START(mul_Xsig_Xsig)
136 movl (%esi),%eax /* lsl of Xsig */
137 mull 8(%ecx) /* msl of b */
140 movl 4(%esi),%eax /* midl of Xsig */
141 mull 4(%ecx) /* midl of b */
146 movl 8(%esi),%eax /* msl of Xsig */
147 mull (%ecx) /* lsl of b */
152 movl 4(%esi),%eax /* midl of Xsig */
153 mull 8(%ecx) /* msl of b */
158 movl 8(%esi),%eax /* msl of Xsig */
159 mull 4(%ecx) /* midl of b */
164 movl 8(%esi),%eax /* msl of Xsig */
165 mull 8(%ecx) /* msl of b */
179 SYM_FUNC_END(mul_Xsig_Xsig)