root/arch/riscv/lib/tishift.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright (C) 2018 Free Software Foundation, Inc.
   4  */
   5 
   6 #include <linux/linkage.h>
   7 
   8 ENTRY(__lshrti3)
   9         beqz    a2, .L1
  10         li      a5,64
  11         sub     a5,a5,a2
  12         addi    sp,sp,-16
  13         sext.w  a4,a5
  14         blez    a5, .L2
  15         sext.w  a2,a2
  16         sll     a4,a1,a4
  17         srl     a0,a0,a2
  18         srl     a1,a1,a2
  19         or      a0,a0,a4
  20         sd      a1,8(sp)
  21         sd      a0,0(sp)
  22         ld      a0,0(sp)
  23         ld      a1,8(sp)
  24         addi    sp,sp,16
  25         ret
  26 .L1:
  27         ret
  28 .L2:
  29         negw    a4,a4
  30         srl     a1,a1,a4
  31         sd      a1,0(sp)
  32         sd      zero,8(sp)
  33         ld      a0,0(sp)
  34         ld      a1,8(sp)
  35         addi    sp,sp,16
  36         ret
  37 ENDPROC(__lshrti3)

/* [<][>][^][v][top][bottom][index][help] */