root/arch/sparc/lib/ashldi3.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * ashldi3.S:   GCC emits these for certain drivers playing
   4  *              with long longs.
   5  *
   6  * Copyright (C) 1999 David S. Miller (davem@redhat.com)
   7  */
   8 
   9 #include <linux/linkage.h>
  10 #include <asm/export.h>
  11 
  12         .text
  13 ENTRY(__ashldi3)
  14         cmp     %o2, 0
  15         be      9f
  16          mov    0x20, %g2
  17 
  18         sub     %g2, %o2, %g2
  19         cmp     %g2, 0
  20         bg      7f
  21          sll    %o0, %o2, %g3
  22 
  23         neg     %g2
  24         clr     %o5
  25         b       8f
  26          sll    %o1, %g2, %o4
  27 7:
  28         srl     %o1, %g2, %g2
  29         sll     %o1, %o2, %o5
  30         or      %g3, %g2, %o4
  31 8:
  32         mov     %o4, %o0
  33         mov     %o5, %o1
  34 9:
  35         retl
  36          nop
  37 ENDPROC(__ashldi3)
  38 EXPORT_SYMBOL(__ashldi3)

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