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