Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/s390/lib/tishift.S
26442 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
3
#include <linux/export.h>
4
#include <linux/linkage.h>
5
#include <asm/nospec-insn.h>
6
7
.section .noinstr.text, "ax"
8
9
GEN_BR_THUNK %r14
10
11
SYM_FUNC_START(__ashlti3)
12
lmg %r0,%r1,0(%r3)
13
cije %r4,0,1f
14
lhi %r3,64
15
sr %r3,%r4
16
jnh 0f
17
srlg %r3,%r1,0(%r3)
18
sllg %r0,%r0,0(%r4)
19
sllg %r1,%r1,0(%r4)
20
ogr %r0,%r3
21
j 1f
22
0: sllg %r0,%r1,-64(%r4)
23
lghi %r1,0
24
1: stmg %r0,%r1,0(%r2)
25
BR_EX %r14
26
SYM_FUNC_END(__ashlti3)
27
EXPORT_SYMBOL(__ashlti3)
28
29
SYM_FUNC_START(__ashrti3)
30
lmg %r0,%r1,0(%r3)
31
cije %r4,0,1f
32
lhi %r3,64
33
sr %r3,%r4
34
jnh 0f
35
sllg %r3,%r0,0(%r3)
36
srlg %r1,%r1,0(%r4)
37
srag %r0,%r0,0(%r4)
38
ogr %r1,%r3
39
j 1f
40
0: srag %r1,%r0,-64(%r4)
41
srag %r0,%r0,63
42
1: stmg %r0,%r1,0(%r2)
43
BR_EX %r14
44
SYM_FUNC_END(__ashrti3)
45
EXPORT_SYMBOL(__ashrti3)
46
47
SYM_FUNC_START(__lshrti3)
48
lmg %r0,%r1,0(%r3)
49
cije %r4,0,1f
50
lhi %r3,64
51
sr %r3,%r4
52
jnh 0f
53
sllg %r3,%r0,0(%r3)
54
srlg %r1,%r1,0(%r4)
55
srlg %r0,%r0,0(%r4)
56
ogr %r1,%r3
57
j 1f
58
0: srlg %r1,%r0,-64(%r4)
59
lghi %r0,0
60
1: stmg %r0,%r1,0(%r2)
61
BR_EX %r14
62
SYM_FUNC_END(__lshrti3)
63
EXPORT_SYMBOL(__lshrti3)
64
65