ashiftrt.S revision 1.7 1 /* $NetBSD: ashiftrt.S,v 1.7 2009/01/07 22:15:18 uwe 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
32 #ifdef __ELF__
33 .hidden __ashiftrt_r4_0
34 .hidden __ashiftrt_r4_1
35 .hidden __ashiftrt_r4_2
36 .hidden __ashiftrt_r4_3
37 .hidden __ashiftrt_r4_4
38 .hidden __ashiftrt_r4_5
39 .hidden __ashiftrt_r4_6
40 .hidden __ashiftrt_r4_7
41 .hidden __ashiftrt_r4_8
42 .hidden __ashiftrt_r4_9
43 .hidden __ashiftrt_r4_10
44 .hidden __ashiftrt_r4_11
45 .hidden __ashiftrt_r4_12
46 .hidden __ashiftrt_r4_13
47 .hidden __ashiftrt_r4_14
48 .hidden __ashiftrt_r4_15
49 .hidden __ashiftrt_r4_16
50 .hidden __ashiftrt_r4_17
51 .hidden __ashiftrt_r4_18
52 .hidden __ashiftrt_r4_19
53 .hidden __ashiftrt_r4_20
54 .hidden __ashiftrt_r4_21
55 .hidden __ashiftrt_r4_22
56 .hidden __ashiftrt_r4_23
57 .hidden __ashiftrt_r4_24
58 .hidden __ashiftrt_r4_25
59 .hidden __ashiftrt_r4_26
60 .hidden __ashiftrt_r4_27
61 .hidden __ashiftrt_r4_28
62 .hidden __ashiftrt_r4_29
63 .hidden __ashiftrt_r4_30
64 .hidden __ashiftrt_r4_31
65 #endif /* __ELF__ */
66
67
68 NENTRY(__ashiftrt_r4_31)
69 shll r4
70 rts
71 subc r4, r4
72
73 ALTENTRY(__ashiftrt_r4_30)
74 shar r4
75
76 ALTENTRY(__ashiftrt_r4_29)
77 shar r4
78
79 ALTENTRY(__ashiftrt_r4_28)
80 shar r4
81
82 ALTENTRY(__ashiftrt_r4_27)
83 shar r4
84
85 ALTENTRY(__ashiftrt_r4_26)
86 shar r4
87
88 ALTENTRY(__ashiftrt_r4_25)
89 shar r4
90
91 ALTENTRY(__ashiftrt_r4_24)
92 shlr16 r4
93 shlr8 r4
94 rts
95 exts.b r4, r4
96
97 ALTENTRY(__ashiftrt_r4_23)
98 shar r4
99
100 ALTENTRY(__ashiftrt_r4_22)
101 shar r4
102
103 ALTENTRY(__ashiftrt_r4_21)
104 shar r4
105
106 ALTENTRY(__ashiftrt_r4_20)
107 shar r4
108
109 ALTENTRY(__ashiftrt_r4_19)
110 shar r4
111
112 ALTENTRY(__ashiftrt_r4_18)
113 shar r4
114
115 ALTENTRY(__ashiftrt_r4_17)
116 shar r4
117
118 ALTENTRY(__ashiftrt_r4_16)
119 shlr16 r4
120 rts
121 exts.w r4, r4
122
123 ALTENTRY(__ashiftrt_r4_15)
124 swap.w r4, r4
125 cmp/pz r4
126 bf/s 1f
127 exts.w r4, r4
128 rts
129 shll r4
130 1:
131 sett
132 rts
133 rotcl r4
134
135 ALTENTRY(__ashiftrt_r4_14)
136 shar r4
137
138 ALTENTRY(__ashiftrt_r4_13)
139 shar r4
140
141 ALTENTRY(__ashiftrt_r4_12)
142 shar r4
143
144 ALTENTRY(__ashiftrt_r4_11)
145 shar r4
146
147 ALTENTRY(__ashiftrt_r4_10)
148 shar r4
149
150 ALTENTRY(__ashiftrt_r4_9)
151 shar r4
152
153 ALTENTRY(__ashiftrt_r4_8)
154 shar r4
155
156 ALTENTRY(__ashiftrt_r4_7)
157 shar r4
158
159 ALTENTRY(__ashiftrt_r4_6)
160 shar r4
161
162 ALTENTRY(__ashiftrt_r4_5)
163 shar r4
164
165 ALTENTRY(__ashiftrt_r4_4)
166 shar r4
167
168 ALTENTRY(__ashiftrt_r4_3)
169 shar r4
170
171 ALTENTRY(__ashiftrt_r4_2)
172 shar r4
173
174 ALTENTRY(__ashiftrt_r4_1)
175 rts
176 shar r4
177
178 ALTENTRY(__ashiftrt_r4_0)
179 rts
180 nop
181