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