1*25c28e83SPiotr Jasiukajtis/*
2*25c28e83SPiotr Jasiukajtis * CDDL HEADER START
3*25c28e83SPiotr Jasiukajtis *
4*25c28e83SPiotr Jasiukajtis * The contents of this file are subject to the terms of the
5*25c28e83SPiotr Jasiukajtis * Common Development and Distribution License (the "License").
6*25c28e83SPiotr Jasiukajtis * You may not use this file except in compliance with the License.
7*25c28e83SPiotr Jasiukajtis *
8*25c28e83SPiotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*25c28e83SPiotr Jasiukajtis * or http://www.opensolaris.org/os/licensing.
10*25c28e83SPiotr Jasiukajtis * See the License for the specific language governing permissions
11*25c28e83SPiotr Jasiukajtis * and limitations under the License.
12*25c28e83SPiotr Jasiukajtis *
13*25c28e83SPiotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each
14*25c28e83SPiotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*25c28e83SPiotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the
16*25c28e83SPiotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying
17*25c28e83SPiotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner]
18*25c28e83SPiotr Jasiukajtis *
19*25c28e83SPiotr Jasiukajtis * CDDL HEADER END
20*25c28e83SPiotr Jasiukajtis */
21*25c28e83SPiotr Jasiukajtis/*
22*25c28e83SPiotr Jasiukajtis * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
23*25c28e83SPiotr Jasiukajtis */
24*25c28e83SPiotr Jasiukajtis/*
25*25c28e83SPiotr Jasiukajtis * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
26*25c28e83SPiotr Jasiukajtis * Use is subject to license terms.
27*25c28e83SPiotr Jasiukajtis */
28*25c28e83SPiotr Jasiukajtis
29*25c28e83SPiotr Jasiukajtis	.file	"__vcosf.S"
30*25c28e83SPiotr Jasiukajtis
31*25c28e83SPiotr Jasiukajtis#include "libm.h"
32*25c28e83SPiotr Jasiukajtis
33*25c28e83SPiotr Jasiukajtis	RO_DATA
34*25c28e83SPiotr Jasiukajtis	.align	64
35*25c28e83SPiotr Jasiukajtisconstants:
36*25c28e83SPiotr Jasiukajtis	.word	0xbfc55554,0x60000000
37*25c28e83SPiotr Jasiukajtis	.word	0x3f811077,0xe0000000
38*25c28e83SPiotr Jasiukajtis	.word	0xbf29956b,0x60000000
39*25c28e83SPiotr Jasiukajtis	.word	0x3ff00000,0x00000000
40*25c28e83SPiotr Jasiukajtis	.word	0xbfe00000,0x00000000
41*25c28e83SPiotr Jasiukajtis	.word	0x3fa55554,0xa0000000
42*25c28e83SPiotr Jasiukajtis	.word	0xbf56c0c1,0xe0000000
43*25c28e83SPiotr Jasiukajtis	.word	0x3ef99e24,0xe0000000
44*25c28e83SPiotr Jasiukajtis	.word	0x3fe45f30,0x6dc9c883
45*25c28e83SPiotr Jasiukajtis	.word	0x43380000,0x00000000
46*25c28e83SPiotr Jasiukajtis	.word	0x3ff921fb,0x54400000
47*25c28e83SPiotr Jasiukajtis	.word	0x3dd0b461,0x1a626331
48*25c28e83SPiotr Jasiukajtis	.word	0x3f490fdb,0
49*25c28e83SPiotr Jasiukajtis	.word	0x49c90fdb,0
50*25c28e83SPiotr Jasiukajtis	.word	0x7f800000,0
51*25c28e83SPiotr Jasiukajtis	.word	0x80000000,0
52*25c28e83SPiotr Jasiukajtis
53*25c28e83SPiotr Jasiukajtis#define S0		0x0
54*25c28e83SPiotr Jasiukajtis#define S1		0x08
55*25c28e83SPiotr Jasiukajtis#define S2		0x10
56*25c28e83SPiotr Jasiukajtis#define one		0x18
57*25c28e83SPiotr Jasiukajtis#define mhalf		0x20
58*25c28e83SPiotr Jasiukajtis#define C0		0x28
59*25c28e83SPiotr Jasiukajtis#define C1		0x30
60*25c28e83SPiotr Jasiukajtis#define C2		0x38
61*25c28e83SPiotr Jasiukajtis#define invpio2		0x40
62*25c28e83SPiotr Jasiukajtis#define round		0x48
63*25c28e83SPiotr Jasiukajtis#define pio2_1		0x50
64*25c28e83SPiotr Jasiukajtis#define pio2_t		0x58
65*25c28e83SPiotr Jasiukajtis#define thresh1		0x60
66*25c28e83SPiotr Jasiukajtis#define thresh2		0x68
67*25c28e83SPiotr Jasiukajtis#define inf		0x70
68*25c28e83SPiotr Jasiukajtis#define signbit		0x78
69*25c28e83SPiotr Jasiukajtis
70*25c28e83SPiotr Jasiukajtis! local storage indices
71*25c28e83SPiotr Jasiukajtis
72*25c28e83SPiotr Jasiukajtis#define xsave		STACK_BIAS-0x8
73*25c28e83SPiotr Jasiukajtis#define ysave		STACK_BIAS-0x10
74*25c28e83SPiotr Jasiukajtis#define nsave		STACK_BIAS-0x14
75*25c28e83SPiotr Jasiukajtis#define sxsave		STACK_BIAS-0x18
76*25c28e83SPiotr Jasiukajtis#define sysave		STACK_BIAS-0x1c
77*25c28e83SPiotr Jasiukajtis#define junk		STACK_BIAS-0x20
78*25c28e83SPiotr Jasiukajtis#define n3		STACK_BIAS-0x24
79*25c28e83SPiotr Jasiukajtis#define n2		STACK_BIAS-0x28
80*25c28e83SPiotr Jasiukajtis#define n1		STACK_BIAS-0x2c
81*25c28e83SPiotr Jasiukajtis#define n0		STACK_BIAS-0x30
82*25c28e83SPiotr Jasiukajtis! sizeof temp storage - must be a multiple of 16 for V9
83*25c28e83SPiotr Jasiukajtis#define tmps		0x30
84*25c28e83SPiotr Jasiukajtis
85*25c28e83SPiotr Jasiukajtis! register use
86*25c28e83SPiotr Jasiukajtis
87*25c28e83SPiotr Jasiukajtis! i0  n
88*25c28e83SPiotr Jasiukajtis! i1  x
89*25c28e83SPiotr Jasiukajtis! i2  stridex
90*25c28e83SPiotr Jasiukajtis! i3  y
91*25c28e83SPiotr Jasiukajtis! i4  stridey
92*25c28e83SPiotr Jasiukajtis! i5  biguns
93*25c28e83SPiotr Jasiukajtis
94*25c28e83SPiotr Jasiukajtis! l0  n0
95*25c28e83SPiotr Jasiukajtis! l1  n1
96*25c28e83SPiotr Jasiukajtis! l2  n2
97*25c28e83SPiotr Jasiukajtis! l3  n3
98*25c28e83SPiotr Jasiukajtis! l4
99*25c28e83SPiotr Jasiukajtis! l5
100*25c28e83SPiotr Jasiukajtis! l6
101*25c28e83SPiotr Jasiukajtis! l7
102*25c28e83SPiotr Jasiukajtis
103*25c28e83SPiotr Jasiukajtis! the following are 64-bit registers in both V8+ and V9
104*25c28e83SPiotr Jasiukajtis
105*25c28e83SPiotr Jasiukajtis! g1
106*25c28e83SPiotr Jasiukajtis! g5
107*25c28e83SPiotr Jasiukajtis
108*25c28e83SPiotr Jasiukajtis! o0  py0
109*25c28e83SPiotr Jasiukajtis! o1  py1
110*25c28e83SPiotr Jasiukajtis! o2  py2
111*25c28e83SPiotr Jasiukajtis! o3  py3
112*25c28e83SPiotr Jasiukajtis! o4
113*25c28e83SPiotr Jasiukajtis! o5
114*25c28e83SPiotr Jasiukajtis! o7
115*25c28e83SPiotr Jasiukajtis
116*25c28e83SPiotr Jasiukajtis! f0  x0
117*25c28e83SPiotr Jasiukajtis! f2  x1
118*25c28e83SPiotr Jasiukajtis! f4  x2
119*25c28e83SPiotr Jasiukajtis! f6  x3
120*25c28e83SPiotr Jasiukajtis! f8  thresh1 (pi/4)
121*25c28e83SPiotr Jasiukajtis! f10 y0
122*25c28e83SPiotr Jasiukajtis! f12 y1
123*25c28e83SPiotr Jasiukajtis! f14 y2
124*25c28e83SPiotr Jasiukajtis! f16 y3
125*25c28e83SPiotr Jasiukajtis! f18 thresh2 (2^19 pi)
126*25c28e83SPiotr Jasiukajtis! f20
127*25c28e83SPiotr Jasiukajtis! f22
128*25c28e83SPiotr Jasiukajtis! f24
129*25c28e83SPiotr Jasiukajtis! f26
130*25c28e83SPiotr Jasiukajtis! f28 signbit
131*25c28e83SPiotr Jasiukajtis! f30
132*25c28e83SPiotr Jasiukajtis! f32
133*25c28e83SPiotr Jasiukajtis! f34
134*25c28e83SPiotr Jasiukajtis! f36
135*25c28e83SPiotr Jasiukajtis! f38 inf
136*25c28e83SPiotr Jasiukajtis! f40 S0
137*25c28e83SPiotr Jasiukajtis! f42 S1
138*25c28e83SPiotr Jasiukajtis! f44 S2
139*25c28e83SPiotr Jasiukajtis! f46 one
140*25c28e83SPiotr Jasiukajtis! f48 mhalf
141*25c28e83SPiotr Jasiukajtis! f50 C0
142*25c28e83SPiotr Jasiukajtis! f52 C1
143*25c28e83SPiotr Jasiukajtis! f54 C2
144*25c28e83SPiotr Jasiukajtis! f56 invpio2
145*25c28e83SPiotr Jasiukajtis! f58 round
146*25c28e83SPiotr Jasiukajtis! f60 pio2_1
147*25c28e83SPiotr Jasiukajtis! f62 pio2_t
148*25c28e83SPiotr Jasiukajtis
149*25c28e83SPiotr Jasiukajtis	ENTRY(__vcosf)
150*25c28e83SPiotr Jasiukajtis	save	%sp,-SA(MINFRAME)-tmps,%sp
151*25c28e83SPiotr Jasiukajtis	PIC_SETUP(l7)
152*25c28e83SPiotr Jasiukajtis	PIC_SET(l7,constants,l0)
153*25c28e83SPiotr Jasiukajtis	mov	%l0,%g1
154*25c28e83SPiotr Jasiukajtis	wr	%g0,0x82,%asi		! set %asi for non-faulting loads
155*25c28e83SPiotr Jasiukajtis#ifdef __sparcv9
156*25c28e83SPiotr Jasiukajtis	stx	%i1,[%fp+xsave]		! save arguments
157*25c28e83SPiotr Jasiukajtis	stx	%i3,[%fp+ysave]
158*25c28e83SPiotr Jasiukajtis#else
159*25c28e83SPiotr Jasiukajtis	st	%i1,[%fp+xsave]		! save arguments
160*25c28e83SPiotr Jasiukajtis	st	%i3,[%fp+ysave]
161*25c28e83SPiotr Jasiukajtis#endif
162*25c28e83SPiotr Jasiukajtis	st	%i0,[%fp+nsave]
163*25c28e83SPiotr Jasiukajtis	st	%i2,[%fp+sxsave]
164*25c28e83SPiotr Jasiukajtis	st	%i4,[%fp+sysave]
165*25c28e83SPiotr Jasiukajtis	mov	0,%i5			! biguns = 0
166*25c28e83SPiotr Jasiukajtis	ldd	[%g1+S0],%f40		! load constants
167*25c28e83SPiotr Jasiukajtis	ldd	[%g1+S1],%f42
168*25c28e83SPiotr Jasiukajtis	ldd	[%g1+S2],%f44
169*25c28e83SPiotr Jasiukajtis	ldd	[%g1+one],%f46
170*25c28e83SPiotr Jasiukajtis	ldd	[%g1+mhalf],%f48
171*25c28e83SPiotr Jasiukajtis	ldd	[%g1+C0],%f50
172*25c28e83SPiotr Jasiukajtis	ldd	[%g1+C1],%f52
173*25c28e83SPiotr Jasiukajtis	ldd	[%g1+C2],%f54
174*25c28e83SPiotr Jasiukajtis	ldd	[%g1+invpio2],%f56
175*25c28e83SPiotr Jasiukajtis	ldd	[%g1+round],%f58
176*25c28e83SPiotr Jasiukajtis	ldd	[%g1+pio2_1],%f60
177*25c28e83SPiotr Jasiukajtis	ldd	[%g1+pio2_t],%f62
178*25c28e83SPiotr Jasiukajtis	ldd	[%g1+thresh1],%f8
179*25c28e83SPiotr Jasiukajtis	ldd	[%g1+thresh2],%f18
180*25c28e83SPiotr Jasiukajtis	ldd	[%g1+inf],%f38
181*25c28e83SPiotr Jasiukajtis	ldd	[%g1+signbit],%f28
182*25c28e83SPiotr Jasiukajtis	sll	%i2,2,%i2		! scale strides
183*25c28e83SPiotr Jasiukajtis	sll	%i4,2,%i4
184*25c28e83SPiotr Jasiukajtis	fzero	%f10			! loop prologue
185*25c28e83SPiotr Jasiukajtis	add	%fp,junk,%o0
186*25c28e83SPiotr Jasiukajtis	fzero	%f12
187*25c28e83SPiotr Jasiukajtis	add	%fp,junk,%o1
188*25c28e83SPiotr Jasiukajtis	fzero	%f14
189*25c28e83SPiotr Jasiukajtis	add	%fp,junk,%o2
190*25c28e83SPiotr Jasiukajtis	fzero	%f16
191*25c28e83SPiotr Jasiukajtis	ba	.start
192*25c28e83SPiotr Jasiukajtis	add	%fp,junk,%o3
193*25c28e83SPiotr Jasiukajtis
194*25c28e83SPiotr Jasiukajtis	.align	16
195*25c28e83SPiotr Jasiukajtis! 16-byte aligned
196*25c28e83SPiotr Jasiukajtis.start:
197*25c28e83SPiotr Jasiukajtis	ld	[%i1],%f0		! *x
198*25c28e83SPiotr Jasiukajtis	add	%i1,%i2,%i1		! x += stridex
199*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
200*25c28e83SPiotr Jasiukajtis	fdtos	%f10,%f10
201*25c28e83SPiotr Jasiukajtis
202*25c28e83SPiotr Jasiukajtis	st	%f10,[%o0]
203*25c28e83SPiotr Jasiukajtis	mov	%i3,%o0			! py0 = y
204*25c28e83SPiotr Jasiukajtis	ble,pn	%icc,.last1
205*25c28e83SPiotr Jasiukajtis! delay slot
206*25c28e83SPiotr Jasiukajtis	add	%i3,%i4,%i3		! y += stridey
207*25c28e83SPiotr Jasiukajtis
208*25c28e83SPiotr Jasiukajtis	ld	[%i1],%f2		! *x
209*25c28e83SPiotr Jasiukajtis	add	%i1,%i2,%i1		! x += stridex
210*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
211*25c28e83SPiotr Jasiukajtis	fdtos	%f12,%f12
212*25c28e83SPiotr Jasiukajtis
213*25c28e83SPiotr Jasiukajtis	st	%f12,[%o1]
214*25c28e83SPiotr Jasiukajtis	mov	%i3,%o1			! py1 = y
215*25c28e83SPiotr Jasiukajtis	ble,pn	%icc,.last2
216*25c28e83SPiotr Jasiukajtis! delay slot
217*25c28e83SPiotr Jasiukajtis	add	%i3,%i4,%i3		! y += stridey
218*25c28e83SPiotr Jasiukajtis
219*25c28e83SPiotr Jasiukajtis	ld	[%i1],%f4		! *x
220*25c28e83SPiotr Jasiukajtis	add	%i1,%i2,%i1		! x += stridex
221*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
222*25c28e83SPiotr Jasiukajtis	fdtos	%f14,%f14
223*25c28e83SPiotr Jasiukajtis
224*25c28e83SPiotr Jasiukajtis	st	%f14,[%o2]
225*25c28e83SPiotr Jasiukajtis	mov	%i3,%o2			! py2 = y
226*25c28e83SPiotr Jasiukajtis	ble,pn	%icc,.last3
227*25c28e83SPiotr Jasiukajtis! delay slot
228*25c28e83SPiotr Jasiukajtis	add	%i3,%i4,%i3		! y += stridey
229*25c28e83SPiotr Jasiukajtis
230*25c28e83SPiotr Jasiukajtis	ld	[%i1],%f6		! *x
231*25c28e83SPiotr Jasiukajtis	add	%i1,%i2,%i1		! x += stridex
232*25c28e83SPiotr Jasiukajtis	nop
233*25c28e83SPiotr Jasiukajtis	fdtos	%f16,%f16
234*25c28e83SPiotr Jasiukajtis
235*25c28e83SPiotr Jasiukajtis	st	%f16,[%o3]
236*25c28e83SPiotr Jasiukajtis	mov	%i3,%o3			! py3 = y
237*25c28e83SPiotr Jasiukajtis	add	%i3,%i4,%i3		! y += stridey
238*25c28e83SPiotr Jasiukajtis.cont:
239*25c28e83SPiotr Jasiukajtis	fabsd	%f0,%f30
240*25c28e83SPiotr Jasiukajtis
241*25c28e83SPiotr Jasiukajtis	fabsd	%f2,%f32
242*25c28e83SPiotr Jasiukajtis
243*25c28e83SPiotr Jasiukajtis	fabsd	%f4,%f34
244*25c28e83SPiotr Jasiukajtis
245*25c28e83SPiotr Jasiukajtis	fabsd	%f6,%f36
246*25c28e83SPiotr Jasiukajtis	fcmple32 %f30,%f18,%l0
247*25c28e83SPiotr Jasiukajtis
248*25c28e83SPiotr Jasiukajtis	fcmple32 %f32,%f18,%l1
249*25c28e83SPiotr Jasiukajtis
250*25c28e83SPiotr Jasiukajtis	fcmple32 %f34,%f18,%l2
251*25c28e83SPiotr Jasiukajtis
252*25c28e83SPiotr Jasiukajtis	fcmple32 %f36,%f18,%l3
253*25c28e83SPiotr Jasiukajtis	nop
254*25c28e83SPiotr Jasiukajtis
255*25c28e83SPiotr Jasiukajtis! 16-byte aligned
256*25c28e83SPiotr Jasiukajtis	andcc	%l0,2,%g0
257*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.range0		! branch if > 2^19 pi
258*25c28e83SPiotr Jasiukajtis! delay slot
259*25c28e83SPiotr Jasiukajtis	fcmple32 %f30,%f8,%l0
260*25c28e83SPiotr Jasiukajtis
261*25c28e83SPiotr Jasiukajtis.check1:
262*25c28e83SPiotr Jasiukajtis	andcc	%l1,2,%g0
263*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.range1		! branch if > 2^19 pi
264*25c28e83SPiotr Jasiukajtis! delay slot
265*25c28e83SPiotr Jasiukajtis	fcmple32 %f32,%f8,%l1
266*25c28e83SPiotr Jasiukajtis
267*25c28e83SPiotr Jasiukajtis.check2:
268*25c28e83SPiotr Jasiukajtis	andcc	%l2,2,%g0
269*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.range2		! branch if > 2^19 pi
270*25c28e83SPiotr Jasiukajtis! delay slot
271*25c28e83SPiotr Jasiukajtis	fcmple32 %f34,%f8,%l2
272*25c28e83SPiotr Jasiukajtis
273*25c28e83SPiotr Jasiukajtis.check3:
274*25c28e83SPiotr Jasiukajtis	andcc	%l3,2,%g0
275*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.range3		! branch if > 2^19 pi
276*25c28e83SPiotr Jasiukajtis! delay slot
277*25c28e83SPiotr Jasiukajtis	fcmple32 %f36,%f8,%l3
278*25c28e83SPiotr Jasiukajtis
279*25c28e83SPiotr Jasiukajtis.checkprimary:
280*25c28e83SPiotr Jasiukajtis	fsmuld	%f0,%f0,%f30
281*25c28e83SPiotr Jasiukajtis	fstod	%f0,%f0
282*25c28e83SPiotr Jasiukajtis
283*25c28e83SPiotr Jasiukajtis	fsmuld	%f2,%f2,%f32
284*25c28e83SPiotr Jasiukajtis	fstod	%f2,%f2
285*25c28e83SPiotr Jasiukajtis	and	%l0,%l1,%o4
286*25c28e83SPiotr Jasiukajtis
287*25c28e83SPiotr Jasiukajtis	fsmuld	%f4,%f4,%f34
288*25c28e83SPiotr Jasiukajtis	fstod	%f4,%f4
289*25c28e83SPiotr Jasiukajtis
290*25c28e83SPiotr Jasiukajtis	fsmuld	%f6,%f6,%f36
291*25c28e83SPiotr Jasiukajtis	fstod	%f6,%f6
292*25c28e83SPiotr Jasiukajtis	and	%l2,%l3,%o5
293*25c28e83SPiotr Jasiukajtis
294*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f54,%f10
295*25c28e83SPiotr Jasiukajtis	and	%o4,%o5,%o5
296*25c28e83SPiotr Jasiukajtis
297*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f54,%f12
298*25c28e83SPiotr Jasiukajtis	andcc	%o5,2,%g0
299*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.medium		! branch if any argument is > pi/4
300*25c28e83SPiotr Jasiukajtis! delay slot
301*25c28e83SPiotr Jasiukajtis	nop
302*25c28e83SPiotr Jasiukajtis
303*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f54,%f14
304*25c28e83SPiotr Jasiukajtis
305*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f54,%f16
306*25c28e83SPiotr Jasiukajtis
307*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f48,%f20
308*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f52,%f10
309*25c28e83SPiotr Jasiukajtis
310*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f48,%f22
311*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f52,%f12
312*25c28e83SPiotr Jasiukajtis
313*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f48,%f24
314*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f52,%f14
315*25c28e83SPiotr Jasiukajtis
316*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f48,%f26
317*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f52,%f16
318*25c28e83SPiotr Jasiukajtis
319*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
320*25c28e83SPiotr Jasiukajtis	faddd	%f20,%f46,%f20
321*25c28e83SPiotr Jasiukajtis
322*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
323*25c28e83SPiotr Jasiukajtis	faddd	%f22,%f46,%f22
324*25c28e83SPiotr Jasiukajtis
325*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
326*25c28e83SPiotr Jasiukajtis	faddd	%f24,%f46,%f24
327*25c28e83SPiotr Jasiukajtis
328*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
329*25c28e83SPiotr Jasiukajtis	faddd	%f26,%f46,%f26
330*25c28e83SPiotr Jasiukajtis
331*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f30,%f30
332*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f50,%f10
333*25c28e83SPiotr Jasiukajtis
334*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f32,%f32
335*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f50,%f12
336*25c28e83SPiotr Jasiukajtis
337*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f34,%f34
338*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f50,%f14
339*25c28e83SPiotr Jasiukajtis
340*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f36,%f36
341*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f50,%f16
342*25c28e83SPiotr Jasiukajtis
343*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
344*25c28e83SPiotr Jasiukajtis
345*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
346*25c28e83SPiotr Jasiukajtis
347*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
348*25c28e83SPiotr Jasiukajtis
349*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
350*25c28e83SPiotr Jasiukajtis
351*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f20,%f10
352*25c28e83SPiotr Jasiukajtis
353*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f22,%f12
354*25c28e83SPiotr Jasiukajtis
355*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f24,%f14
356*25c28e83SPiotr Jasiukajtis
357*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
358*25c28e83SPiotr Jasiukajtis	bg,pt	%icc,.start
359*25c28e83SPiotr Jasiukajtis! delay slot
360*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f26,%f16
361*25c28e83SPiotr Jasiukajtis
362*25c28e83SPiotr Jasiukajtis	ba,pt	%icc,.end
363*25c28e83SPiotr Jasiukajtis! delay slot
364*25c28e83SPiotr Jasiukajtis	nop
365*25c28e83SPiotr Jasiukajtis
366*25c28e83SPiotr Jasiukajtis
367*25c28e83SPiotr Jasiukajtis	.align	16
368*25c28e83SPiotr Jasiukajtis.medium:
369*25c28e83SPiotr Jasiukajtis	fmuld	%f0,%f56,%f10
370*25c28e83SPiotr Jasiukajtis
371*25c28e83SPiotr Jasiukajtis	fmuld	%f2,%f56,%f12
372*25c28e83SPiotr Jasiukajtis
373*25c28e83SPiotr Jasiukajtis	fmuld	%f4,%f56,%f14
374*25c28e83SPiotr Jasiukajtis
375*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f56,%f16
376*25c28e83SPiotr Jasiukajtis
377*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f58,%f10
378*25c28e83SPiotr Jasiukajtis	st	%f11,[%fp+n0]
379*25c28e83SPiotr Jasiukajtis
380*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f58,%f12
381*25c28e83SPiotr Jasiukajtis	st	%f13,[%fp+n1]
382*25c28e83SPiotr Jasiukajtis
383*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f58,%f14
384*25c28e83SPiotr Jasiukajtis	st	%f15,[%fp+n2]
385*25c28e83SPiotr Jasiukajtis
386*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f58,%f16
387*25c28e83SPiotr Jasiukajtis	st	%f17,[%fp+n3]
388*25c28e83SPiotr Jasiukajtis
389*25c28e83SPiotr Jasiukajtis	fsubd	%f10,%f58,%f10
390*25c28e83SPiotr Jasiukajtis
391*25c28e83SPiotr Jasiukajtis	fsubd	%f12,%f58,%f12
392*25c28e83SPiotr Jasiukajtis
393*25c28e83SPiotr Jasiukajtis	fsubd	%f14,%f58,%f14
394*25c28e83SPiotr Jasiukajtis
395*25c28e83SPiotr Jasiukajtis	fsubd	%f16,%f58,%f16
396*25c28e83SPiotr Jasiukajtis
397*25c28e83SPiotr Jasiukajtis	fmuld	%f10,%f60,%f20
398*25c28e83SPiotr Jasiukajtis	ld	[%fp+n0],%l0
399*25c28e83SPiotr Jasiukajtis
400*25c28e83SPiotr Jasiukajtis	fmuld	%f12,%f60,%f22
401*25c28e83SPiotr Jasiukajtis	ld	[%fp+n1],%l1
402*25c28e83SPiotr Jasiukajtis
403*25c28e83SPiotr Jasiukajtis	fmuld	%f14,%f60,%f24
404*25c28e83SPiotr Jasiukajtis	ld	[%fp+n2],%l2
405*25c28e83SPiotr Jasiukajtis
406*25c28e83SPiotr Jasiukajtis	fmuld	%f16,%f60,%f26
407*25c28e83SPiotr Jasiukajtis	ld	[%fp+n3],%l3
408*25c28e83SPiotr Jasiukajtis
409*25c28e83SPiotr Jasiukajtis	fsubd	%f0,%f20,%f0
410*25c28e83SPiotr Jasiukajtis	fmuld	%f10,%f62,%f30
411*25c28e83SPiotr Jasiukajtis	add	%l0,1,%l0
412*25c28e83SPiotr Jasiukajtis
413*25c28e83SPiotr Jasiukajtis	fsubd	%f2,%f22,%f2
414*25c28e83SPiotr Jasiukajtis	fmuld	%f12,%f62,%f32
415*25c28e83SPiotr Jasiukajtis	add	%l1,1,%l1
416*25c28e83SPiotr Jasiukajtis
417*25c28e83SPiotr Jasiukajtis	fsubd	%f4,%f24,%f4
418*25c28e83SPiotr Jasiukajtis	fmuld	%f14,%f62,%f34
419*25c28e83SPiotr Jasiukajtis	add	%l2,1,%l2
420*25c28e83SPiotr Jasiukajtis
421*25c28e83SPiotr Jasiukajtis	fsubd	%f6,%f26,%f6
422*25c28e83SPiotr Jasiukajtis	fmuld	%f16,%f62,%f36
423*25c28e83SPiotr Jasiukajtis	add	%l3,1,%l3
424*25c28e83SPiotr Jasiukajtis
425*25c28e83SPiotr Jasiukajtis	fsubd	%f0,%f30,%f0
426*25c28e83SPiotr Jasiukajtis
427*25c28e83SPiotr Jasiukajtis	fsubd	%f2,%f32,%f2
428*25c28e83SPiotr Jasiukajtis
429*25c28e83SPiotr Jasiukajtis	fsubd	%f4,%f34,%f4
430*25c28e83SPiotr Jasiukajtis
431*25c28e83SPiotr Jasiukajtis	fsubd	%f6,%f36,%f6
432*25c28e83SPiotr Jasiukajtis	andcc	%l0,1,%g0
433*25c28e83SPiotr Jasiukajtis
434*25c28e83SPiotr Jasiukajtis	fmuld	%f0,%f0,%f30
435*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case8
436*25c28e83SPiotr Jasiukajtis! delay slot
437*25c28e83SPiotr Jasiukajtis	andcc	%l1,1,%g0
438*25c28e83SPiotr Jasiukajtis
439*25c28e83SPiotr Jasiukajtis	fmuld	%f2,%f2,%f32
440*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case4
441*25c28e83SPiotr Jasiukajtis! delay slot
442*25c28e83SPiotr Jasiukajtis	andcc	%l2,1,%g0
443*25c28e83SPiotr Jasiukajtis
444*25c28e83SPiotr Jasiukajtis	fmuld	%f4,%f4,%f34
445*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case2
446*25c28e83SPiotr Jasiukajtis! delay slot
447*25c28e83SPiotr Jasiukajtis	andcc	%l3,1,%g0
448*25c28e83SPiotr Jasiukajtis
449*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f6,%f36
450*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case1
451*25c28e83SPiotr Jasiukajtis! delay slot
452*25c28e83SPiotr Jasiukajtis	nop
453*25c28e83SPiotr Jasiukajtis
454*25c28e83SPiotr Jasiukajtis!.case0:
455*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f54,%f10		! cos(x0)
456*25c28e83SPiotr Jasiukajtis	fzero	%f0
457*25c28e83SPiotr Jasiukajtis
458*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f54,%f12		! cos(x1)
459*25c28e83SPiotr Jasiukajtis	fzero	%f2
460*25c28e83SPiotr Jasiukajtis
461*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f54,%f14		! cos(x2)
462*25c28e83SPiotr Jasiukajtis	fzero	%f4
463*25c28e83SPiotr Jasiukajtis
464*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f54,%f16		! cos(x3)
465*25c28e83SPiotr Jasiukajtis	fzero	%f6
466*25c28e83SPiotr Jasiukajtis
467*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f48,%f20
468*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f52,%f10
469*25c28e83SPiotr Jasiukajtis
470*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f48,%f22
471*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f52,%f12
472*25c28e83SPiotr Jasiukajtis
473*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f48,%f24
474*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f52,%f14
475*25c28e83SPiotr Jasiukajtis
476*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f48,%f26
477*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f52,%f16
478*25c28e83SPiotr Jasiukajtis
479*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
480*25c28e83SPiotr Jasiukajtis	faddd	%f20,%f46,%f20
481*25c28e83SPiotr Jasiukajtis
482*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
483*25c28e83SPiotr Jasiukajtis	faddd	%f22,%f46,%f22
484*25c28e83SPiotr Jasiukajtis
485*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
486*25c28e83SPiotr Jasiukajtis	faddd	%f24,%f46,%f24
487*25c28e83SPiotr Jasiukajtis
488*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
489*25c28e83SPiotr Jasiukajtis	faddd	%f26,%f46,%f26
490*25c28e83SPiotr Jasiukajtis
491*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f30,%f30
492*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f50,%f10
493*25c28e83SPiotr Jasiukajtis	and	%l0,2,%g1
494*25c28e83SPiotr Jasiukajtis
495*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f32,%f32
496*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f50,%f12
497*25c28e83SPiotr Jasiukajtis	and	%l1,2,%g5
498*25c28e83SPiotr Jasiukajtis
499*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f34,%f34
500*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f50,%f14
501*25c28e83SPiotr Jasiukajtis	and	%l2,2,%o4
502*25c28e83SPiotr Jasiukajtis
503*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f36,%f36
504*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f50,%f16
505*25c28e83SPiotr Jasiukajtis	and	%l3,2,%o5
506*25c28e83SPiotr Jasiukajtis
507*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
508*25c28e83SPiotr Jasiukajtis	fmovrdnz %g1,%f28,%f0
509*25c28e83SPiotr Jasiukajtis
510*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
511*25c28e83SPiotr Jasiukajtis	fmovrdnz %g5,%f28,%f2
512*25c28e83SPiotr Jasiukajtis
513*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
514*25c28e83SPiotr Jasiukajtis	fmovrdnz %o4,%f28,%f4
515*25c28e83SPiotr Jasiukajtis
516*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
517*25c28e83SPiotr Jasiukajtis	fmovrdnz %o5,%f28,%f6
518*25c28e83SPiotr Jasiukajtis
519*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f20,%f10
520*25c28e83SPiotr Jasiukajtis
521*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f22,%f12
522*25c28e83SPiotr Jasiukajtis
523*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f24,%f14
524*25c28e83SPiotr Jasiukajtis
525*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f26,%f16
526*25c28e83SPiotr Jasiukajtis
527*25c28e83SPiotr Jasiukajtis	fxor	%f10,%f0,%f10
528*25c28e83SPiotr Jasiukajtis
529*25c28e83SPiotr Jasiukajtis	fxor	%f12,%f2,%f12
530*25c28e83SPiotr Jasiukajtis
531*25c28e83SPiotr Jasiukajtis	fxor	%f14,%f4,%f14
532*25c28e83SPiotr Jasiukajtis
533*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
534*25c28e83SPiotr Jasiukajtis	bg,pt	%icc,.start
535*25c28e83SPiotr Jasiukajtis! delay slot
536*25c28e83SPiotr Jasiukajtis	fxor	%f16,%f6,%f16
537*25c28e83SPiotr Jasiukajtis
538*25c28e83SPiotr Jasiukajtis	ba,pt	%icc,.end
539*25c28e83SPiotr Jasiukajtis! delay slot
540*25c28e83SPiotr Jasiukajtis	nop
541*25c28e83SPiotr Jasiukajtis
542*25c28e83SPiotr Jasiukajtis	.align	16
543*25c28e83SPiotr Jasiukajtis.case1:
544*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f54,%f10		! cos(x0)
545*25c28e83SPiotr Jasiukajtis	fzero	%f0
546*25c28e83SPiotr Jasiukajtis
547*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f54,%f12		! cos(x1)
548*25c28e83SPiotr Jasiukajtis	fzero	%f2
549*25c28e83SPiotr Jasiukajtis
550*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f54,%f14		! cos(x2)
551*25c28e83SPiotr Jasiukajtis	fzero	%f4
552*25c28e83SPiotr Jasiukajtis
553*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f44,%f16		! sin(x3)
554*25c28e83SPiotr Jasiukajtis
555*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f48,%f20
556*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f52,%f10
557*25c28e83SPiotr Jasiukajtis
558*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f48,%f22
559*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f52,%f12
560*25c28e83SPiotr Jasiukajtis
561*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f48,%f24
562*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f52,%f14
563*25c28e83SPiotr Jasiukajtis
564*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f40,%f26
565*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f42,%f16
566*25c28e83SPiotr Jasiukajtis
567*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
568*25c28e83SPiotr Jasiukajtis	faddd	%f20,%f46,%f20
569*25c28e83SPiotr Jasiukajtis
570*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
571*25c28e83SPiotr Jasiukajtis	faddd	%f22,%f46,%f22
572*25c28e83SPiotr Jasiukajtis
573*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
574*25c28e83SPiotr Jasiukajtis	faddd	%f24,%f46,%f24
575*25c28e83SPiotr Jasiukajtis
576*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f36,%f36
577*25c28e83SPiotr Jasiukajtis	faddd	%f26,%f46,%f26
578*25c28e83SPiotr Jasiukajtis
579*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f30,%f30
580*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f50,%f10
581*25c28e83SPiotr Jasiukajtis	and	%l0,2,%g1
582*25c28e83SPiotr Jasiukajtis
583*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f32,%f32
584*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f50,%f12
585*25c28e83SPiotr Jasiukajtis	and	%l1,2,%g5
586*25c28e83SPiotr Jasiukajtis
587*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f34,%f34
588*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f50,%f14
589*25c28e83SPiotr Jasiukajtis	and	%l2,2,%o4
590*25c28e83SPiotr Jasiukajtis
591*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
592*25c28e83SPiotr Jasiukajtis	fzero	%f36
593*25c28e83SPiotr Jasiukajtis
594*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
595*25c28e83SPiotr Jasiukajtis	fmovrdnz %g1,%f28,%f0
596*25c28e83SPiotr Jasiukajtis
597*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
598*25c28e83SPiotr Jasiukajtis	fmovrdnz %g5,%f28,%f2
599*25c28e83SPiotr Jasiukajtis
600*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
601*25c28e83SPiotr Jasiukajtis	fmovrdnz %o4,%f28,%f4
602*25c28e83SPiotr Jasiukajtis
603*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f26,%f16
604*25c28e83SPiotr Jasiukajtis	and	%l3,2,%o5
605*25c28e83SPiotr Jasiukajtis
606*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f20,%f10
607*25c28e83SPiotr Jasiukajtis
608*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f22,%f12
609*25c28e83SPiotr Jasiukajtis
610*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f24,%f14
611*25c28e83SPiotr Jasiukajtis
612*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f16,%f16
613*25c28e83SPiotr Jasiukajtis	fmovrdnz %o5,%f28,%f36
614*25c28e83SPiotr Jasiukajtis
615*25c28e83SPiotr Jasiukajtis	fxor	%f10,%f0,%f10
616*25c28e83SPiotr Jasiukajtis
617*25c28e83SPiotr Jasiukajtis	fxor	%f12,%f2,%f12
618*25c28e83SPiotr Jasiukajtis
619*25c28e83SPiotr Jasiukajtis	fxor	%f14,%f4,%f14
620*25c28e83SPiotr Jasiukajtis
621*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
622*25c28e83SPiotr Jasiukajtis	bg,pt	%icc,.start
623*25c28e83SPiotr Jasiukajtis! delay slot
624*25c28e83SPiotr Jasiukajtis	fxor	%f16,%f36,%f16
625*25c28e83SPiotr Jasiukajtis
626*25c28e83SPiotr Jasiukajtis	ba,pt	%icc,.end
627*25c28e83SPiotr Jasiukajtis! delay slot
628*25c28e83SPiotr Jasiukajtis	nop
629*25c28e83SPiotr Jasiukajtis
630*25c28e83SPiotr Jasiukajtis	.align	16
631*25c28e83SPiotr Jasiukajtis.case2:
632*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f6,%f36
633*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case3
634*25c28e83SPiotr Jasiukajtis! delay slot
635*25c28e83SPiotr Jasiukajtis	nop
636*25c28e83SPiotr Jasiukajtis
637*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f54,%f10		! cos(x0)
638*25c28e83SPiotr Jasiukajtis	fzero	%f0
639*25c28e83SPiotr Jasiukajtis
640*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f54,%f12		! cos(x1)
641*25c28e83SPiotr Jasiukajtis	fzero	%f2
642*25c28e83SPiotr Jasiukajtis
643*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f44,%f14		! sin(x2)
644*25c28e83SPiotr Jasiukajtis
645*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f54,%f16		! cos(x3)
646*25c28e83SPiotr Jasiukajtis	fzero	%f6
647*25c28e83SPiotr Jasiukajtis
648*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f48,%f20
649*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f52,%f10
650*25c28e83SPiotr Jasiukajtis
651*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f48,%f22
652*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f52,%f12
653*25c28e83SPiotr Jasiukajtis
654*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f40,%f24
655*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f42,%f14
656*25c28e83SPiotr Jasiukajtis
657*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f48,%f26
658*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f52,%f16
659*25c28e83SPiotr Jasiukajtis
660*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
661*25c28e83SPiotr Jasiukajtis	faddd	%f20,%f46,%f20
662*25c28e83SPiotr Jasiukajtis
663*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
664*25c28e83SPiotr Jasiukajtis	faddd	%f22,%f46,%f22
665*25c28e83SPiotr Jasiukajtis
666*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f34,%f34
667*25c28e83SPiotr Jasiukajtis	faddd	%f24,%f46,%f24
668*25c28e83SPiotr Jasiukajtis
669*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
670*25c28e83SPiotr Jasiukajtis	faddd	%f26,%f46,%f26
671*25c28e83SPiotr Jasiukajtis
672*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f30,%f30
673*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f50,%f10
674*25c28e83SPiotr Jasiukajtis	and	%l0,2,%g1
675*25c28e83SPiotr Jasiukajtis
676*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f32,%f32
677*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f50,%f12
678*25c28e83SPiotr Jasiukajtis	and	%l1,2,%g5
679*25c28e83SPiotr Jasiukajtis
680*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
681*25c28e83SPiotr Jasiukajtis	fzero	%f34
682*25c28e83SPiotr Jasiukajtis
683*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f36,%f36
684*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f50,%f16
685*25c28e83SPiotr Jasiukajtis	and	%l3,2,%o5
686*25c28e83SPiotr Jasiukajtis
687*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
688*25c28e83SPiotr Jasiukajtis	fmovrdnz %g1,%f28,%f0
689*25c28e83SPiotr Jasiukajtis
690*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
691*25c28e83SPiotr Jasiukajtis	fmovrdnz %g5,%f28,%f2
692*25c28e83SPiotr Jasiukajtis
693*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f24,%f14
694*25c28e83SPiotr Jasiukajtis	and	%l2,2,%o4
695*25c28e83SPiotr Jasiukajtis
696*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
697*25c28e83SPiotr Jasiukajtis	fmovrdnz %o5,%f28,%f6
698*25c28e83SPiotr Jasiukajtis
699*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f20,%f10
700*25c28e83