Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/sparc/lib/ashrdi3.S
26424 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
/*
3
* ashrdi3.S: The filesystem code creates all kinds of references to
4
* this little routine on the sparc with gcc.
5
*
6
* Copyright (C) 1995 David S. Miller ([email protected])
7
*/
8
9
#include <linux/export.h>
10
#include <linux/linkage.h>
11
12
.text
13
ENTRY(__ashrdi3)
14
tst %o2
15
be 3f
16
or %g0, 32, %g2
17
18
sub %g2, %o2, %g2
19
20
tst %g2
21
bg 1f
22
sra %o0, %o2, %o4
23
24
sra %o0, 31, %o4
25
sub %g0, %g2, %g2
26
ba 2f
27
sra %o0, %g2, %o5
28
29
1:
30
sll %o0, %g2, %g3
31
srl %o1, %o2, %g2
32
or %g2, %g3, %o5
33
2:
34
or %g0, %o4, %o0
35
or %g0, %o5, %o1
36
3:
37
jmpl %o7 + 8, %g0
38
nop
39
ENDPROC(__ashrdi3)
40
EXPORT_SYMBOL(__ashrdi3)
41
42