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
11SYM_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
220: sllg %r0,%r1,-64(%r4)
23 lghi %r1,0
241: stmg %r0,%r1,0(%r2)
25 BR_EX %r14
26SYM_FUNC_END(__ashlti3)
27EXPORT_SYMBOL(__ashlti3)
28
29SYM_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
400: srag %r1,%r0,-64(%r4)
41 srag %r0,%r0,63
421: stmg %r0,%r1,0(%r2)
43 BR_EX %r14
44SYM_FUNC_END(__ashrti3)
45EXPORT_SYMBOL(__ashrti3)
46
47SYM_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
580: srlg %r1,%r0,-64(%r4)
59 lghi %r0,0
601: stmg %r0,%r1,0(%r2)
61 BR_EX %r14
62SYM_FUNC_END(__lshrti3)
63EXPORT_SYMBOL(__lshrti3)
64

source code of linux/arch/s390/lib/tishift.S