Committer: Michael Beasley <mike@snafu.setup>
[mikesnafu-overlay.git] / arch / blackfin / lib / smulsi3_highpart.S
blobe383cd3eca5d9c428e605b144290b4477b57bba3
1 .align 2
2 .global ___smulsi3_highpart;
3 .type ___smulsi3_highpart, STT_FUNC;
5 #ifdef CONFIG_ARITHMETIC_OPS_L1
6 .section .l1.text
7 #else
8 .text
9 #endif
11 ___smulsi3_highpart:
12         R2 = R1.L * R0.L (FU);
13         R3 = R1.H * R0.L (IS,M);
14         R0 = R0.H * R1.H, R1 = R0.H * R1.L (IS,M);
16         R1.L = R2.H + R1.L;
17         cc = ac0;
18         R2 = cc;
20         R1.L = R1.L + R3.L;
21         cc = ac0;
22         R1 >>>= 16;
23         R3 >>>= 16;
24         R1 = R1 + R3;
25         R1 = R1 + R2;
26         R2 = cc;
27         R1 = R1 + R2;
29         R0 = R0 + R1;
30         RTS;
32 .size ___smulsi3_highpart, .-___smulsi3_highpart