Merge tag 'ceph-for-4.7-rc8' of git://github.com/ceph/ceph-client
[deliverable/linux.git] / arch / blackfin / lib / umulsi3_highpart.S
1 /*
2 * Copyright 2007 Analog Devices Inc.
3 *
4 * Licensed under the Clear BSD license or the GPL-2 (or later)
5 */
6
7 .align 2
8 .global ___umulsi3_highpart;
9 .type ___umulsi3_highpart, STT_FUNC;
10
11 #ifdef CONFIG_ARITHMETIC_OPS_L1
12 .section .l1.text
13 #else
14 .text
15 #endif
16
17 ___umulsi3_highpart:
18 R2 = R1.H * R0.H, R3 = R1.L * R0.H (FU);
19 R0 = R1.L * R0.L, R1 = R1.H * R0.L (FU);
20 R0 >>= 16;
21 /* Unsigned multiplication has the nice property that we can
22 ignore carry on this first addition. */
23 R0 = R0 + R3;
24 R0 = R0 + R1;
25 cc = ac0;
26 R1 = cc;
27 R1 = PACK(R1.l,R0.h);
28 R0 = R1 + R2;
29 RTS;
30
31 .size ___umulsi3_highpart, .-___umulsi3_highpart
This page took 0.039628 seconds and 5 git commands to generate.