[CRYPTO] api: Remove deprecated interface
[pv_ops_mirror.git] / arch / m32r / lib / ashxdi3.S
blob107594b65d58315059fd86f0cfe02c284cb6fc95
1 /*
2  * linux/arch/m32r/lib/ashxdi3.S
3  *
4  * Copyright (C) 2001,2002  Hiroyuki Kondo, and Hirokazu Takata
5  *
6  */
7 /* $Id$ */
11 ;      input   (r0,r1)  src
12 ;      input    r2      shift val
13 ;               r3      scratch
14 ;      output  (r0,r1)
17 #ifdef CONFIG_ISA_DUAL_ISSUE
19 #ifndef __LITTLE_ENDIAN__
21         .text
22         .align  4
23         .globl __ashrdi3
24 __ashrdi3:
25         cmpz    r2                  ||  ldi     r3, #32
26         jc      r14                 ||  cmpu    r2, r3
27         bc      1f
28     ;   case 32 =< shift
29         mv      r1, r0              ||  srai    r0, #31
30         addi    r2, #-32
31         sra     r1, r2
32         jmp     r14
33         .fillinsn
34 1:  ;   case shift <32
35         mv      r3, r0              ||  srl     r1, r2
36         sra     r0, r2              ||  neg     r2, r2
37         sll     r3, r2
38         or      r1, r3              ||  jmp     r14
40         .align  4
41         .globl __ashldi3
42         .globl __lshldi3
43 __ashldi3:
44 __lshldi3:
45         cmpz    r2                  ||  ldi     r3, #32
46         jc      r14                 ||  cmpu    r2, r3
47         bc      1f
48     ;   case 32 =< shift
49         mv      r0, r1              ||  addi    r2, #-32
50         sll     r0, r2              ||  ldi     r1, #0
51         jmp     r14
52         .fillinsn
53 1:  ;   case shift <32
54         mv      r3, r1              ||  sll     r0, r2
55         sll     r1, r2              ||  neg     r2, r2
56         srl     r3, r2
57         or      r0, r3              ||  jmp     r14
59         .align  4
60         .globl __lshrdi3
61 __lshrdi3:
62         cmpz    r2                  ||  ldi     r3, #32
63         jc      r14                 ||  cmpu    r2, r3
64         bc      1f
65     ;   case 32 =< shift
66         mv      r1, r0              ||  addi    r2, #-32
67         ldi     r0, #0              ||  srl     r1, r2
68         jmp     r14
69         .fillinsn
70 1:  ;   case shift <32
71         mv      r3, r0              ||  srl     r1, r2
72         srl     r0, r2              ||  neg     r2, r2
73         sll     r3, r2
74         or      r1, r3              ||  jmp     r14
76 #else /* LITTLE_ENDIAN */
78         .text
79         .align  4
80         .globl __ashrdi3
81 __ashrdi3:
82         cmpz    r2                  ||  ldi     r3, #32
83         jc      r14                 ||  cmpu    r2, r3
84         bc      1f
85     ;   case 32 =< shift
86         mv      r0, r1              ||  srai    r1, #31
87         addi    r2, #-32
88         sra     r0, r2
89         jmp     r14
90         .fillinsn
91 1:  ;   case shift <32
92         mv      r3, r1              ||  srl     r0, r2
93         sra     r1, r2              ||  neg     r2, r2
94         sll     r3, r2
95         or      r0, r3              ||  jmp     r14
97         .align  4
98         .globl __ashldi3
99         .globl __lshldi3
100 __ashldi3:
101 __lshldi3:
102         cmpz    r2                  ||  ldi     r3, #32
103         jc      r14                 ||  cmpu    r2, r3
104         bc      1f
105     ;   case 32 =< shift
106         mv      r1, r0              ||  addi    r2, #-32
107         sll     r1, r2              ||  ldi     r0, #0
108         jmp     r14
109         .fillinsn
110 1:  ;   case shift <32
111         mv      r3, r0              ||  sll     r1, r2
112         sll     r0, r2              ||  neg     r2, r2
113         srl     r3, r2
114         or      r1, r3              ||  jmp     r14
116         .align  4
117         .globl __lshrdi3
118 __lshrdi3:
119         cmpz    r2                  ||  ldi     r3, #32
120         jc      r14                 ||  cmpu    r2, r3
121         bc      1f
122     ;   case 32 =< shift
123         mv      r0, r1              ||  addi    r2, #-32
124         ldi     r1, #0              ||  srl     r0, r2
125         jmp     r14
126         .fillinsn
127 1:  ;   case shift <32
128         mv      r3, r1              ||  srl     r0, r2
129         srl     r1, r2              ||  neg     r2, r2
130         sll     r3, r2
131         or      r0, r3              ||  jmp     r14
133 #endif
135 #else /* not CONFIG_ISA_DUAL_ISSUE */
137 #ifndef __LITTLE_ENDIAN__
139         .text
140         .align  4
141         .globl __ashrdi3
142 __ashrdi3:
143         beqz    r2, 2f
144         cmpui   r2, #32
145         bc      1f
146     ;   case 32 =< shift
147         mv      r1, r0
148         srai    r0, #31
149         addi    r2, #-32
150         sra     r1, r2
151         jmp     r14
152         .fillinsn
153 1:  ;   case shift <32
154         mv      r3, r0
155         srl     r1, r2
156         sra     r0, r2
157         neg     r2, r2
158         sll     r3, r2
159         or      r1, r3
160         .fillinsn
162         jmp     r14
164         .align  4
165         .globl __ashldi3
166         .globl __lshldi3
167 __ashldi3:
168 __lshldi3:
169         beqz    r2, 2f
170         cmpui   r2, #32
171         bc      1f
172     ;   case 32 =< shift
173         mv      r0, r1
174         addi    r2, #-32
175         sll     r0, r2
176         ldi     r1, #0
177         jmp     r14
178         .fillinsn
179 1:  ;   case shift <32
180         mv      r3, r1
181         sll     r0, r2
182         sll     r1, r2
183         neg     r2, r2
184         srl     r3, r2
185         or      r0, r3
186         .fillinsn
188         jmp     r14
190         .align  4
191         .globl __lshrdi3
192 __lshrdi3:
193         beqz    r2, 2f
194         cmpui   r2, #32
195         bc      1f
196     ;   case 32 =< shift
197         mv      r1, r0
198         ldi     r0, #0
199         addi    r2, #-32
200         srl     r1, r2
201         jmp     r14
202         .fillinsn
203 1:  ;   case shift <32
204         mv      r3, r0
205         srl     r1, r2
206         srl     r0, r2
207         neg     r2, r2
208         sll     r3, r2
209         or      r1, r3
210         .fillinsn
212         jmp     r14
214 #else
216         .text
217         .align  4
218         .globl __ashrdi3
219 __ashrdi3:
220         beqz    r2, 2f
221         cmpui   r2, #32
222         bc      1f
223     ;   case 32 =< shift
224         mv      r0, r1
225         srai    r1, #31
226         addi    r2, #-32
227         sra     r0, r2
228         jmp     r14
229         .fillinsn
230 1:  ;   case shift <32
231         mv      r3, r1
232         srl     r0, r2
233         sra     r1, r2
234         neg     r2, r2
235         sll     r3, r2
236         or      r0, r3
237         .fillinsn
239         jmp     r14
241         .align  4
242         .globl __ashldi3
243         .globl __lshldi3
244 __ashldi3:
245 __lshldi3:
246         beqz    r2, 2f
247         cmpui   r2, #32
248         bc      1f
249     ;   case 32 =< shift
250         mv      r1, r0
251         addi    r2, #-32
252         sll     r1, r2
253         ldi     r0, #0
254         jmp     r14
255         .fillinsn
256 1:  ;   case shift <32
257         mv      r3, r0
258         sll     r1, r2
259         sll     r0, r2
260         neg     r2, r2
261         srl     r3, r2
262         or      r1, r3
263         .fillinsn
265         jmp     r14
267         .align  4
268         .globl __lshrdi3
269 __lshrdi3:
270         beqz    r2, 2f
271         cmpui   r2, #32
272         bc      1f
273     ;   case 32 =< shift
274         mv      r0, r1
275         ldi     r1, #0
276         addi    r2, #-32
277         srl     r0, r2
278         jmp     r14
279         .fillinsn
280 1:  ;   case shift <32
281         mv      r3, r1
282         srl     r0, r2
283         srl     r1, r2
284         neg     r2, r2
285         sll     r3, r2
286         or      r0, r3
287         .fillinsn
289         jmp     r14
291 #endif
293 #endif /* not CONFIG_ISA_DUAL_ISSUE */
295         .end