Remove building with NOCRYPTO option
[minix.git] / crypto / external / bsd / openssl / lib / libcrypto / arch / sparc / sha1-sparcv9a.S
blob8b77f4bd7420257c0794e96b6dee06e0d7f6a375
1 .section        ".text",#alloc,#execinstr
3 .align  64
4 vis_const:
5 .long   0x5a827999,0x5a827999   ! K_00_19
6 .long   0x6ed9eba1,0x6ed9eba1   ! K_20_39
7 .long   0x8f1bbcdc,0x8f1bbcdc   ! K_40_59
8 .long   0xca62c1d6,0xca62c1d6   ! K_60_79
9 .long   0x00000100,0x00000100
10 .align  64
11 .type   vis_const,#object
12 .size   vis_const,(.-vis_const)
14 .globl  sha1_block_data_order
15 sha1_block_data_order:
16         save    %sp,-112,%sp
17         add     %fp,0-256,%g1
19 1:      call    .+8
20         add     %o7,vis_const-1b,%i3
22         ldd     [%i3+0],%f34
23         ldd     [%i3+8],%f36
24         ldd     [%i3+16],%f38
25         ldd     [%i3+24],%f40
26         ldd     [%i3+32],%f32
28         ld      [%i0+0],%o0
29         and     %g1,-256,%g1
30         ld      [%i0+4],%o1
31         sub     %g1,0+112,%sp
32         ld      [%i0+8],%o2
33         and     %i1,7,%g4
34         ld      [%i0+12],%o3
35         and     %i1,-8,%i1
36         ld      [%i0+16],%o4
38         ! X[16] is maintained in FP register bank
39         .word   0x81b00304 !alignaddr   %g0,%g4,%g0
40         ldd             [%i1+0],%f0
41         sub             %i1,-64,%o5
42         ldd             [%i1+8],%f2
43         and             %o5,-64,%o5
44         ldd             [%i1+16],%f4
45         and             %o5,255,%o5
46         ldd             [%i1+24],%f6
47         add             %g1,%o5,%o5
48         ldd             [%i1+32],%f8
49         ldd             [%i1+40],%f10
50         ldd             [%i1+48],%f12
51         brz,pt          %g4,.Laligned
52         ldd             [%i1+56],%f14
54         ldd             [%i1+64],%f16
55         .word   0x81b00902 !faligndata  %f0,%f2,%f0
56         .word   0x85b08904 !faligndata  %f2,%f4,%f2
57         .word   0x89b10906 !faligndata  %f4,%f6,%f4
58         .word   0x8db18908 !faligndata  %f6,%f8,%f6
59         .word   0x91b2090a !faligndata  %f8,%f10,%f8
60         .word   0x95b2890c !faligndata  %f10,%f12,%f10
61         .word   0x99b3090e !faligndata  %f12,%f14,%f12
62         .word   0x9db38910 !faligndata  %f14,%f16,%f14
64 .Laligned:
65         mov             5,%i3
66         dec             1,%i2
67         .word   0x81b0031b !alignaddr   %g0,%i3,%g0
68         .word   0xa1b0ca40 !fpadd32     %f34,%f0,%f16
69         .word   0xa5b0ca42 !fpadd32     %f34,%f2,%f18
70         .word   0xa9b0ca44 !fpadd32     %f34,%f4,%f20
71         .word   0xadb0ca46 !fpadd32     %f34,%f6,%f22
72         .word   0xb1b0ca48 !fpadd32     %f34,%f8,%f24
73         .word   0xb5b0ca4a !fpadd32     %f34,%f10,%f26
74         .word   0xb9b0ca4c !fpadd32     %f34,%f12,%f28
75         .word   0xbdb0ca4e !fpadd32     %f34,%f14,%f30
76         std             %f16,[%o5+0]
77         mov             %o0,%l0
78         std             %f18,[%o5+8]
79         mov             %o1,%l1
80         std             %f20,[%o5+16]
81         mov             %o2,%l2
82         std             %f22,[%o5+24]
83         mov             %o3,%l3
84         std             %f24,[%o5+32]
85         mov             %o4,%l4
86         std             %f26,[%o5+40]
87         .word   0x81b34da0 !fxors       %f13,%f0,%f0
88         std             %f28,[%o5+48]
89         ba              .Loop
90         std             %f30,[%o5+56]
91 .align  32
92 .Loop:
93         sll             %l0,5,%i3                       !! 0
94         and             %l2,%l1,%g5
95         ld              [%o5+0],%o7
96          .word  0x83b38da1 !fxors       %f14,%f1,%f1! 0/ 0/ 0:X[1]^=X[14]
97         srl             %l0,27,%i4
98         add             %i3,%l4,%l4
99          .word  0xa5b08d88 !fxor        %f2,%f8,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
100         sll             %l1,30,%i5
101         add             %i4,%l4,%l4
102         andn            %l3,%l1,%i4
103         add             %o7,%l4,%l4
104          .word  0x81b48d80 !fxor        %f18,%f0,%f0            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
105         srl             %l1,2,%l1
106         or              %i4,%g5,%i4
107         or              %i5,%l1,%l1
108         add             %i4,%l4,%l4
109          .word  0xa5b00900 !faligndata  %f0,%f0,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
110         sll             %l4,5,%i3                       !! 1
111         and             %l1,%l0,%g5
112         ld              [%o5+4],%o7
113          .word  0x81b00a40 !fpadd32     %f0,%f0,%f0             ! 4/ 8/ 6:X[0,1]<<=1
114         srl             %l4,27,%i4
115         add             %i3,%l3,%l3
116          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
117         sll             %l0,30,%i5
118         add             %i4,%l3,%l3
119          .word  0xa9b0ca4e !fpadd32     %f34,%f14,%f20                  !
120         andn            %l2,%l0,%i4
121         add             %o7,%l3,%l3
122          .word  0x85b3cda2 !fxors       %f15,%f2,%f2    !-1/-1/-1:X[0]^=X[13]
123         srl             %l0,2,%l0
124         or              %i4,%g5,%i4
125          .word  0x81b48d80 !fxor        %f18,%f0,%f0            ! 8/14/10:X[0,1]|=Tmp
126         or              %i5,%l0,%l0
127         add             %i4,%l3,%l3
128         sll             %l3,5,%i3                       !! 2
129         and             %l0,%l4,%g5
130         ld              [%o5+8],%o7
131          .word  0x87b00da3 !fxors       %f0,%f3,%f3! 0/ 0/ 0:X[1]^=X[14]
132         srl             %l3,27,%i4
133         add             %i3,%l2,%l2
134          .word  0xa5b10d8a !fxor        %f4,%f10,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
135         sll             %l4,30,%i5
136         add             %i4,%l2,%l2
137         andn            %l1,%l4,%i4
138         add             %o7,%l2,%l2
139          .word  0x85b48d82 !fxor        %f18,%f2,%f2            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
140         srl             %l4,2,%l4
141         or              %i4,%g5,%i4
142         or              %i5,%l4,%l4
143         add             %i4,%l2,%l2
144          .word  0xa5b08902 !faligndata  %f2,%f2,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
145         sll             %l2,5,%i3                       !! 3
146         and             %l4,%l3,%g5
147         ld              [%o5+12],%o7
148          .word  0x85b08a42 !fpadd32     %f2,%f2,%f2             ! 4/ 8/ 6:X[0,1]<<=1
149         srl             %l2,27,%i4
150         add             %i3,%l1,%l1
151          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
152         sll             %l3,30,%i5
153         add             %i4,%l1,%l1
154          .word  0xa9b0ca40 !fpadd32     %f34,%f0,%f20                   !
155         andn            %l0,%l3,%i4
156         add             %o7,%l1,%l1
157          .word  0x89b04da4 !fxors       %f1,%f4,%f4     !-1/-1/-1:X[0]^=X[13]
158         srl             %l3,2,%l3
159         or              %i4,%g5,%i4
160          .word  0x85b48d82 !fxor        %f18,%f2,%f2            ! 8/14/10:X[0,1]|=Tmp
161         or              %i5,%l3,%l3
162         add             %i4,%l1,%l1
163          std            %f20,[%o5+0]            !
164         sll             %l1,5,%i3                       !! 4
165         and             %l3,%l2,%g5
166         ld              [%o5+16],%o7
167          .word  0x8bb08da5 !fxors       %f2,%f5,%f5! 0/ 0/ 0:X[1]^=X[14]
168         srl             %l1,27,%i4
169         add             %i3,%l0,%l0
170          .word  0xa5b18d8c !fxor        %f6,%f12,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
171         sll             %l2,30,%i5
172         add             %i4,%l0,%l0
173         andn            %l4,%l2,%i4
174         add             %o7,%l0,%l0
175          .word  0x89b48d84 !fxor        %f18,%f4,%f4            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
176         srl             %l2,2,%l2
177         or              %i4,%g5,%i4
178         or              %i5,%l2,%l2
179         add             %i4,%l0,%l0
180          .word  0xa5b10904 !faligndata  %f4,%f4,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
181         sll             %l0,5,%i3                       !! 5
182         and             %l2,%l1,%g5
183         ld              [%o5+20],%o7
184          .word  0x89b10a44 !fpadd32     %f4,%f4,%f4             ! 4/ 8/ 6:X[0,1]<<=1
185         srl             %l0,27,%i4
186         add             %i3,%l4,%l4
187          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
188         sll             %l1,30,%i5
189         add             %i4,%l4,%l4
190          .word  0xa9b0ca42 !fpadd32     %f34,%f2,%f20                   !
191         andn            %l3,%l1,%i4
192         add             %o7,%l4,%l4
193          .word  0x8db0cda6 !fxors       %f3,%f6,%f6     !-1/-1/-1:X[0]^=X[13]
194         srl             %l1,2,%l1
195         or              %i4,%g5,%i4
196          .word  0x89b48d84 !fxor        %f18,%f4,%f4            ! 8/14/10:X[0,1]|=Tmp
197         or              %i5,%l1,%l1
198         add             %i4,%l4,%l4
199          std            %f20,[%o5+8]            !
200         sll             %l4,5,%i3                       !! 6
201         and             %l1,%l0,%g5
202         ld              [%o5+24],%o7
203          .word  0x8fb10da7 !fxors       %f4,%f7,%f7! 0/ 0/ 0:X[1]^=X[14]
204         srl             %l4,27,%i4
205         add             %i3,%l3,%l3
206          .word  0xa5b20d8e !fxor        %f8,%f14,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
207         sll             %l0,30,%i5
208         add             %i4,%l3,%l3
209         andn            %l2,%l0,%i4
210         add             %o7,%l3,%l3
211          .word  0x8db48d86 !fxor        %f18,%f6,%f6            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
212         srl             %l0,2,%l0
213         or              %i4,%g5,%i4
214         or              %i5,%l0,%l0
215         add             %i4,%l3,%l3
216          .word  0xa5b18906 !faligndata  %f6,%f6,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
217         sll             %l3,5,%i3                       !! 7
218         and             %l0,%l4,%g5
219         ld              [%o5+28],%o7
220          .word  0x8db18a46 !fpadd32     %f6,%f6,%f6             ! 4/ 8/ 6:X[0,1]<<=1
221         srl             %l3,27,%i4
222         add             %i3,%l2,%l2
223          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
224         sll             %l4,30,%i5
225         add             %i4,%l2,%l2
226          .word  0xa9b14a44 !fpadd32     %f36,%f4,%f20                   !
227         andn            %l1,%l4,%i4
228         add             %o7,%l2,%l2
229          .word  0x91b14da8 !fxors       %f5,%f8,%f8     !-1/-1/-1:X[0]^=X[13]
230         srl             %l4,2,%l4
231         or              %i4,%g5,%i4
232          .word  0x8db48d86 !fxor        %f18,%f6,%f6            ! 8/14/10:X[0,1]|=Tmp
233         or              %i5,%l4,%l4
234         add             %i4,%l2,%l2
235          std            %f20,[%o5+16]           !
236         sll             %l2,5,%i3                       !! 8
237         and             %l4,%l3,%g5
238         ld              [%o5+32],%o7
239          .word  0x93b18da9 !fxors       %f6,%f9,%f9! 0/ 0/ 0:X[1]^=X[14]
240         srl             %l2,27,%i4
241         add             %i3,%l1,%l1
242          .word  0xa5b28d80 !fxor        %f10,%f0,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
243         sll             %l3,30,%i5
244         add             %i4,%l1,%l1
245         andn            %l0,%l3,%i4
246         add             %o7,%l1,%l1
247          .word  0x91b48d88 !fxor        %f18,%f8,%f8            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
248         srl             %l3,2,%l3
249         or              %i4,%g5,%i4
250         or              %i5,%l3,%l3
251         add             %i4,%l1,%l1
252          .word  0xa5b20908 !faligndata  %f8,%f8,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
253         sll             %l1,5,%i3                       !! 9
254         and             %l3,%l2,%g5
255         ld              [%o5+36],%o7
256          .word  0x91b20a48 !fpadd32     %f8,%f8,%f8             ! 4/ 8/ 6:X[0,1]<<=1
257         srl             %l1,27,%i4
258         add             %i3,%l0,%l0
259          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
260         sll             %l2,30,%i5
261         add             %i4,%l0,%l0
262          .word  0xa9b14a46 !fpadd32     %f36,%f6,%f20                   !
263         andn            %l4,%l2,%i4
264         add             %o7,%l0,%l0
265          .word  0x95b1cdaa !fxors       %f7,%f10,%f10   !-1/-1/-1:X[0]^=X[13]
266         srl             %l2,2,%l2
267         or              %i4,%g5,%i4
268          .word  0x91b48d88 !fxor        %f18,%f8,%f8            ! 8/14/10:X[0,1]|=Tmp
269         or              %i5,%l2,%l2
270         add             %i4,%l0,%l0
271          std            %f20,[%o5+24]           !
272         sll             %l0,5,%i3                       !! 10
273         and             %l2,%l1,%g5
274         ld              [%o5+40],%o7
275          .word  0x97b20dab !fxors       %f8,%f11,%f11! 0/ 0/ 0:X[1]^=X[14]
276         srl             %l0,27,%i4
277         add             %i3,%l4,%l4
278          .word  0xa5b30d82 !fxor        %f12,%f2,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
279         sll             %l1,30,%i5
280         add             %i4,%l4,%l4
281         andn            %l3,%l1,%i4
282         add             %o7,%l4,%l4
283          .word  0x95b48d8a !fxor        %f18,%f10,%f10          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
284         srl             %l1,2,%l1
285         or              %i4,%g5,%i4
286         or              %i5,%l1,%l1
287         add             %i4,%l4,%l4
288          .word  0xa5b2890a !faligndata  %f10,%f10,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
289         sll             %l4,5,%i3                       !! 11
290         and             %l1,%l0,%g5
291         ld              [%o5+44],%o7
292          .word  0x95b28a4a !fpadd32     %f10,%f10,%f10          ! 4/ 8/ 6:X[0,1]<<=1
293         srl             %l4,27,%i4
294         add             %i3,%l3,%l3
295          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
296         sll             %l0,30,%i5
297         add             %i4,%l3,%l3
298          .word  0xa9b14a48 !fpadd32     %f36,%f8,%f20                   !
299         andn            %l2,%l0,%i4
300         add             %o7,%l3,%l3
301          .word  0x99b24dac !fxors       %f9,%f12,%f12   !-1/-1/-1:X[0]^=X[13]
302         srl             %l0,2,%l0
303         or              %i4,%g5,%i4
304          .word  0x95b48d8a !fxor        %f18,%f10,%f10          ! 8/14/10:X[0,1]|=Tmp
305         or              %i5,%l0,%l0
306         add             %i4,%l3,%l3
307          std            %f20,[%o5+32]           !
308         sll             %l3,5,%i3                       !! 12
309         and             %l0,%l4,%g5
310         ld              [%o5+48],%o7
311          .word  0x9bb28dad !fxors       %f10,%f13,%f13! 0/ 0/ 0:X[1]^=X[14]
312         srl             %l3,27,%i4
313         add             %i3,%l2,%l2
314          .word  0xa5b38d84 !fxor        %f14,%f4,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
315         sll             %l4,30,%i5
316         add             %i4,%l2,%l2
317         andn            %l1,%l4,%i4
318         add             %o7,%l2,%l2
319          .word  0x99b48d8c !fxor        %f18,%f12,%f12          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
320         srl             %l4,2,%l4
321         or              %i4,%g5,%i4
322         or              %i5,%l4,%l4
323         add             %i4,%l2,%l2
324          .word  0xa5b3090c !faligndata  %f12,%f12,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
325         sll             %l2,5,%i3                       !! 13
326         and             %l4,%l3,%g5
327         ld              [%o5+52],%o7
328          .word  0x99b30a4c !fpadd32     %f12,%f12,%f12          ! 4/ 8/ 6:X[0,1]<<=1
329         srl             %l2,27,%i4
330         add             %i3,%l1,%l1
331          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
332         sll             %l3,30,%i5
333         add             %i4,%l1,%l1
334          .word  0xa9b14a4a !fpadd32     %f36,%f10,%f20                  !
335         andn            %l0,%l3,%i4
336         add             %o7,%l1,%l1
337          .word  0x9db2cdae !fxors       %f11,%f14,%f14  !-1/-1/-1:X[0]^=X[13]
338         srl             %l3,2,%l3
339         or              %i4,%g5,%i4
340          .word  0x99b48d8c !fxor        %f18,%f12,%f12          ! 8/14/10:X[0,1]|=Tmp
341         or              %i5,%l3,%l3
342         add             %i4,%l1,%l1
343          std            %f20,[%o5+40]           !
344         sll             %l1,5,%i3                       !! 14
345         and             %l3,%l2,%g5
346         ld              [%o5+56],%o7
347          .word  0x9fb30daf !fxors       %f12,%f15,%f15! 0/ 0/ 0:X[1]^=X[14]
348         srl             %l1,27,%i4
349         add             %i3,%l0,%l0
350          .word  0xa5b00d86 !fxor        %f0,%f6,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
351         sll             %l2,30,%i5
352         add             %i4,%l0,%l0
353         andn            %l4,%l2,%i4
354         add             %o7,%l0,%l0
355          .word  0x9db48d8e !fxor        %f18,%f14,%f14          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
356         srl             %l2,2,%l2
357         or              %i4,%g5,%i4
358         or              %i5,%l2,%l2
359         add             %i4,%l0,%l0
360          .word  0xa5b3890e !faligndata  %f14,%f14,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
361         sll             %l0,5,%i3                       !! 15
362         and             %l2,%l1,%g5
363         ld              [%o5+60],%o7
364          .word  0x9db38a4e !fpadd32     %f14,%f14,%f14          ! 4/ 8/ 6:X[0,1]<<=1
365         srl             %l0,27,%i4
366         add             %i3,%l4,%l4
367          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
368         sll             %l1,30,%i5
369         add             %i4,%l4,%l4
370          .word  0xa9b14a4c !fpadd32     %f36,%f12,%f20                  !
371         andn            %l3,%l1,%i4
372         add             %o7,%l4,%l4
373          .word  0x81b34da0 !fxors       %f13,%f0,%f0    !-1/-1/-1:X[0]^=X[13]
374         srl             %l1,2,%l1
375         or              %i4,%g5,%i4
376          .word  0x9db48d8e !fxor        %f18,%f14,%f14          ! 8/14/10:X[0,1]|=Tmp
377         or              %i5,%l1,%l1
378         add             %i4,%l4,%l4
379          std            %f20,[%o5+48]           !
380         sll             %l4,5,%i3                       !! 16
381         and             %l1,%l0,%g5
382         ld              [%o5+0],%o7
383          .word  0x83b38da1 !fxors       %f14,%f1,%f1! 0/ 0/ 0:X[1]^=X[14]
384         srl             %l4,27,%i4
385         add             %i3,%l3,%l3
386          .word  0xa5b08d88 !fxor        %f2,%f8,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
387         sll             %l0,30,%i5
388         add             %i4,%l3,%l3
389         andn            %l2,%l0,%i4
390         add             %o7,%l3,%l3
391          .word  0x81b48d80 !fxor        %f18,%f0,%f0            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
392         srl             %l0,2,%l0
393         or              %i4,%g5,%i4
394         or              %i5,%l0,%l0
395         add             %i4,%l3,%l3
396          .word  0xa5b00900 !faligndata  %f0,%f0,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
397         sll             %l3,5,%i3                       !! 17
398         and             %l0,%l4,%g5
399         ld              [%o5+4],%o7
400          .word  0x81b00a40 !fpadd32     %f0,%f0,%f0             ! 4/ 8/ 6:X[0,1]<<=1
401         srl             %l3,27,%i4
402         add             %i3,%l2,%l2
403          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
404         sll             %l4,30,%i5
405         add             %i4,%l2,%l2
406          .word  0xa9b14a4e !fpadd32     %f36,%f14,%f20                  !
407         andn            %l1,%l4,%i4
408         add             %o7,%l2,%l2
409          .word  0x85b3cda2 !fxors       %f15,%f2,%f2    !-1/-1/-1:X[0]^=X[13]
410         srl             %l4,2,%l4
411         or              %i4,%g5,%i4
412          .word  0x81b48d80 !fxor        %f18,%f0,%f0            ! 8/14/10:X[0,1]|=Tmp
413         or              %i5,%l4,%l4
414         add             %i4,%l2,%l2
415          std            %f20,[%o5+56]           !
416         sll             %l2,5,%i3                       !! 18
417         and             %l4,%l3,%g5
418         ld              [%o5+8],%o7
419          .word  0x87b00da3 !fxors       %f0,%f3,%f3! 0/ 0/ 0:X[1]^=X[14]
420         srl             %l2,27,%i4
421         add             %i3,%l1,%l1
422          .word  0xa5b10d8a !fxor        %f4,%f10,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
423         sll             %l3,30,%i5
424         add             %i4,%l1,%l1
425         andn            %l0,%l3,%i4
426         add             %o7,%l1,%l1
427          .word  0x85b48d82 !fxor        %f18,%f2,%f2            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
428         srl             %l3,2,%l3
429         or              %i4,%g5,%i4
430         or              %i5,%l3,%l3
431         add             %i4,%l1,%l1
432          .word  0xa5b08902 !faligndata  %f2,%f2,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
433         sll             %l1,5,%i3                       !! 19
434         and             %l3,%l2,%g5
435         ld              [%o5+12],%o7
436          .word  0x85b08a42 !fpadd32     %f2,%f2,%f2             ! 4/ 8/ 6:X[0,1]<<=1
437         srl             %l1,27,%i4
438         add             %i3,%l0,%l0
439          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
440         sll             %l2,30,%i5
441         add             %i4,%l0,%l0
442          .word  0xa9b14a40 !fpadd32     %f36,%f0,%f20                   !
443         andn            %l4,%l2,%i4
444         add             %o7,%l0,%l0
445          .word  0x89b04da4 !fxors       %f1,%f4,%f4     !-1/-1/-1:X[0]^=X[13]
446         srl             %l2,2,%l2
447         or              %i4,%g5,%i4
448          .word  0x85b48d82 !fxor        %f18,%f2,%f2            ! 8/14/10:X[0,1]|=Tmp
449         or              %i5,%l2,%l2
450         add             %i4,%l0,%l0
451          std            %f20,[%o5+0]            !
452         sll             %l0,5,%i3                       !! 20
453         ld              [%o5+16],%o7
454          .word  0x8bb08da5 !fxors       %f2,%f5,%f5! 0/ 0/ 0:X[1]^=X[14]
455         srl             %l0,27,%i4
456         add             %i3,%l4,%l4
457          .word  0xa5b18d8c !fxor        %f6,%f12,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
458         xor             %l2,%l1,%i3
459         add             %i4,%l4,%l4
460         sll             %l1,30,%i5
461         xor             %l3,%i3,%i4
462          .word  0x89b48d84 !fxor        %f18,%f4,%f4            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
463         srl             %l1,2,%l1
464         add             %i4,%l4,%l4
465         or              %i5,%l1,%l1
466         add             %o7,%l4,%l4
467          .word  0xa5b10904 !faligndata  %f4,%f4,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
468         sll             %l4,5,%i3                       !! 21
469         ld              [%o5+20],%o7
470          .word  0x89b10a44 !fpadd32     %f4,%f4,%f4             ! 4/ 8/ 6:X[0,1]<<=1
471         srl             %l4,27,%i4
472         add             %i3,%l3,%l3
473          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
474         xor             %l1,%l0,%i3
475         add             %i4,%l3,%l3
476          .word  0xa9b14a42 !fpadd32     %f36,%f2,%f20                   !
477         sll             %l0,30,%i5
478         xor             %l2,%i3,%i4
479          .word  0x8db0cda6 !fxors       %f3,%f6,%f6     !-1/-1/-1:X[0]^=X[13]
480         srl             %l0,2,%l0
481         add             %i4,%l3,%l3
482          .word  0x89b48d84 !fxor        %f18,%f4,%f4            ! 8/14/10:X[0,1]|=Tmp
483         or              %i5,%l0,%l0
484         add             %o7,%l3,%l3
485          std            %f20,[%o5+8]            !
486         sll             %l3,5,%i3                       !! 22
487         ld              [%o5+24],%o7
488          .word  0x8fb10da7 !fxors       %f4,%f7,%f7! 0/ 0/ 0:X[1]^=X[14]
489         srl             %l3,27,%i4
490         add             %i3,%l2,%l2
491          .word  0xa5b20d8e !fxor        %f8,%f14,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
492         xor             %l0,%l4,%i3
493         add             %i4,%l2,%l2
494         sll             %l4,30,%i5
495         xor             %l1,%i3,%i4
496          .word  0x8db48d86 !fxor        %f18,%f6,%f6            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
497         srl             %l4,2,%l4
498         add             %i4,%l2,%l2
499         or              %i5,%l4,%l4
500         add             %o7,%l2,%l2
501          .word  0xa5b18906 !faligndata  %f6,%f6,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
502         sll             %l2,5,%i3                       !! 23
503         ld              [%o5+28],%o7
504          .word  0x8db18a46 !fpadd32     %f6,%f6,%f6             ! 4/ 8/ 6:X[0,1]<<=1
505         srl             %l2,27,%i4
506         add             %i3,%l1,%l1
507          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
508         xor             %l4,%l3,%i3
509         add             %i4,%l1,%l1
510          .word  0xa9b14a44 !fpadd32     %f36,%f4,%f20                   !
511         sll             %l3,30,%i5
512         xor             %l0,%i3,%i4
513          .word  0x91b14da8 !fxors       %f5,%f8,%f8     !-1/-1/-1:X[0]^=X[13]
514         srl             %l3,2,%l3
515         add             %i4,%l1,%l1
516          .word  0x8db48d86 !fxor        %f18,%f6,%f6            ! 8/14/10:X[0,1]|=Tmp
517         or              %i5,%l3,%l3
518         add             %o7,%l1,%l1
519          std            %f20,[%o5+16]           !
520         sll             %l1,5,%i3                       !! 24
521         ld              [%o5+32],%o7
522          .word  0x93b18da9 !fxors       %f6,%f9,%f9! 0/ 0/ 0:X[1]^=X[14]
523         srl             %l1,27,%i4
524         add             %i3,%l0,%l0
525          .word  0xa5b28d80 !fxor        %f10,%f0,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
526         xor             %l3,%l2,%i3
527         add             %i4,%l0,%l0
528         sll             %l2,30,%i5
529         xor             %l4,%i3,%i4
530          .word  0x91b48d88 !fxor        %f18,%f8,%f8            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
531         srl             %l2,2,%l2
532         add             %i4,%l0,%l0
533         or              %i5,%l2,%l2
534         add             %o7,%l0,%l0
535          .word  0xa5b20908 !faligndata  %f8,%f8,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
536         sll             %l0,5,%i3                       !! 25
537         ld              [%o5+36],%o7
538          .word  0x91b20a48 !fpadd32     %f8,%f8,%f8             ! 4/ 8/ 6:X[0,1]<<=1
539         srl             %l0,27,%i4
540         add             %i3,%l4,%l4
541          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
542         xor             %l2,%l1,%i3
543         add             %i4,%l4,%l4
544          .word  0xa9b14a46 !fpadd32     %f36,%f6,%f20                   !
545         sll             %l1,30,%i5
546         xor             %l3,%i3,%i4
547          .word  0x95b1cdaa !fxors       %f7,%f10,%f10   !-1/-1/-1:X[0]^=X[13]
548         srl             %l1,2,%l1
549         add             %i4,%l4,%l4
550          .word  0x91b48d88 !fxor        %f18,%f8,%f8            ! 8/14/10:X[0,1]|=Tmp
551         or              %i5,%l1,%l1
552         add             %o7,%l4,%l4
553          std            %f20,[%o5+24]           !
554         sll             %l4,5,%i3                       !! 26
555         ld              [%o5+40],%o7
556          .word  0x97b20dab !fxors       %f8,%f11,%f11! 0/ 0/ 0:X[1]^=X[14]
557         srl             %l4,27,%i4
558         add             %i3,%l3,%l3
559          .word  0xa5b30d82 !fxor        %f12,%f2,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
560         xor             %l1,%l0,%i3
561         add             %i4,%l3,%l3
562         sll             %l0,30,%i5
563         xor             %l2,%i3,%i4
564          .word  0x95b48d8a !fxor        %f18,%f10,%f10          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
565         srl             %l0,2,%l0
566         add             %i4,%l3,%l3
567         or              %i5,%l0,%l0
568         add             %o7,%l3,%l3
569          .word  0xa5b2890a !faligndata  %f10,%f10,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
570         sll             %l3,5,%i3                       !! 27
571         ld              [%o5+44],%o7
572          .word  0x95b28a4a !fpadd32     %f10,%f10,%f10          ! 4/ 8/ 6:X[0,1]<<=1
573         srl             %l3,27,%i4
574         add             %i3,%l2,%l2
575          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
576         xor             %l0,%l4,%i3
577         add             %i4,%l2,%l2
578          .word  0xa9b1ca48 !fpadd32     %f38,%f8,%f20                   !
579         sll             %l4,30,%i5
580         xor             %l1,%i3,%i4
581          .word  0x99b24dac !fxors       %f9,%f12,%f12   !-1/-1/-1:X[0]^=X[13]
582         srl             %l4,2,%l4
583         add             %i4,%l2,%l2
584          .word  0x95b48d8a !fxor        %f18,%f10,%f10          ! 8/14/10:X[0,1]|=Tmp
585         or              %i5,%l4,%l4
586         add             %o7,%l2,%l2
587          std            %f20,[%o5+32]           !
588         sll             %l2,5,%i3                       !! 28
589         ld              [%o5+48],%o7
590          .word  0x9bb28dad !fxors       %f10,%f13,%f13! 0/ 0/ 0:X[1]^=X[14]
591         srl             %l2,27,%i4
592         add             %i3,%l1,%l1
593          .word  0xa5b38d84 !fxor        %f14,%f4,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
594         xor             %l4,%l3,%i3
595         add             %i4,%l1,%l1
596         sll             %l3,30,%i5
597         xor             %l0,%i3,%i4
598          .word  0x99b48d8c !fxor        %f18,%f12,%f12          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
599         srl             %l3,2,%l3
600         add             %i4,%l1,%l1
601         or              %i5,%l3,%l3
602         add             %o7,%l1,%l1
603          .word  0xa5b3090c !faligndata  %f12,%f12,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
604         sll             %l1,5,%i3                       !! 29
605         ld              [%o5+52],%o7
606          .word  0x99b30a4c !fpadd32     %f12,%f12,%f12          ! 4/ 8/ 6:X[0,1]<<=1
607         srl             %l1,27,%i4
608         add             %i3,%l0,%l0
609          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
610         xor             %l3,%l2,%i3
611         add             %i4,%l0,%l0
612          .word  0xa9b1ca4a !fpadd32     %f38,%f10,%f20                  !
613         sll             %l2,30,%i5
614         xor             %l4,%i3,%i4
615          .word  0x9db2cdae !fxors       %f11,%f14,%f14  !-1/-1/-1:X[0]^=X[13]
616         srl             %l2,2,%l2
617         add             %i4,%l0,%l0
618          .word  0x99b48d8c !fxor        %f18,%f12,%f12          ! 8/14/10:X[0,1]|=Tmp
619         or              %i5,%l2,%l2
620         add             %o7,%l0,%l0
621          std            %f20,[%o5+40]           !
622         sll             %l0,5,%i3                       !! 30
623         ld              [%o5+56],%o7
624          .word  0x9fb30daf !fxors       %f12,%f15,%f15! 0/ 0/ 0:X[1]^=X[14]
625         srl             %l0,27,%i4
626         add             %i3,%l4,%l4
627          .word  0xa5b00d86 !fxor        %f0,%f6,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
628         xor             %l2,%l1,%i3
629         add             %i4,%l4,%l4
630         sll             %l1,30,%i5
631         xor             %l3,%i3,%i4
632          .word  0x9db48d8e !fxor        %f18,%f14,%f14          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
633         srl             %l1,2,%l1
634         add             %i4,%l4,%l4
635         or              %i5,%l1,%l1
636         add             %o7,%l4,%l4
637          .word  0xa5b3890e !faligndata  %f14,%f14,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
638         sll             %l4,5,%i3                       !! 31
639         ld              [%o5+60],%o7
640          .word  0x9db38a4e !fpadd32     %f14,%f14,%f14          ! 4/ 8/ 6:X[0,1]<<=1
641         srl             %l4,27,%i4
642         add             %i3,%l3,%l3
643          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
644         xor             %l1,%l0,%i3
645         add             %i4,%l3,%l3
646          .word  0xa9b1ca4c !fpadd32     %f38,%f12,%f20                  !
647         sll             %l0,30,%i5
648         xor             %l2,%i3,%i4
649          .word  0x81b34da0 !fxors       %f13,%f0,%f0    !-1/-1/-1:X[0]^=X[13]
650         srl             %l0,2,%l0
651         add             %i4,%l3,%l3
652          .word  0x9db48d8e !fxor        %f18,%f14,%f14          ! 8/14/10:X[0,1]|=Tmp
653         or              %i5,%l0,%l0
654         add             %o7,%l3,%l3
655          std            %f20,[%o5+48]           !
656         sll             %l3,5,%i3                       !! 32
657         ld              [%o5+0],%o7
658          .word  0x83b38da1 !fxors       %f14,%f1,%f1! 0/ 0/ 0:X[1]^=X[14]
659         srl             %l3,27,%i4
660         add             %i3,%l2,%l2
661          .word  0xa5b08d88 !fxor        %f2,%f8,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
662         xor             %l0,%l4,%i3
663         add             %i4,%l2,%l2
664         sll             %l4,30,%i5
665         xor             %l1,%i3,%i4
666          .word  0x81b48d80 !fxor        %f18,%f0,%f0            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
667         srl             %l4,2,%l4
668         add             %i4,%l2,%l2
669         or              %i5,%l4,%l4
670         add             %o7,%l2,%l2
671          .word  0xa5b00900 !faligndata  %f0,%f0,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
672         sll             %l2,5,%i3                       !! 33
673         ld              [%o5+4],%o7
674          .word  0x81b00a40 !fpadd32     %f0,%f0,%f0             ! 4/ 8/ 6:X[0,1]<<=1
675         srl             %l2,27,%i4
676         add             %i3,%l1,%l1
677          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
678         xor             %l4,%l3,%i3
679         add             %i4,%l1,%l1
680          .word  0xa9b1ca4e !fpadd32     %f38,%f14,%f20                  !
681         sll             %l3,30,%i5
682         xor             %l0,%i3,%i4
683          .word  0x85b3cda2 !fxors       %f15,%f2,%f2    !-1/-1/-1:X[0]^=X[13]
684         srl             %l3,2,%l3
685         add             %i4,%l1,%l1
686          .word  0x81b48d80 !fxor        %f18,%f0,%f0            ! 8/14/10:X[0,1]|=Tmp
687         or              %i5,%l3,%l3
688         add             %o7,%l1,%l1
689          std            %f20,[%o5+56]           !
690         sll             %l1,5,%i3                       !! 34
691         ld              [%o5+8],%o7
692          .word  0x87b00da3 !fxors       %f0,%f3,%f3! 0/ 0/ 0:X[1]^=X[14]
693         srl             %l1,27,%i4
694         add             %i3,%l0,%l0
695          .word  0xa5b10d8a !fxor        %f4,%f10,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
696         xor             %l3,%l2,%i3
697         add             %i4,%l0,%l0
698         sll             %l2,30,%i5
699         xor             %l4,%i3,%i4
700          .word  0x85b48d82 !fxor        %f18,%f2,%f2            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
701         srl             %l2,2,%l2
702         add             %i4,%l0,%l0
703         or              %i5,%l2,%l2
704         add             %o7,%l0,%l0
705          .word  0xa5b08902 !faligndata  %f2,%f2,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
706         sll             %l0,5,%i3                       !! 35
707         ld              [%o5+12],%o7
708          .word  0x85b08a42 !fpadd32     %f2,%f2,%f2             ! 4/ 8/ 6:X[0,1]<<=1
709         srl             %l0,27,%i4
710         add             %i3,%l4,%l4
711          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
712         xor             %l2,%l1,%i3
713         add             %i4,%l4,%l4
714          .word  0xa9b1ca40 !fpadd32     %f38,%f0,%f20                   !
715         sll             %l1,30,%i5
716         xor             %l3,%i3,%i4
717          .word  0x89b04da4 !fxors       %f1,%f4,%f4     !-1/-1/-1:X[0]^=X[13]
718         srl             %l1,2,%l1
719         add             %i4,%l4,%l4
720          .word  0x85b48d82 !fxor        %f18,%f2,%f2            ! 8/14/10:X[0,1]|=Tmp
721         or              %i5,%l1,%l1
722         add             %o7,%l4,%l4
723          std            %f20,[%o5+0]            !
724         sll             %l4,5,%i3                       !! 36
725         ld              [%o5+16],%o7
726          .word  0x8bb08da5 !fxors       %f2,%f5,%f5! 0/ 0/ 0:X[1]^=X[14]
727         srl             %l4,27,%i4
728         add             %i3,%l3,%l3
729          .word  0xa5b18d8c !fxor        %f6,%f12,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
730         xor             %l1,%l0,%i3
731         add             %i4,%l3,%l3
732         sll             %l0,30,%i5
733         xor             %l2,%i3,%i4
734          .word  0x89b48d84 !fxor        %f18,%f4,%f4            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
735         srl             %l0,2,%l0
736         add             %i4,%l3,%l3
737         or              %i5,%l0,%l0
738         add             %o7,%l3,%l3
739          .word  0xa5b10904 !faligndata  %f4,%f4,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
740         sll             %l3,5,%i3                       !! 37
741         ld              [%o5+20],%o7
742          .word  0x89b10a44 !fpadd32     %f4,%f4,%f4             ! 4/ 8/ 6:X[0,1]<<=1
743         srl             %l3,27,%i4
744         add             %i3,%l2,%l2
745          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
746         xor             %l0,%l4,%i3
747         add             %i4,%l2,%l2
748          .word  0xa9b1ca42 !fpadd32     %f38,%f2,%f20                   !
749         sll             %l4,30,%i5
750         xor             %l1,%i3,%i4
751          .word  0x8db0cda6 !fxors       %f3,%f6,%f6     !-1/-1/-1:X[0]^=X[13]
752         srl             %l4,2,%l4
753         add             %i4,%l2,%l2
754          .word  0x89b48d84 !fxor        %f18,%f4,%f4            ! 8/14/10:X[0,1]|=Tmp
755         or              %i5,%l4,%l4
756         add             %o7,%l2,%l2
757          std            %f20,[%o5+8]            !
758         sll             %l2,5,%i3                       !! 38
759         ld              [%o5+24],%o7
760          .word  0x8fb10da7 !fxors       %f4,%f7,%f7! 0/ 0/ 0:X[1]^=X[14]
761         srl             %l2,27,%i4
762         add             %i3,%l1,%l1
763          .word  0xa5b20d8e !fxor        %f8,%f14,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
764         xor             %l4,%l3,%i3
765         add             %i4,%l1,%l1
766         sll             %l3,30,%i5
767         xor             %l0,%i3,%i4
768          .word  0x8db48d86 !fxor        %f18,%f6,%f6            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
769         srl             %l3,2,%l3
770         add             %i4,%l1,%l1
771         or              %i5,%l3,%l3
772         add             %o7,%l1,%l1
773          .word  0xa5b18906 !faligndata  %f6,%f6,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
774         sll             %l1,5,%i3                       !! 39
775         ld              [%o5+28],%o7
776          .word  0x8db18a46 !fpadd32     %f6,%f6,%f6             ! 4/ 8/ 6:X[0,1]<<=1
777         srl             %l1,27,%i4
778         add             %i3,%l0,%l0
779          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
780         xor             %l3,%l2,%i3
781         add             %i4,%l0,%l0
782          .word  0xa9b1ca44 !fpadd32     %f38,%f4,%f20                   !
783         sll             %l2,30,%i5
784         xor             %l4,%i3,%i4
785          .word  0x91b14da8 !fxors       %f5,%f8,%f8     !-1/-1/-1:X[0]^=X[13]
786         srl             %l2,2,%l2
787         add             %i4,%l0,%l0
788          .word  0x8db48d86 !fxor        %f18,%f6,%f6            ! 8/14/10:X[0,1]|=Tmp
789         or              %i5,%l2,%l2
790         add             %o7,%l0,%l0
791          std            %f20,[%o5+16]           !
792         sll             %l0,5,%i3                       !! 40
793         ld              [%o5+32],%o7
794          .word  0x93b18da9 !fxors       %f6,%f9,%f9! 0/ 0/ 0:X[1]^=X[14]
795         srl             %l0,27,%i4
796         add             %i3,%l4,%l4
797          .word  0xa5b28d80 !fxor        %f10,%f0,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
798         and             %l2,%l1,%i3
799         add             %i4,%l4,%l4
800         sll             %l1,30,%i5
801         or              %l2,%l1,%i4
802          .word  0x91b48d88 !fxor        %f18,%f8,%f8            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
803         srl             %l1,2,%l1
804         and             %l3,%i4,%i4
805         add             %o7,%l4,%l4
806         or              %i4,%i3,%i4
807          .word  0xa5b20908 !faligndata  %f8,%f8,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
808         or              %i5,%l1,%l1
809         add             %i4,%l4,%l4
810          .word  0x91b20a48 !fpadd32     %f8,%f8,%f8             ! 4/ 8/ 6:X[0,1]<<=1
811         sll             %l4,5,%i3                       !! 41
812         ld              [%o5+36],%o7
813         srl             %l4,27,%i4
814         add             %i3,%l3,%l3
815          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
816         and             %l1,%l0,%i3
817         add             %i4,%l3,%l3
818          .word  0xa9b1ca46 !fpadd32     %f38,%f6,%f20                   !
819         sll             %l0,30,%i5
820         or              %l1,%l0,%i4
821          .word  0x95b1cdaa !fxors       %f7,%f10,%f10   !-1/-1/-1:X[0]^=X[13]
822         srl             %l0,2,%l0
823         and             %l2,%i4,%i4
824          .word  0x91b48d88 !fxor        %f18,%f8,%f8            ! 8/14/10:X[0,1]|=Tmp
825         add             %o7,%l3,%l3
826         or              %i4,%i3,%i4
827         or              %i5,%l0,%l0
828         add             %i4,%l3,%l3
829          std            %f20,[%o5+24]           !
830         sll             %l3,5,%i3                       !! 42
831         ld              [%o5+40],%o7
832          .word  0x97b20dab !fxors       %f8,%f11,%f11! 0/ 0/ 0:X[1]^=X[14]
833         srl             %l3,27,%i4
834         add             %i3,%l2,%l2
835          .word  0xa5b30d82 !fxor        %f12,%f2,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
836         and             %l0,%l4,%i3
837         add             %i4,%l2,%l2
838         sll             %l4,30,%i5
839         or              %l0,%l4,%i4
840          .word  0x95b48d8a !fxor        %f18,%f10,%f10          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
841         srl             %l4,2,%l4
842         and             %l1,%i4,%i4
843         add             %o7,%l2,%l2
844         or              %i4,%i3,%i4
845          .word  0xa5b2890a !faligndata  %f10,%f10,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
846         or              %i5,%l4,%l4
847         add             %i4,%l2,%l2
848          .word  0x95b28a4a !fpadd32     %f10,%f10,%f10          ! 4/ 8/ 6:X[0,1]<<=1
849         sll             %l2,5,%i3                       !! 43
850         ld              [%o5+44],%o7
851         srl             %l2,27,%i4
852         add             %i3,%l1,%l1
853          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
854         and             %l4,%l3,%i3
855         add             %i4,%l1,%l1
856          .word  0xa9b1ca48 !fpadd32     %f38,%f8,%f20                   !
857         sll             %l3,30,%i5
858         or              %l4,%l3,%i4
859          .word  0x99b24dac !fxors       %f9,%f12,%f12   !-1/-1/-1:X[0]^=X[13]
860         srl             %l3,2,%l3
861         and             %l0,%i4,%i4
862          .word  0x95b48d8a !fxor        %f18,%f10,%f10          ! 8/14/10:X[0,1]|=Tmp
863         add             %o7,%l1,%l1
864         or              %i4,%i3,%i4
865         or              %i5,%l3,%l3
866         add             %i4,%l1,%l1
867          std            %f20,[%o5+32]           !
868         sll             %l1,5,%i3                       !! 44
869         ld              [%o5+48],%o7
870          .word  0x9bb28dad !fxors       %f10,%f13,%f13! 0/ 0/ 0:X[1]^=X[14]
871         srl             %l1,27,%i4
872         add             %i3,%l0,%l0
873          .word  0xa5b38d84 !fxor        %f14,%f4,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
874         and             %l3,%l2,%i3
875         add             %i4,%l0,%l0
876         sll             %l2,30,%i5
877         or              %l3,%l2,%i4
878          .word  0x99b48d8c !fxor        %f18,%f12,%f12          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
879         srl             %l2,2,%l2
880         and             %l4,%i4,%i4
881         add             %o7,%l0,%l0
882         or              %i4,%i3,%i4
883          .word  0xa5b3090c !faligndata  %f12,%f12,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
884         or              %i5,%l2,%l2
885         add             %i4,%l0,%l0
886          .word  0x99b30a4c !fpadd32     %f12,%f12,%f12          ! 4/ 8/ 6:X[0,1]<<=1
887         sll             %l0,5,%i3                       !! 45
888         ld              [%o5+52],%o7
889         srl             %l0,27,%i4
890         add             %i3,%l4,%l4
891          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
892         and             %l2,%l1,%i3
893         add             %i4,%l4,%l4
894          .word  0xa9b1ca4a !fpadd32     %f38,%f10,%f20                  !
895         sll             %l1,30,%i5
896         or              %l2,%l1,%i4
897          .word  0x9db2cdae !fxors       %f11,%f14,%f14  !-1/-1/-1:X[0]^=X[13]
898         srl             %l1,2,%l1
899         and             %l3,%i4,%i4
900          .word  0x99b48d8c !fxor        %f18,%f12,%f12          ! 8/14/10:X[0,1]|=Tmp
901         add             %o7,%l4,%l4
902         or              %i4,%i3,%i4
903         or              %i5,%l1,%l1
904         add             %i4,%l4,%l4
905          std            %f20,[%o5+40]           !
906         sll             %l4,5,%i3                       !! 46
907         ld              [%o5+56],%o7
908          .word  0x9fb30daf !fxors       %f12,%f15,%f15! 0/ 0/ 0:X[1]^=X[14]
909         srl             %l4,27,%i4
910         add             %i3,%l3,%l3
911          .word  0xa5b00d86 !fxor        %f0,%f6,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
912         and             %l1,%l0,%i3
913         add             %i4,%l3,%l3
914         sll             %l0,30,%i5
915         or              %l1,%l0,%i4
916          .word  0x9db48d8e !fxor        %f18,%f14,%f14          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
917         srl             %l0,2,%l0
918         and             %l2,%i4,%i4
919         add             %o7,%l3,%l3
920         or              %i4,%i3,%i4
921          .word  0xa5b3890e !faligndata  %f14,%f14,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
922         or              %i5,%l0,%l0
923         add             %i4,%l3,%l3
924          .word  0x9db38a4e !fpadd32     %f14,%f14,%f14          ! 4/ 8/ 6:X[0,1]<<=1
925         sll             %l3,5,%i3                       !! 47
926         ld              [%o5+60],%o7
927         srl             %l3,27,%i4
928         add             %i3,%l2,%l2
929          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
930         and             %l0,%l4,%i3
931         add             %i4,%l2,%l2
932          .word  0xa9b24a4c !fpadd32     %f40,%f12,%f20                  !
933         sll             %l4,30,%i5
934         or              %l0,%l4,%i4
935          .word  0x81b34da0 !fxors       %f13,%f0,%f0    !-1/-1/-1:X[0]^=X[13]
936         srl             %l4,2,%l4
937         and             %l1,%i4,%i4
938          .word  0x9db48d8e !fxor        %f18,%f14,%f14          ! 8/14/10:X[0,1]|=Tmp
939         add             %o7,%l2,%l2
940         or              %i4,%i3,%i4
941         or              %i5,%l4,%l4
942         add             %i4,%l2,%l2
943          std            %f20,[%o5+48]           !
944         sll             %l2,5,%i3                       !! 48
945         ld              [%o5+0],%o7
946          .word  0x83b38da1 !fxors       %f14,%f1,%f1! 0/ 0/ 0:X[1]^=X[14]
947         srl             %l2,27,%i4
948         add             %i3,%l1,%l1
949          .word  0xa5b08d88 !fxor        %f2,%f8,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
950         and             %l4,%l3,%i3
951         add             %i4,%l1,%l1
952         sll             %l3,30,%i5
953         or              %l4,%l3,%i4
954          .word  0x81b48d80 !fxor        %f18,%f0,%f0            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
955         srl             %l3,2,%l3
956         and             %l0,%i4,%i4
957         add             %o7,%l1,%l1
958         or              %i4,%i3,%i4
959          .word  0xa5b00900 !faligndata  %f0,%f0,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
960         or              %i5,%l3,%l3
961         add             %i4,%l1,%l1
962          .word  0x81b00a40 !fpadd32     %f0,%f0,%f0             ! 4/ 8/ 6:X[0,1]<<=1
963         sll             %l1,5,%i3                       !! 49
964         ld              [%o5+4],%o7
965         srl             %l1,27,%i4
966         add             %i3,%l0,%l0
967          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
968         and             %l3,%l2,%i3
969         add             %i4,%l0,%l0
970          .word  0xa9b24a4e !fpadd32     %f40,%f14,%f20                  !
971         sll             %l2,30,%i5
972         or              %l3,%l2,%i4
973          .word  0x85b3cda2 !fxors       %f15,%f2,%f2    !-1/-1/-1:X[0]^=X[13]
974         srl             %l2,2,%l2
975         and             %l4,%i4,%i4
976          .word  0x81b48d80 !fxor        %f18,%f0,%f0            ! 8/14/10:X[0,1]|=Tmp
977         add             %o7,%l0,%l0
978         or              %i4,%i3,%i4
979         or              %i5,%l2,%l2
980         add             %i4,%l0,%l0
981          std            %f20,[%o5+56]           !
982         sll             %l0,5,%i3                       !! 50
983         ld              [%o5+8],%o7
984          .word  0x87b00da3 !fxors       %f0,%f3,%f3! 0/ 0/ 0:X[1]^=X[14]
985         srl             %l0,27,%i4
986         add             %i3,%l4,%l4
987          .word  0xa5b10d8a !fxor        %f4,%f10,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
988         and             %l2,%l1,%i3
989         add             %i4,%l4,%l4
990         sll             %l1,30,%i5
991         or              %l2,%l1,%i4
992          .word  0x85b48d82 !fxor        %f18,%f2,%f2            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
993         srl             %l1,2,%l1
994         and             %l3,%i4,%i4
995         add             %o7,%l4,%l4
996         or              %i4,%i3,%i4
997          .word  0xa5b08902 !faligndata  %f2,%f2,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
998         or              %i5,%l1,%l1
999         add             %i4,%l4,%l4
1000          .word  0x85b08a42 !fpadd32     %f2,%f2,%f2             ! 4/ 8/ 6:X[0,1]<<=1
1001         sll             %l4,5,%i3                       !! 51
1002         ld              [%o5+12],%o7
1003         srl             %l4,27,%i4
1004         add             %i3,%l3,%l3
1005          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
1006         and             %l1,%l0,%i3
1007         add             %i4,%l3,%l3
1008          .word  0xa9b24a40 !fpadd32     %f40,%f0,%f20                   !
1009         sll             %l0,30,%i5
1010         or              %l1,%l0,%i4
1011          .word  0x89b04da4 !fxors       %f1,%f4,%f4     !-1/-1/-1:X[0]^=X[13]
1012         srl             %l0,2,%l0
1013         and             %l2,%i4,%i4
1014          .word  0x85b48d82 !fxor        %f18,%f2,%f2            ! 8/14/10:X[0,1]|=Tmp
1015         add             %o7,%l3,%l3
1016         or              %i4,%i3,%i4
1017         or              %i5,%l0,%l0
1018         add             %i4,%l3,%l3
1019          std            %f20,[%o5+0]            !
1020         sll             %l3,5,%i3                       !! 52
1021         ld              [%o5+16],%o7
1022          .word  0x8bb08da5 !fxors       %f2,%f5,%f5! 0/ 0/ 0:X[1]^=X[14]
1023         srl             %l3,27,%i4
1024         add             %i3,%l2,%l2
1025          .word  0xa5b18d8c !fxor        %f6,%f12,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
1026         and             %l0,%l4,%i3
1027         add             %i4,%l2,%l2
1028         sll             %l4,30,%i5
1029         or              %l0,%l4,%i4
1030          .word  0x89b48d84 !fxor        %f18,%f4,%f4            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
1031         srl             %l4,2,%l4
1032         and             %l1,%i4,%i4
1033         add             %o7,%l2,%l2
1034         or              %i4,%i3,%i4
1035          .word  0xa5b10904 !faligndata  %f4,%f4,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
1036         or              %i5,%l4,%l4
1037         add             %i4,%l2,%l2
1038          .word  0x89b10a44 !fpadd32     %f4,%f4,%f4             ! 4/ 8/ 6:X[0,1]<<=1
1039         sll             %l2,5,%i3                       !! 53
1040         ld              [%o5+20],%o7
1041         srl             %l2,27,%i4
1042         add             %i3,%l1,%l1
1043          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
1044         and             %l4,%l3,%i3
1045         add             %i4,%l1,%l1
1046          .word  0xa9b24a42 !fpadd32     %f40,%f2,%f20                   !
1047         sll             %l3,30,%i5
1048         or              %l4,%l3,%i4
1049          .word  0x8db0cda6 !fxors       %f3,%f6,%f6     !-1/-1/-1:X[0]^=X[13]
1050         srl             %l3,2,%l3
1051         and             %l0,%i4,%i4
1052          .word  0x89b48d84 !fxor        %f18,%f4,%f4            ! 8/14/10:X[0,1]|=Tmp
1053         add             %o7,%l1,%l1
1054         or              %i4,%i3,%i4
1055         or              %i5,%l3,%l3
1056         add             %i4,%l1,%l1
1057          std            %f20,[%o5+8]            !
1058         sll             %l1,5,%i3                       !! 54
1059         ld              [%o5+24],%o7
1060          .word  0x8fb10da7 !fxors       %f4,%f7,%f7! 0/ 0/ 0:X[1]^=X[14]
1061         srl             %l1,27,%i4
1062         add             %i3,%l0,%l0
1063          .word  0xa5b20d8e !fxor        %f8,%f14,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
1064         and             %l3,%l2,%i3
1065         add             %i4,%l0,%l0
1066         sll             %l2,30,%i5
1067         or              %l3,%l2,%i4
1068          .word  0x8db48d86 !fxor        %f18,%f6,%f6            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
1069         srl             %l2,2,%l2
1070         and             %l4,%i4,%i4
1071         add             %o7,%l0,%l0
1072         or              %i4,%i3,%i4
1073          .word  0xa5b18906 !faligndata  %f6,%f6,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
1074         or              %i5,%l2,%l2
1075         add             %i4,%l0,%l0
1076          .word  0x8db18a46 !fpadd32     %f6,%f6,%f6             ! 4/ 8/ 6:X[0,1]<<=1
1077         sll             %l0,5,%i3                       !! 55
1078         ld              [%o5+28],%o7
1079         srl             %l0,27,%i4
1080         add             %i3,%l4,%l4
1081          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
1082         and             %l2,%l1,%i3
1083         add             %i4,%l4,%l4
1084          .word  0xa9b24a44 !fpadd32     %f40,%f4,%f20                   !
1085         sll             %l1,30,%i5
1086         or              %l2,%l1,%i4
1087          .word  0x91b14da8 !fxors       %f5,%f8,%f8     !-1/-1/-1:X[0]^=X[13]
1088         srl             %l1,2,%l1
1089         and             %l3,%i4,%i4
1090          .word  0x8db48d86 !fxor        %f18,%f6,%f6            ! 8/14/10:X[0,1]|=Tmp
1091         add             %o7,%l4,%l4
1092         or              %i4,%i3,%i4
1093         or              %i5,%l1,%l1
1094         add             %i4,%l4,%l4
1095          std            %f20,[%o5+16]           !
1096         sll             %l4,5,%i3                       !! 56
1097         ld              [%o5+32],%o7
1098          .word  0x93b18da9 !fxors       %f6,%f9,%f9! 0/ 0/ 0:X[1]^=X[14]
1099         srl             %l4,27,%i4
1100         add             %i3,%l3,%l3
1101          .word  0xa5b28d80 !fxor        %f10,%f0,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
1102         and             %l1,%l0,%i3
1103         add             %i4,%l3,%l3
1104         sll             %l0,30,%i5
1105         or              %l1,%l0,%i4
1106          .word  0x91b48d88 !fxor        %f18,%f8,%f8            ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
1107         srl             %l0,2,%l0
1108         and             %l2,%i4,%i4
1109         add             %o7,%l3,%l3
1110         or              %i4,%i3,%i4
1111          .word  0xa5b20908 !faligndata  %f8,%f8,%f18            ! 3/ 7/ 5:Tmp=X[0,1]>>>24
1112         or              %i5,%l0,%l0
1113         add             %i4,%l3,%l3
1114          .word  0x91b20a48 !fpadd32     %f8,%f8,%f8             ! 4/ 8/ 6:X[0,1]<<=1
1115         sll             %l3,5,%i3                       !! 57
1116         ld              [%o5+36],%o7
1117         srl             %l3,27,%i4
1118         add             %i3,%l2,%l2
1119          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
1120         and             %l0,%l4,%i3
1121         add             %i4,%l2,%l2
1122          .word  0xa9b24a46 !fpadd32     %f40,%f6,%f20                   !
1123         sll             %l4,30,%i5
1124         or              %l0,%l4,%i4
1125          .word  0x95b1cdaa !fxors       %f7,%f10,%f10   !-1/-1/-1:X[0]^=X[13]
1126         srl             %l4,2,%l4
1127         and             %l1,%i4,%i4
1128          .word  0x91b48d88 !fxor        %f18,%f8,%f8            ! 8/14/10:X[0,1]|=Tmp
1129         add             %o7,%l2,%l2
1130         or              %i4,%i3,%i4
1131         or              %i5,%l4,%l4
1132         add             %i4,%l2,%l2
1133          std            %f20,[%o5+24]           !
1134         sll             %l2,5,%i3                       !! 58
1135         ld              [%o5+40],%o7
1136          .word  0x97b20dab !fxors       %f8,%f11,%f11! 0/ 0/ 0:X[1]^=X[14]
1137         srl             %l2,27,%i4
1138         add             %i3,%l1,%l1
1139          .word  0xa5b30d82 !fxor        %f12,%f2,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
1140         and             %l4,%l3,%i3
1141         add             %i4,%l1,%l1
1142         sll             %l3,30,%i5
1143         or              %l4,%l3,%i4
1144          .word  0x95b48d8a !fxor        %f18,%f10,%f10          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
1145         srl             %l3,2,%l3
1146         and             %l0,%i4,%i4
1147         add             %o7,%l1,%l1
1148         or              %i4,%i3,%i4
1149          .word  0xa5b2890a !faligndata  %f10,%f10,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
1150         or              %i5,%l3,%l3
1151         add             %i4,%l1,%l1
1152          .word  0x95b28a4a !fpadd32     %f10,%f10,%f10          ! 4/ 8/ 6:X[0,1]<<=1
1153         sll             %l1,5,%i3                       !! 59
1154         ld              [%o5+44],%o7
1155         srl             %l1,27,%i4
1156         add             %i3,%l0,%l0
1157          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
1158         and             %l3,%l2,%i3
1159         add             %i4,%l0,%l0
1160          .word  0xa9b24a48 !fpadd32     %f40,%f8,%f20                   !
1161         sll             %l2,30,%i5
1162         or              %l3,%l2,%i4
1163          .word  0x99b24dac !fxors       %f9,%f12,%f12   !-1/-1/-1:X[0]^=X[13]
1164         srl             %l2,2,%l2
1165         and             %l4,%i4,%i4
1166          .word  0x95b48d8a !fxor        %f18,%f10,%f10          ! 8/14/10:X[0,1]|=Tmp
1167         add             %o7,%l0,%l0
1168         or              %i4,%i3,%i4
1169         or              %i5,%l2,%l2
1170         add             %i4,%l0,%l0
1171          std            %f20,[%o5+32]           !
1172         sll             %l0,5,%i3                       !! 60
1173         ld              [%o5+48],%o7
1174          .word  0x9bb28dad !fxors       %f10,%f13,%f13! 0/ 0/ 0:X[1]^=X[14]
1175         srl             %l0,27,%i4
1176         add             %i3,%l4,%l4
1177          .word  0xa5b38d84 !fxor        %f14,%f4,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
1178         xor             %l2,%l1,%i3
1179         add             %i4,%l4,%l4
1180         sll             %l1,30,%i5
1181         xor             %l3,%i3,%i4
1182          .word  0x99b48d8c !fxor        %f18,%f12,%f12          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
1183         srl             %l1,2,%l1
1184         add             %i4,%l4,%l4
1185         or              %i5,%l1,%l1
1186         add             %o7,%l4,%l4
1187          .word  0xa5b3090c !faligndata  %f12,%f12,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
1188         sll             %l4,5,%i3                       !! 61
1189         ld              [%o5+52],%o7
1190          .word  0x99b30a4c !fpadd32     %f12,%f12,%f12          ! 4/ 8/ 6:X[0,1]<<=1
1191         srl             %l4,27,%i4
1192         add             %i3,%l3,%l3
1193          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
1194         xor             %l1,%l0,%i3
1195         add             %i4,%l3,%l3
1196          .word  0xa9b24a4a !fpadd32     %f40,%f10,%f20                  !
1197         sll             %l0,30,%i5
1198         xor             %l2,%i3,%i4
1199          .word  0x9db2cdae !fxors       %f11,%f14,%f14  !-1/-1/-1:X[0]^=X[13]
1200         srl             %l0,2,%l0
1201         add             %i4,%l3,%l3
1202          .word  0x99b48d8c !fxor        %f18,%f12,%f12          ! 8/14/10:X[0,1]|=Tmp
1203         or              %i5,%l0,%l0
1204         add             %o7,%l3,%l3
1205          std            %f20,[%o5+40]           !
1206         sll             %l3,5,%i3                       !! 62
1207         ld              [%o5+56],%o7
1208          .word  0x9fb30daf !fxors       %f12,%f15,%f15! 0/ 0/ 0:X[1]^=X[14]
1209         srl             %l3,27,%i4
1210         add             %i3,%l2,%l2
1211          .word  0xa5b00d86 !fxor        %f0,%f6,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
1212         xor             %l0,%l4,%i3
1213         add             %i4,%l2,%l2
1214         sll             %l4,30,%i5
1215         xor             %l1,%i3,%i4
1216          .word  0x9db48d8e !fxor        %f18,%f14,%f14          ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
1217         srl             %l4,2,%l4
1218         add             %i4,%l2,%l2
1219         or              %i5,%l4,%l4
1220         add             %o7,%l2,%l2
1221          .word  0xa5b3890e !faligndata  %f14,%f14,%f18          ! 3/ 7/ 5:Tmp=X[0,1]>>>24
1222         sll             %l2,5,%i3                       !! 63
1223         ld              [%o5+60],%o7
1224          .word  0x9db38a4e !fpadd32     %f14,%f14,%f14          ! 4/ 8/ 6:X[0,1]<<=1
1225         srl             %l2,27,%i4
1226         add             %i3,%l1,%l1
1227          .word  0xa5b486e1 !fmul8ulx16  %f18,%f32,%f18                  ! 5/10/ 7:Tmp>>=7, Tmp&=1
1228         xor             %l4,%l3,%i3
1229         add             %i4,%l1,%l1
1230          .word  0xa9b24a4c !fpadd32     %f40,%f12,%f20                  !
1231         sll             %l3,30,%i5
1232         xor             %l0,%i3,%i4
1233          .word  0x81b34da0 !fxors       %f13,%f0,%f0    !-1/-1/-1:X[0]^=X[13]
1234         srl             %l3,2,%l3
1235         add             %i4,%l1,%l1
1236          .word  0x9db48d8e !fxor        %f18,%f14,%f14          ! 8/14/10:X[0,1]|=Tmp
1237         or              %i5,%l3,%l3
1238         add             %o7,%l1,%l1
1239          std            %f20,[%o5+48]           !
1240         sll             %l1,5,%i3                       !! 64
1241         ld              [%o5+0],%o7
1242          .word  0xa9b24a4e !fpadd32     %f40,%f14,%f20
1243         srl             %l1,27,%i4
1244         add             %i3,%l0,%l0
1245         xor             %l3,%l2,%i3
1246         add             %i4,%l0,%l0
1247         sll             %l2,30,%i5
1248         xor             %l4,%i3,%i4
1249          std            %f20,[%o5+56]
1250         srl             %l2,2,%l2
1251         add             %i4,%l0,%l0
1252         or              %i5,%l2,%l2
1253         add             %o7,%l0,%l0
1254         sll             %l0,5,%i3                       !! 65
1255         ld              [%o5+4],%o7
1256         srl             %l0,27,%i4
1257         add             %i3,%l4,%l4
1258         xor             %l2,%l1,%i3
1259         add             %i4,%l4,%l4
1260         sll             %l1,30,%i5
1261         xor             %l3,%i3,%i4
1262         srl             %l1,2,%l1
1263         add             %i4,%l4,%l4
1264         or              %i5,%l1,%l1
1265         add             %o7,%l4,%l4
1266         sll             %l4,5,%i3                       !! 66
1267         ld              [%o5+8],%o7
1268         srl             %l4,27,%i4
1269         add             %i3,%l3,%l3
1270         xor             %l1,%l0,%i3
1271         add             %i4,%l3,%l3
1272         sll             %l0,30,%i5
1273         xor             %l2,%i3,%i4
1274         srl             %l0,2,%l0
1275         add             %i4,%l3,%l3
1276         or              %i5,%l0,%l0
1277         add             %o7,%l3,%l3
1278         sll             %l3,5,%i3                       !! 67
1279         ld              [%o5+12],%o7
1280         srl             %l3,27,%i4
1281         add             %i3,%l2,%l2
1282         xor             %l0,%l4,%i3
1283         add             %i4,%l2,%l2
1284         sll             %l4,30,%i5
1285         xor             %l1,%i3,%i4
1286         srl             %l4,2,%l4
1287         add             %i4,%l2,%l2
1288         or              %i5,%l4,%l4
1289         add             %o7,%l2,%l2
1290         sll             %l2,5,%i3                       !! 68
1291         ld              [%o5+16],%o7
1292         srl             %l2,27,%i4
1293         add             %i3,%l1,%l1
1294         xor             %l4,%l3,%i3
1295         add             %i4,%l1,%l1
1296         sll             %l3,30,%i5
1297         xor             %l0,%i3,%i4
1298         srl             %l3,2,%l3
1299         add             %i4,%l1,%l1
1300         or              %i5,%l3,%l3
1301         add             %o7,%l1,%l1
1302         sll             %l1,5,%i3                       !! 69
1303         ld              [%o5+20],%o7
1304         srl             %l1,27,%i4
1305         add             %i3,%l0,%l0
1306         xor             %l3,%l2,%i3
1307         add             %i4,%l0,%l0
1308         sll             %l2,30,%i5
1309         xor             %l4,%i3,%i4
1310         srl             %l2,2,%l2
1311         add             %i4,%l0,%l0
1312         or              %i5,%l2,%l2
1313         add             %o7,%l0,%l0
1314         tst             %i2
1315         bz,pn           %icc,.Ltail
1316         nop
1317         sll             %l0,5,%i3                       !! 70
1318         ld              [%o5+24],%o7
1319         srl             %l0,27,%i4
1320         add             %i3,%l4,%l4
1321          ldd            [%i1+64],%f0
1322         xor             %l2,%l1,%i3
1323         add             %i4,%l4,%l4
1324         sll             %l1,30,%i5
1325         xor             %l3,%i3,%i4
1326         srl             %l1,2,%l1
1327         add             %i4,%l4,%l4
1328         or              %i5,%l1,%l1
1329         add             %o7,%l4,%l4
1331         and             %i1,-64,%g5
1332         inc             64,%i1
1333         and             %g5,255,%g5
1334         .word   0x81b00304 !alignaddr   %g0,%g4,%g0
1335         add             %g1,%g5,%g5
1336          ldd            [%i1+8],%f2
1337         sll             %l4,5,%i3                       !! 71
1338         ld              [%o5+28],%o7
1339         srl             %l4,27,%i4
1340         add             %i3,%l3,%l3
1341         xor             %l1,%l0,%i3
1342         add             %i4,%l3,%l3
1343         sll             %l0,30,%i5
1344         xor             %l2,%i3,%i4
1345         srl             %l0,2,%l0
1346         add             %i4,%l3,%l3
1347         or              %i5,%l0,%l0
1348         add             %o7,%l3,%l3
1349          ldd            [%i1+16],%f4
1350          .word  0x81b00902 !faligndata  %f0,%f2,%f0
1351         sll             %l3,5,%i3                       !! 72
1352         ld              [%o5+32],%o7
1353         srl             %l3,27,%i4
1354         add             %i3,%l2,%l2
1355         xor             %l0,%l4,%i3
1356         add             %i4,%l2,%l2
1357          .word  0xa9b0ca40 !fpadd32     %f34,%f0,%f20
1358         sll             %l4,30,%i5
1359         xor             %l1,%i3,%i4
1360         srl             %l4,2,%l4
1361         add             %i4,%l2,%l2
1362         or              %i5,%l4,%l4
1363         add             %o7,%l2,%l2
1364          ldd            [%i1+24],%f6
1365          std            %f20,[%g5+0]
1366          .word  0x85b08904 !faligndata  %f2,%f4,%f2
1367         sll             %l2,5,%i3                       !! 73
1368         ld              [%o5+36],%o7
1369         srl             %l2,27,%i4
1370         add             %i3,%l1,%l1
1371         xor             %l4,%l3,%i3
1372         add             %i4,%l1,%l1
1373          .word  0xa9b0ca42 !fpadd32     %f34,%f2,%f20
1374         sll             %l3,30,%i5
1375         xor             %l0,%i3,%i4
1376         srl             %l3,2,%l3
1377         add             %i4,%l1,%l1
1378         or              %i5,%l3,%l3
1379         add             %o7,%l1,%l1
1380          ldd            [%i1+32],%f8
1381          std            %f20,[%g5+8]
1382          .word  0x89b10906 !faligndata  %f4,%f6,%f4
1383         sll             %l1,5,%i3                       !! 74
1384         ld              [%o5+40],%o7
1385         srl             %l1,27,%i4
1386         add             %i3,%l0,%l0
1387         xor             %l3,%l2,%i3
1388         add             %i4,%l0,%l0
1389          .word  0xa9b0ca44 !fpadd32     %f34,%f4,%f20
1390         sll             %l2,30,%i5
1391         xor             %l4,%i3,%i4
1392         srl             %l2,2,%l2
1393         add             %i4,%l0,%l0
1394         or              %i5,%l2,%l2
1395         add             %o7,%l0,%l0
1396          ldd            [%i1+40],%f10
1397          std            %f20,[%g5+16]
1398          .word  0x8db18908 !faligndata  %f6,%f8,%f6
1399         sll             %l0,5,%i3                       !! 75
1400         ld              [%o5+44],%o7
1401         srl             %l0,27,%i4
1402         add             %i3,%l4,%l4
1403         xor             %l2,%l1,%i3
1404         add             %i4,%l4,%l4
1405          .word  0xa9b0ca46 !fpadd32     %f34,%f6,%f20
1406         sll             %l1,30,%i5
1407         xor             %l3,%i3,%i4
1408         srl             %l1,2,%l1
1409         add             %i4,%l4,%l4
1410         or              %i5,%l1,%l1
1411         add             %o7,%l4,%l4
1412          ldd            [%i1+48],%f12
1413          std            %f20,[%g5+24]
1414          .word  0x91b2090a !faligndata  %f8,%f10,%f8
1415         sll             %l4,5,%i3                       !! 76
1416         ld              [%o5+48],%o7
1417         srl             %l4,27,%i4
1418         add             %i3,%l3,%l3
1419         xor             %l1,%l0,%i3
1420         add             %i4,%l3,%l3
1421          .word  0xa9b0ca48 !fpadd32     %f34,%f8,%f20
1422         sll             %l0,30,%i5
1423         xor             %l2,%i3,%i4
1424         srl             %l0,2,%l0
1425         add             %i4,%l3,%l3
1426         or              %i5,%l0,%l0
1427         add             %o7,%l3,%l3
1428          ldd            [%i1+56],%f14
1429          std            %f20,[%g5+32]
1430          .word  0x95b2890c !faligndata  %f10,%f12,%f10
1431         sll             %l3,5,%i3                       !! 77
1432         ld              [%o5+52],%o7
1433         srl             %l3,27,%i4
1434         add             %i3,%l2,%l2
1435         xor             %l0,%l4,%i3
1436         add             %i4,%l2,%l2
1437          .word  0xa9b0ca4a !fpadd32     %f34,%f10,%f20
1438         sll             %l4,30,%i5
1439         xor             %l1,%i3,%i4
1440         srl             %l4,2,%l4
1441         add             %i4,%l2,%l2
1442         or              %i5,%l4,%l4
1443         add             %o7,%l2,%l2
1444          add            %g4,63,%i3
1445          and            %i3,-8,%i3
1446          ldd            [%i1+%i3],%f16
1447          std            %f20,[%g5+40]
1448          .word  0x99b3090e !faligndata  %f12,%f14,%f12
1449         sll             %l2,5,%i3                       !! 78
1450         ld              [%o5+56],%o7
1451         srl             %l2,27,%i4
1452         add             %i3,%l1,%l1
1453         xor             %l4,%l3,%i3
1454         add             %i4,%l1,%l1
1455          .word  0xa9b0ca4c !fpadd32     %f34,%f12,%f20
1456         sll             %l3,30,%i5
1457         xor             %l0,%i3,%i4
1458         srl             %l3,2,%l3
1459         add             %i4,%l1,%l1
1460         or              %i5,%l3,%l3
1461         add             %o7,%l1,%l1
1462          std            %f20,[%g5+48]
1463          .word  0x9db38910 !faligndata  %f14,%f16,%f14
1464         sll             %l1,5,%i3                       !! 79
1465         ld              [%o5+60],%o7
1466         srl             %l1,27,%i4
1467         add             %i3,%l0,%l0
1468         xor             %l3,%l2,%i3
1469         add             %i4,%l0,%l0
1470          .word  0xa9b0ca4e !fpadd32     %f34,%f14,%f20
1471         sll             %l2,30,%i5
1472         xor             %l4,%i3,%i4
1473         srl             %l2,2,%l2
1474         add             %i4,%l0,%l0
1475         or              %i5,%l2,%l2
1476         add             %o7,%l0,%l0
1477          std            %f20,[%g5+56]
1478         add             %l0,%o0,%o0
1479         add             %l1,%o1,%o1
1480         add             %l2,%o2,%o2
1481         add             %l3,%o3,%o3
1482         add             %l4,%o4,%o4
1483         mov             5,%i3
1484         .word   0x81b34da0 !fxors       %f13,%f0,%f0
1485         mov             %o0,%l0
1486         mov             %o1,%l1
1487         mov             %o2,%l2
1488         mov             %o3,%l3
1489         mov             %o4,%l4
1490         .word   0x81b0031b !alignaddr   %g0,%i3,%g0     
1491         dec             1,%i2
1492         ba              .Loop
1493         mov             %g5,%o5
1495 .align  32
1496 .Ltail:
1497         sll             %l0,5,%i3                       !! 70
1498         ld              [%o5+24],%o7
1499         srl             %l0,27,%i4
1500         add             %i3,%l4,%l4
1501         xor             %l2,%l1,%i3
1502         add             %i4,%l4,%l4
1503         sll             %l1,30,%i5
1504         xor             %l3,%i3,%i4
1505         srl             %l1,2,%l1
1506         add             %i4,%l4,%l4
1507         or              %i5,%l1,%l1
1508         add             %o7,%l4,%l4
1509         sll             %l4,5,%i3                       !! 71
1510         ld              [%o5+28],%o7
1511         srl             %l4,27,%i4
1512         add             %i3,%l3,%l3
1513         xor             %l1,%l0,%i3
1514         add             %i4,%l3,%l3
1515         sll             %l0,30,%i5
1516         xor             %l2,%i3,%i4
1517         srl             %l0,2,%l0
1518         add             %i4,%l3,%l3
1519         or              %i5,%l0,%l0
1520         add             %o7,%l3,%l3
1521         sll             %l3,5,%i3                       !! 72
1522         ld              [%o5+32],%o7
1523         srl             %l3,27,%i4
1524         add             %i3,%l2,%l2
1525         xor             %l0,%l4,%i3
1526         add             %i4,%l2,%l2
1527         sll             %l4,30,%i5
1528         xor             %l1,%i3,%i4
1529         srl             %l4,2,%l4
1530         add             %i4,%l2,%l2
1531         or              %i5,%l4,%l4
1532         add             %o7,%l2,%l2
1533         sll             %l2,5,%i3                       !! 73
1534         ld              [%o5+36],%o7
1535         srl             %l2,27,%i4
1536         add             %i3,%l1,%l1
1537         xor             %l4,%l3,%i3
1538         add             %i4,%l1,%l1
1539         sll             %l3,30,%i5
1540         xor             %l0,%i3,%i4
1541         srl             %l3,2,%l3
1542         add             %i4,%l1,%l1
1543         or              %i5,%l3,%l3
1544         add             %o7,%l1,%l1
1545         sll             %l1,5,%i3                       !! 74
1546         ld              [%o5+40],%o7
1547         srl             %l1,27,%i4
1548         add             %i3,%l0,%l0
1549         xor             %l3,%l2,%i3
1550         add             %i4,%l0,%l0
1551         sll             %l2,30,%i5
1552         xor             %l4,%i3,%i4
1553         srl             %l2,2,%l2
1554         add             %i4,%l0,%l0
1555         or              %i5,%l2,%l2
1556         add             %o7,%l0,%l0
1557         sll             %l0,5,%i3                       !! 75
1558         ld              [%o5+44],%o7
1559         srl             %l0,27,%i4
1560         add             %i3,%l4,%l4
1561         xor             %l2,%l1,%i3
1562         add             %i4,%l4,%l4
1563         sll             %l1,30,%i5
1564         xor             %l3,%i3,%i4
1565         srl             %l1,2,%l1
1566         add             %i4,%l4,%l4
1567         or              %i5,%l1,%l1
1568         add             %o7,%l4,%l4
1569         sll             %l4,5,%i3                       !! 76
1570         ld              [%o5+48],%o7
1571         srl             %l4,27,%i4
1572         add             %i3,%l3,%l3
1573         xor             %l1,%l0,%i3
1574         add             %i4,%l3,%l3
1575         sll             %l0,30,%i5
1576         xor             %l2,%i3,%i4
1577         srl             %l0,2,%l0
1578         add             %i4,%l3,%l3
1579         or              %i5,%l0,%l0
1580         add             %o7,%l3,%l3
1581         sll             %l3,5,%i3                       !! 77
1582         ld              [%o5+52],%o7
1583         srl             %l3,27,%i4
1584         add             %i3,%l2,%l2
1585         xor             %l0,%l4,%i3
1586         add             %i4,%l2,%l2
1587         sll             %l4,30,%i5
1588         xor             %l1,%i3,%i4
1589         srl             %l4,2,%l4
1590         add             %i4,%l2,%l2
1591         or              %i5,%l4,%l4
1592         add             %o7,%l2,%l2
1593         sll             %l2,5,%i3                       !! 78
1594         ld              [%o5+56],%o7
1595         srl             %l2,27,%i4
1596         add             %i3,%l1,%l1
1597         xor             %l4,%l3,%i3
1598         add             %i4,%l1,%l1
1599         sll             %l3,30,%i5
1600         xor             %l0,%i3,%i4
1601         srl             %l3,2,%l3
1602         add             %i4,%l1,%l1
1603         or              %i5,%l3,%l3
1604         add             %o7,%l1,%l1
1605         sll             %l1,5,%i3                       !! 79
1606         ld              [%o5+60],%o7
1607         srl             %l1,27,%i4
1608         add             %i3,%l0,%l0
1609         xor             %l3,%l2,%i3
1610         add             %i4,%l0,%l0
1611         sll             %l2,30,%i5
1612         xor             %l4,%i3,%i4
1613         srl             %l2,2,%l2
1614         add             %i4,%l0,%l0
1615         or              %i5,%l2,%l2
1616         add             %o7,%l0,%l0
1617         add     %l0,%o0,%o0
1618         add     %l1,%o1,%o1
1619         add     %l2,%o2,%o2
1620         add     %l3,%o3,%o3
1621         add     %l4,%o4,%o4
1623         st      %o0,[%i0+0]
1624         st      %o1,[%i0+4]
1625         st      %o2,[%i0+8]
1626         st      %o3,[%i0+12]
1627         st      %o4,[%i0+16]
1629         ret
1630         restore
1631 .type   sha1_block_data_order,#function
1632 .size   sha1_block_data_order,(.-sha1_block_data_order)
1633 .asciz  "SHA1 block transform for SPARCv9a, CRYPTOGAMS by <appro@openssl.org>"
1634 .align  4