Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/arm64/lib/tishift.S
26425 views
1
/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
2
*
3
* Copyright (C) 2017-2018 Jason A. Donenfeld <[email protected]>. All Rights Reserved.
4
*/
5
6
#include <linux/linkage.h>
7
8
#include <asm/assembler.h>
9
10
SYM_FUNC_START(__ashlti3)
11
cbz x2, 1f
12
mov x3, #64
13
sub x3, x3, x2
14
cmp x3, #0
15
b.le 2f
16
lsl x1, x1, x2
17
lsr x3, x0, x3
18
lsl x2, x0, x2
19
orr x1, x1, x3
20
mov x0, x2
21
1:
22
ret
23
2:
24
neg w1, w3
25
mov x2, #0
26
lsl x1, x0, x1
27
mov x0, x2
28
ret
29
SYM_FUNC_END(__ashlti3)
30
EXPORT_SYMBOL(__ashlti3)
31
32
SYM_FUNC_START(__ashrti3)
33
cbz x2, 1f
34
mov x3, #64
35
sub x3, x3, x2
36
cmp x3, #0
37
b.le 2f
38
lsr x0, x0, x2
39
lsl x3, x1, x3
40
asr x2, x1, x2
41
orr x0, x0, x3
42
mov x1, x2
43
1:
44
ret
45
2:
46
neg w0, w3
47
asr x2, x1, #63
48
asr x0, x1, x0
49
mov x1, x2
50
ret
51
SYM_FUNC_END(__ashrti3)
52
EXPORT_SYMBOL(__ashrti3)
53
54
SYM_FUNC_START(__lshrti3)
55
cbz x2, 1f
56
mov x3, #64
57
sub x3, x3, x2
58
cmp x3, #0
59
b.le 2f
60
lsr x0, x0, x2
61
lsl x3, x1, x3
62
lsr x2, x1, x2
63
orr x0, x0, x3
64
mov x1, x2
65
1:
66
ret
67
2:
68
neg w0, w3
69
mov x2, #0
70
lsr x0, x1, x0
71
mov x1, x2
72
ret
73
SYM_FUNC_END(__lshrti3)
74
EXPORT_SYMBOL(__lshrti3)
75
76