Home | History | Annotate | Line # | Download | only in sh3
ashiftrt.S revision 1.5.2.2
      1 /*	$NetBSD: ashiftrt.S,v 1.5.2.2 2006/05/11 23:31:08 elad Exp $	*/
      2 
      3 /*-
      4  * Copyright (C) 1999 Tsubai Masanari.  All rights reserved.
      5  *
      6  * Redistribution and use in source and binary forms, with or without
      7  * modification, are permitted provided that the following conditions
      8  * are met:
      9  * 1. Redistributions of source code must retain the above copyright
     10  *    notice, this list of conditions and the following disclaimer.
     11  * 2. Redistributions in binary form must reproduce the above copyright
     12  *    notice, this list of conditions and the following disclaimer in the
     13  *    documentation and/or other materials provided with the distribution.
     14  * 3. The name of the author may not be used to endorse or promote products
     15  *    derived from this software without specific prior written permission.
     16  *
     17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     19  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     20  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     22  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27  */
     28 
     29 #include <machine/asm.h>
     30 
     31 #ifdef PIC	/* XXX: uwe */
     32 	.hidden __ashiftrt_r4_0
     33 	.hidden __ashiftrt_r4_1
     34 	.hidden __ashiftrt_r4_2
     35 	.hidden __ashiftrt_r4_3
     36 	.hidden __ashiftrt_r4_4
     37 	.hidden __ashiftrt_r4_5
     38 	.hidden __ashiftrt_r4_6
     39 	.hidden __ashiftrt_r4_7
     40 	.hidden __ashiftrt_r4_8
     41 	.hidden __ashiftrt_r4_9
     42 	.hidden __ashiftrt_r4_10
     43 	.hidden __ashiftrt_r4_11
     44 	.hidden __ashiftrt_r4_12
     45 	.hidden __ashiftrt_r4_13
     46 	.hidden __ashiftrt_r4_14
     47 	.hidden __ashiftrt_r4_15
     48 	.hidden __ashiftrt_r4_16
     49 	.hidden __ashiftrt_r4_17
     50 	.hidden __ashiftrt_r4_18
     51 	.hidden __ashiftrt_r4_19
     52 	.hidden __ashiftrt_r4_20
     53 	.hidden __ashiftrt_r4_21
     54 	.hidden __ashiftrt_r4_22
     55 	.hidden __ashiftrt_r4_23
     56 	.hidden __ashiftrt_r4_24
     57 	.hidden __ashiftrt_r4_25
     58 	.hidden __ashiftrt_r4_26
     59 	.hidden __ashiftrt_r4_27
     60 	.hidden __ashiftrt_r4_28
     61 	.hidden __ashiftrt_r4_29
     62 	.hidden __ashiftrt_r4_30
     63 	.hidden __ashiftrt_r4_31
     64 #endif /* PIC */
     65 
     66 
     67 NENTRY(__ashiftrt_r4_31)
     68 	shll	r4
     69 	rts
     70 	 subc	r4, r4
     71 
     72 ALTENTRY(__ashiftrt_r4_30)
     73 	shar	r4
     74 
     75 ALTENTRY(__ashiftrt_r4_29)
     76 	shar	r4
     77 
     78 ALTENTRY(__ashiftrt_r4_28)
     79 	shar	r4
     80 
     81 ALTENTRY(__ashiftrt_r4_27)
     82 	shar	r4
     83 
     84 ALTENTRY(__ashiftrt_r4_26)
     85 	shar	r4
     86 
     87 ALTENTRY(__ashiftrt_r4_25)
     88 	shar	r4
     89 
     90 ALTENTRY(__ashiftrt_r4_24)
     91 	shlr16	r4
     92 	shlr8	r4
     93 	rts
     94 	 exts.b	r4, r4
     95 
     96 ALTENTRY(__ashiftrt_r4_23)
     97 	shar	r4
     98 
     99 ALTENTRY(__ashiftrt_r4_22)
    100 	shar	r4
    101 
    102 ALTENTRY(__ashiftrt_r4_21)
    103 	shar	r4
    104 
    105 ALTENTRY(__ashiftrt_r4_20)
    106 	shar	r4
    107 
    108 ALTENTRY(__ashiftrt_r4_19)
    109 	shar	r4
    110 
    111 ALTENTRY(__ashiftrt_r4_18)
    112 	shar	r4
    113 
    114 ALTENTRY(__ashiftrt_r4_17)
    115 	shar	r4
    116 
    117 ALTENTRY(__ashiftrt_r4_16)
    118 	shlr16	r4
    119 	rts
    120 	 exts.w	r4, r4
    121 
    122 ALTENTRY(__ashiftrt_r4_15)
    123 	swap.w	r4, r4
    124 	cmp/pz	r4
    125 	bf/s	1f
    126 	 exts.w	r4, r4
    127 	rts
    128 	 shll	r4
    129 1:
    130 	sett
    131 	rts
    132 	 rotcl	r4
    133 
    134 ALTENTRY(__ashiftrt_r4_14)
    135 	shar	r4
    136 
    137 ALTENTRY(__ashiftrt_r4_13)
    138 	shar	r4
    139 
    140 ALTENTRY(__ashiftrt_r4_12)
    141 	shar	r4
    142 
    143 ALTENTRY(__ashiftrt_r4_11)
    144 	shar	r4
    145 
    146 ALTENTRY(__ashiftrt_r4_10)
    147 	shar	r4
    148 
    149 ALTENTRY(__ashiftrt_r4_9)
    150 	shar	r4
    151 
    152 ALTENTRY(__ashiftrt_r4_8)
    153 	shar	r4
    154 
    155 ALTENTRY(__ashiftrt_r4_7)
    156 	shar	r4
    157 
    158 ALTENTRY(__ashiftrt_r4_6)
    159 	shar	r4
    160 
    161 ALTENTRY(__ashiftrt_r4_5)
    162 	shar	r4
    163 
    164 ALTENTRY(__ashiftrt_r4_4)
    165 	shar	r4
    166 
    167 ALTENTRY(__ashiftrt_r4_3)
    168 	shar	r4
    169 
    170 ALTENTRY(__ashiftrt_r4_2)
    171 	shar	r4
    172 
    173 ALTENTRY(__ashiftrt_r4_1)
    174 	rts
    175 	 shar	r4
    176 
    177 ALTENTRY(__ashiftrt_r4_0)
    178 	rts
    179 	 nop
    180