linux-old/arch/sparc/lib/ashrdi3.S
<<
>>
Prefs
   1/* $Id: ashrdi3.S,v 1.4 1999/11/19 04:11:49 davem Exp $
   2 * ashrdi3.S:   The filesystem code creates all kinds of references to
   3 *              this little routine on the sparc with gcc.
   4 *
   5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
   6 */
   7
   8#include <asm/cprefix.h>
   9
  10        .text
  11        .align  4
  12        .globl C_LABEL(__ashrdi3)
  13C_LABEL(__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
  291:
  30        sll     %o0, %g2, %g3
  31        srl     %o1, %o2, %g2
  32        or      %g2, %g3, %o5
  332:
  34        or      %g0, %o4, %o0
  35        or      %g0, %o5, %o1
  363:
  37        jmpl    %o7 + 8, %g0
  38         nop
  39
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.