root/arch/sparc/lib/ashrdi3.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * ashrdi3.S:   The filesystem code creates all kinds of references to
   4  *              this little routine on the sparc with gcc.
   5  *
   6  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
   7  */
   8 
   9 #include <linux/linkage.h>
  10 #include <asm/export.h>
  11 
  12         .text
  13 ENTRY(__ashrdi3)
  14         tst     %o2
  15         be      3f
  16          or     %g0, 32, %g2
  17 
  18         sub     %g2, %o2, %g2
  19 
  20         tst     %g2
  21         bg      1f
  22          sra    %o0, %o2, %o4
  23 
  24         sra     %o0, 31, %o4
  25         sub     %g0, %g2, %g2
  26         ba      2f
  27          sra    %o0, %g2, %o5
  28 
  29 1:
  30         sll     %o0, %g2, %g3
  31         srl     %o1, %o2, %g2
  32         or      %g2, %g3, %o5
  33 2:
  34         or      %g0, %o4, %o0
  35         or      %g0, %o5, %o1
  36 3:
  37         jmpl    %o7 + 8, %g0
  38          nop
  39 ENDPROC(__ashrdi3)
  40 EXPORT_SYMBOL(__ashrdi3)

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