uboot/arch/sh/lib/ashiftrt.S
<<
>>
Prefs
   1/* Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
   2   2004, 2005, 2006
   3   Free Software Foundation, Inc.
   4
   5This file is free software; you can redistribute it and/or modify it
   6under the terms of the GNU General Public License as published by the
   7Free Software Foundation; either version 2, or (at your option) any
   8later version.
   9
  10In addition to the permissions in the GNU General Public License, the
  11Free Software Foundation gives you unlimited permission to link the
  12compiled version of this file into combinations with other programs,
  13and to distribute those combinations without any restriction coming
  14from the use of this file.  (The General Public License restrictions
  15do apply in other respects; for example, they cover modification of
  16the file, and distribution when not linked into a combine
  17executable.)
  18
  19This file is distributed in the hope that it will be useful, but
  20WITHOUT ANY WARRANTY; without even the implied warranty of
  21MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  22General Public License for more details.
  23
  24You should have received a copy of the GNU General Public License
  25along with this program; see the file COPYING.  If not, write to
  26the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  27Boston, MA 02110-1301, USA.  */
  28
  29!! libgcc routines for the Renesas / SuperH SH CPUs.
  30!! Contributed by Steve Chamberlain.
  31!! sac@cygnus.com
  32
  33!! ashiftrt_r4_x, ___ashrsi3, ___ashlsi3, ___lshrsi3 routines
  34!! recoded in assembly by Toshiyasu Morita
  35!! tm@netcom.com
  36
  37/* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and
  38   ELF local label prefixes by J"orn Rennecke
  39   amylaar@cygnus.com  */
  40
  41        .global __ashiftrt_r4_0
  42        .global __ashiftrt_r4_1
  43        .global __ashiftrt_r4_2
  44        .global __ashiftrt_r4_3
  45        .global __ashiftrt_r4_4
  46        .global __ashiftrt_r4_5
  47        .global __ashiftrt_r4_6
  48        .global __ashiftrt_r4_7
  49        .global __ashiftrt_r4_8
  50        .global __ashiftrt_r4_9
  51        .global __ashiftrt_r4_10
  52        .global __ashiftrt_r4_11
  53        .global __ashiftrt_r4_12
  54        .global __ashiftrt_r4_13
  55        .global __ashiftrt_r4_14
  56        .global __ashiftrt_r4_15
  57        .global __ashiftrt_r4_16
  58        .global __ashiftrt_r4_17
  59        .global __ashiftrt_r4_18
  60        .global __ashiftrt_r4_19
  61        .global __ashiftrt_r4_20
  62        .global __ashiftrt_r4_21
  63        .global __ashiftrt_r4_22
  64        .global __ashiftrt_r4_23
  65        .global __ashiftrt_r4_24
  66        .global __ashiftrt_r4_25
  67        .global __ashiftrt_r4_26
  68        .global __ashiftrt_r4_27
  69        .global __ashiftrt_r4_28
  70        .global __ashiftrt_r4_29
  71        .global __ashiftrt_r4_30
  72        .global __ashiftrt_r4_31
  73        .global __ashiftrt_r4_32
  74
  75        .align  1
  76__ashiftrt_r4_32:
  77__ashiftrt_r4_31:
  78        rotcl   r4
  79        rts
  80        subc    r4,r4
  81__ashiftrt_r4_30:
  82        shar    r4
  83__ashiftrt_r4_29:
  84        shar    r4
  85__ashiftrt_r4_28:
  86        shar    r4
  87__ashiftrt_r4_27:
  88        shar    r4
  89__ashiftrt_r4_26:
  90        shar    r4
  91__ashiftrt_r4_25:
  92        shar    r4
  93__ashiftrt_r4_24:
  94        shlr16  r4
  95        shlr8   r4
  96        rts
  97        exts.b  r4,r4
  98__ashiftrt_r4_23:
  99        shar    r4
 100__ashiftrt_r4_22:
 101        shar    r4
 102__ashiftrt_r4_21:
 103        shar    r4
 104__ashiftrt_r4_20:
 105        shar    r4
 106__ashiftrt_r4_19:
 107        shar    r4
 108__ashiftrt_r4_18:
 109        shar    r4
 110__ashiftrt_r4_17:
 111        shar    r4
 112__ashiftrt_r4_16:
 113        shlr16  r4
 114        rts
 115        exts.w  r4,r4
 116__ashiftrt_r4_15:
 117        shar    r4
 118__ashiftrt_r4_14:
 119        shar    r4
 120__ashiftrt_r4_13:
 121        shar    r4
 122__ashiftrt_r4_12:
 123        shar    r4
 124__ashiftrt_r4_11:
 125        shar    r4
 126__ashiftrt_r4_10:
 127        shar    r4
 128__ashiftrt_r4_9:
 129        shar    r4
 130__ashiftrt_r4_8:
 131        shar    r4
 132__ashiftrt_r4_7:
 133        shar    r4
 134__ashiftrt_r4_6:
 135        shar    r4
 136__ashiftrt_r4_5:
 137        shar    r4
 138__ashiftrt_r4_4:
 139        shar    r4
 140__ashiftrt_r4_3:
 141        shar    r4
 142__ashiftrt_r4_2:
 143        shar    r4
 144__ashiftrt_r4_1:
 145        rts
 146        shar    r4
 147__ashiftrt_r4_0:
 148        rts
 149        nop
 150