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