Root/arch/blackfin/lib/smulsi3_highpart.S

1/*
2 * Copyright 2007 Analog Devices Inc.
3 *
4 * Licensed under the ADI BSD license or the GPL-2 (or later)
5 */
6
7.align 2
8.global ___smulsi3_highpart;
9.type ___smulsi3_highpart, STT_FUNC;
10
11#ifdef CONFIG_ARITHMETIC_OPS_L1
12.section .l1.text
13#else
14.text
15#endif
16
17___smulsi3_highpart:
18    R2 = R1.L * R0.L (FU);
19    R3 = R1.H * R0.L (IS,M);
20    R0 = R0.H * R1.H, R1 = R0.H * R1.L (IS,M);
21
22    R1.L = R2.H + R1.L;
23    cc = ac0;
24    R2 = cc;
25
26    R1.L = R1.L + R3.L;
27    cc = ac0;
28    R1 >>>= 16;
29    R3 >>>= 16;
30    R1 = R1 + R3;
31    R1 = R1 + R2;
32    R2 = cc;
33    R1 = R1 + R2;
34
35    R0 = R0 + R1;
36    RTS;
37
38.size ___smulsi3_highpart, .-___smulsi3_highpart
39

Archive Download this file



interactive