17c478bdstevel@tonic-gate/*
27c478bdstevel@tonic-gate * CDDL HEADER START
37c478bdstevel@tonic-gate *
47c478bdstevel@tonic-gate * The contents of this file are subject to the terms of the
57c478bdstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only
67c478bdstevel@tonic-gate * (the "License").  You may not use this file except in compliance
77c478bdstevel@tonic-gate * with the License.
87c478bdstevel@tonic-gate *
97c478bdstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bdstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
117c478bdstevel@tonic-gate * See the License for the specific language governing permissions
127c478bdstevel@tonic-gate * and limitations under the License.
137c478bdstevel@tonic-gate *
147c478bdstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
157c478bdstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bdstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
177c478bdstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
187c478bdstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bdstevel@tonic-gate *
207c478bdstevel@tonic-gate * CDDL HEADER END
217c478bdstevel@tonic-gate */
227c478bdstevel@tonic-gate/*
237c478bdstevel@tonic-gate * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
247c478bdstevel@tonic-gate * Use is subject to license terms.
257c478bdstevel@tonic-gate */
267c478bdstevel@tonic-gate
277c478bdstevel@tonic-gate#pragma ident	"%Z%%M%	%I%	%E% SMI"
287c478bdstevel@tonic-gate
297c478bdstevel@tonic-gate	.section	".text",#alloc,#execinstr
307c478bdstevel@tonic-gate	.file	"mont_mulf_asm_v9.s"
317c478bdstevel@tonic-gate
327c478bdstevel@tonic-gate	.section	".rodata",#alloc
337c478bdstevel@tonic-gate	.align	8
347c478bdstevel@tonic-gate!
357c478bdstevel@tonic-gate! CONSTANT POOL
367c478bdstevel@tonic-gate!
377c478bdstevel@tonic-gateTwoTo16:
387c478bdstevel@tonic-gate	.word	1089470464
397c478bdstevel@tonic-gate	.word	0
407c478bdstevel@tonic-gate	.type	TwoTo16,#object
417c478bdstevel@tonic-gate	.size	TwoTo16,8
427c478bdstevel@tonic-gate!
437c478bdstevel@tonic-gate! CONSTANT POOL
447c478bdstevel@tonic-gate!
457c478bdstevel@tonic-gateTwoToMinus16:
467c478bdstevel@tonic-gate	.word	1055916032
477c478bdstevel@tonic-gate	.word	0
487c478bdstevel@tonic-gate	.type	TwoToMinus16,#object
497c478bdstevel@tonic-gate	.size	TwoToMinus16,8
507c478bdstevel@tonic-gate!
517c478bdstevel@tonic-gate! CONSTANT POOL
527c478bdstevel@tonic-gate!
537c478bdstevel@tonic-gateZero:
547c478bdstevel@tonic-gate	.word	0
557c478bdstevel@tonic-gate	.word	0
567c478bdstevel@tonic-gate	.type	Zero,#object
577c478bdstevel@tonic-gate	.size	Zero,8
587c478bdstevel@tonic-gate!
597c478bdstevel@tonic-gate! CONSTANT POOL
607c478bdstevel@tonic-gate!
617c478bdstevel@tonic-gateTwoTo32:
627c478bdstevel@tonic-gate	.word	1106247680
637c478bdstevel@tonic-gate	.word	0
647c478bdstevel@tonic-gate	.type	TwoTo32,#object
657c478bdstevel@tonic-gate	.size	TwoTo32,8
667c478bdstevel@tonic-gate!
677c478bdstevel@tonic-gate! CONSTANT POOL
687c478bdstevel@tonic-gate!
697c478bdstevel@tonic-gateTwoToMinus32:
707c478bdstevel@tonic-gate	.word	1039138816
717c478bdstevel@tonic-gate	.word	0
727c478bdstevel@tonic-gate	.type	TwoToMinus32,#object
737c478bdstevel@tonic-gate	.size	TwoToMinus32,8
747c478bdstevel@tonic-gate
757c478bdstevel@tonic-gate	.section	".text",#alloc,#execinstr
767c478bdstevel@tonic-gate/* 000000	   0 */		.register	%g3,#scratch
777c478bdstevel@tonic-gate/* 000000	     */		.register	%g2,#scratch
787c478bdstevel@tonic-gate/* 000000	   0 */		.align	8
797c478bdstevel@tonic-gate/* 000000	     */		.skip	24
807c478bdstevel@tonic-gate/* 0x0018	     */		.align	4
817c478bdstevel@tonic-gate! FILE mont_mulf.c
827c478bdstevel@tonic-gate
837c478bdstevel@tonic-gate!    1		      !/*
847c478bdstevel@tonic-gate!    2		      ! * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
857c478bdstevel@tonic-gate!    3		      ! * Use is subject to license terms.
867c478bdstevel@tonic-gate!    4		      ! */
877c478bdstevel@tonic-gate!    6		      !#pragma ident	"%Z%%M%	%I%	%E% SMI"
887c478bdstevel@tonic-gate!    9		      !/*
897c478bdstevel@tonic-gate!   10		      ! * If compiled without -DRF_INLINE_MACROS then needs -lm at link time
907c478bdstevel@tonic-gate!   11		      ! * If compiled with -DRF_INLINE_MACROS then needs conv.il at compile time
917c478bdstevel@tonic-gate!   12		      ! * (i.e. cc <compileer_flags> -DRF_INLINE_MACROS conv.il mont_mulf.c )
927c478bdstevel@tonic-gate!   13		      ! */
937c478bdstevel@tonic-gate!   15		      !#include <sys/types.h>
947c478bdstevel@tonic-gate!   16		      !#include <math.h>
957c478bdstevel@tonic-gate!   18		      !static const double TwoTo16 = 65536.0;
967c478bdstevel@tonic-gate!   19		      !static const double TwoToMinus16 = 1.0/65536.0;
977c478bdstevel@tonic-gate!   20		      !static const double Zero = 0.0;
987c478bdstevel@tonic-gate!   21		      !static const double TwoTo32 = 65536.0 * 65536.0;
997c478bdstevel@tonic-gate!   22		      !static const double TwoToMinus32 = 1.0 / (65536.0 * 65536.0);
1007c478bdstevel@tonic-gate!   24		      !#ifdef RF_INLINE_MACROS
1017c478bdstevel@tonic-gate!   26		      !double upper32(double);
1027c478bdstevel@tonic-gate!   27		      !double lower32(double, double);
1037c478bdstevel@tonic-gate!   28		      !double mod(double, double, double);
1047c478bdstevel@tonic-gate!   30		      !#else
1057c478bdstevel@tonic-gate!   32		      !static double
1067c478bdstevel@tonic-gate!   33		      !upper32(double x)
1077c478bdstevel@tonic-gate!   34		      !{
1087c478bdstevel@tonic-gate!   35		      !	return (floor(x * TwoToMinus32));
1097c478bdstevel@tonic-gate!   36		      !}
1107c478bdstevel@tonic-gate!   39		      !/* ARGSUSED */
1117c478bdstevel@tonic-gate!   40		      !static double
1127c478bdstevel@tonic-gate!   41		      !lower32(double x, double y)
1137c478bdstevel@tonic-gate!   42		      !{
1147c478bdstevel@tonic-gate!   43		      !	return (x - TwoTo32 * floor(x * TwoToMinus32));
1157c478bdstevel@tonic-gate!   44		      !}
1167c478bdstevel@tonic-gate!   46		      !static double
1177c478bdstevel@tonic-gate!   47		      !mod(double x, double oneoverm, double m)
1187c478bdstevel@tonic-gate!   48		      !{
1197c478bdstevel@tonic-gate!   49		      !	return (x - m * floor(x * oneoverm));
1207c478bdstevel@tonic-gate!   50		      !}
1217c478bdstevel@tonic-gate!   52		      !#endif
1227c478bdstevel@tonic-gate!   55		      !static void
1237c478bdstevel@tonic-gate!   56		      !cleanup(double *dt, int from, int tlen)
1247c478bdstevel@tonic-gate!   57		      !{
1257c478bdstevel@tonic-gate
1267c478bdstevel@tonic-gate!
1277c478bdstevel@tonic-gate! SUBROUTINE cleanup
1287c478bdstevel@tonic-gate!
1297c478bdstevel@tonic-gate! OFFSET    SOURCE LINE	LABEL	INSTRUCTION
1307c478bdstevel@tonic-gate
1317c478bdstevel@tonic-gate                       cleanup:
1327c478bdstevel@tonic-gate/* 000000	  57 */		or	%g0,%o7,%g3
1337c478bdstevel@tonic-gate/* 0x0004	   0 */		sethi	%hi(Zero),%o3
1347c478bdstevel@tonic-gate                       .L900000110:
1357c478bdstevel@tonic-gate/* 0x0008	  57 */		call	.+8
1367c478bdstevel@tonic-gate/* 0x000c	     */		sethi	/*X*/%hi(_GLOBAL_OFFSET_TABLE_-(.L900000110-.)),%g2
1377c478bdstevel@tonic-gate/* 0x0010	   0 */		add	%o3,%lo(Zero),%o3
1387c478bdstevel@tonic-gate/* 0x0014	  57 */		add	%g2,/*X*/%lo(_GLOBAL_OFFSET_TABLE_-(.L900000110-.)),%g2
1397c478bdstevel@tonic-gate/* 0x0018	     */		add	%g2,%o7,%o4
1407c478bdstevel@tonic-gate/* 0x001c	     */		or	%g0,%g3,%o7
1417c478bdstevel@tonic-gate/* 0x0020	   0 */		ldx	[%o4+%o3],%o5
1427c478bdstevel@tonic-gate/* 0x0024	  57 */		sra	%o1,0,%o3
1437c478bdstevel@tonic-gate/* 0x0028	     */		or	%g0,%o0,%o4
1447c478bdstevel@tonic-gate/* 0x002c	     */		sra	%o2,0,%o1
1457c478bdstevel@tonic-gate
1467c478bdstevel@tonic-gate!   58		      !	int i;
1477c478bdstevel@tonic-gate!   59		      !	double tmp, tmp1, x, x1;
1487c478bdstevel@tonic-gate!   61		      !	tmp = tmp1 = Zero;
1497c478bdstevel@tonic-gate!   63		      !	for (i = 2 * from; i < 2 * tlen; i += 2) {
1507c478bdstevel@tonic-gate
1517c478bdstevel@tonic-gate/* 0x0030	  63 */		sll	%o3,1,%g2
1527c478bdstevel@tonic-gate/* 0x0034	  61 */		ldd	[%o5],%f12
1537c478bdstevel@tonic-gate/* 0x0038	  63 */		sll	%o1,1,%o1
1547c478bdstevel@tonic-gate/* 0x003c	  57 */		add	%g2,1,%o2
1557c478bdstevel@tonic-gate/* 0x0040	  63 */		cmp	%g2,%o1
1567c478bdstevel@tonic-gate/* 0x0044	     */		bge,pt	%icc,.L77000145
1577c478bdstevel@tonic-gate/* 0x0048	     */		fmovd	%f12,%f10
1587c478bdstevel@tonic-gate
1597c478bdstevel@tonic-gate!   64		      !		x = dt[i];
1607c478bdstevel@tonic-gate
1617c478bdstevel@tonic-gate/* 0x004c	  64 */		sra	%g2,0,%o0
1627c478bdstevel@tonic-gate/* 0x0050	  57 */		sub	%o1,1,%o3
1637c478bdstevel@tonic-gate                       .L900000111:
1647c478bdstevel@tonic-gate/* 0x0054	  64 */		sllx	%o0,3,%o0
1657c478bdstevel@tonic-gate
1667c478bdstevel@tonic-gate!   65		      !		x1 = dt[i + 1];
1677c478bdstevel@tonic-gate!   66		      !		dt[i] = lower32(x, Zero) + tmp;
1687c478bdstevel@tonic-gate
1697c478bdstevel@tonic-gate/* 0x0058	  66 */		ldd	[%o5],%f4
1707c478bdstevel@tonic-gate
1717c478bdstevel@tonic-gate!   67		      !		dt[i + 1] = lower32(x1, Zero) + tmp1;
1727c478bdstevel@tonic-gate!   68		      !		tmp = upper32(x);
1737c478bdstevel@tonic-gate!   69		      !		tmp1 = upper32(x1);
1747c478bdstevel@tonic-gate
1757c478bdstevel@tonic-gate/* 0x005c	  69 */		add	%g2,2,%g2
1767c478bdstevel@tonic-gate/* 0x0060	  65 */		sra	%o2,0,%o1
1777c478bdstevel@tonic-gate/* 0x0064	  64 */		ldd	[%o4+%o0],%f6
1787c478bdstevel@tonic-gate/* 0x0068	  69 */		add	%o2,2,%o2
1797c478bdstevel@tonic-gate/* 0x006c	  65 */		sllx	%o1,3,%o1
1807c478bdstevel@tonic-gate/* 0x0070	  69 */		cmp	%g2,%o3
1817c478bdstevel@tonic-gate/* 0x0074	  65 */		ldd	[%o4+%o1],%f8
1827c478bdstevel@tonic-gate/* 0x0078	     */		fdtox	%f6,%f0
1837c478bdstevel@tonic-gate/* 0x007c	     */		fdtox	%f8,%f2
1847c478bdstevel@tonic-gate/* 0x0080	     */		fmovs	%f4,%f0
1857c478bdstevel@tonic-gate/* 0x0084	     */		fmovs	%f4,%f2
1867c478bdstevel@tonic-gate/* 0x0088	     */		fxtod	%f0,%f0
1877c478bdstevel@tonic-gate/* 0x008c	     */		fdtox	%f6,%f4
1887c478bdstevel@tonic-gate/* 0x0090	     */		fxtod	%f2,%f2
1897c478bdstevel@tonic-gate/* 0x0094	     */		fdtox	%f8,%f6
1907c478bdstevel@tonic-gate/* 0x0098	  66 */		faddd	%f0,%f10,%f0
1917c478bdstevel@tonic-gate/* 0x009c	     */		std	%f0,[%o4+%o0]
1927c478bdstevel@tonic-gate/* 0x00a0	  67 */		faddd	%f2,%f12,%f0
1937c478bdstevel@tonic-gate/* 0x00a4	     */		std	%f0,[%o4+%o1]
1947c478bdstevel@tonic-gate/* 0x00a8	     */		fitod	%f4,%f10
1957c478bdstevel@tonic-gate/* 0x00ac	     */		fitod	%f6,%f12
1967c478bdstevel@tonic-gate/* 0x00b0	  69 */		ble,pt	%icc,.L900000111
1977c478bdstevel@tonic-gate/* 0x00b4	     */		sra	%g2,0,%o0
1987c478bdstevel@tonic-gate                       .L77000145:
1997c478bdstevel@tonic-gate/* 0x00b8	     */		retl	! Result =
2007c478bdstevel@tonic-gate/* 0x00bc	     */		nop
2017c478bdstevel@tonic-gate/* 0x00c0	   0 */		.type	cleanup,2
2027c478bdstevel@tonic-gate/* 0x00c0	   0 */		.size	cleanup,(.-cleanup)
2037c478bdstevel@tonic-gate
2047c478bdstevel@tonic-gate	.section	".text",#alloc,#execinstr
2057c478bdstevel@tonic-gate/* 000000	   0 */		.align	4
2067c478bdstevel@tonic-gate
2077c478bdstevel@tonic-gate!   70		      !	}
2087c478bdstevel@tonic-gate!   71		      !}
2097c478bdstevel@tonic-gate!   74		      !/* ARGSUSED */
2107c478bdstevel@tonic-gate!   75		      !void
2117c478bdstevel@tonic-gate!   76		      !conv_d16_to_i32(uint32_t *i32, double *d16, int64_t *tmp, int ilen)
2127c478bdstevel@tonic-gate!   77		      !{
2137c478bdstevel@tonic-gate
2147c478bdstevel@tonic-gate!
2157c478bdstevel@tonic-gate! SUBROUTINE conv_d16_to_i32
2167c478bdstevel@tonic-gate!
2177c478bdstevel@tonic-gate! OFFSET    SOURCE LINE	LABEL	INSTRUCTION
2187c478bdstevel@tonic-gate
2197c478bdstevel@tonic-gate                       	.global conv_d16_to_i32
2207c478bdstevel@tonic-gate                       conv_d16_to_i32:
2217c478bdstevel@tonic-gate/* 000000	  77 */		save	%sp,-208,%sp
2227c478bdstevel@tonic-gate
2237c478bdstevel@tonic-gate!   78		      !	int i;
2247c478bdstevel@tonic-gate!   79		      !	int64_t t, t1,		/* using int64_t and not uint64_t */
2257c478bdstevel@tonic-gate!   80		      !		a, b, c, d;	/* because more efficient code is */
2267c478bdstevel@tonic-gate!   81		      !				/* generated this way, and there  */
2277c478bdstevel@tonic-gate!   82		      !				/* is no overflow  */
2287c478bdstevel@tonic-gate!   83		      !	t1 = 0;
2297c478bdstevel@tonic-gate!   84		      !	a = (int64_t)d16[0];
2307c478bdstevel@tonic-gate
2317c478bdstevel@tonic-gate/* 0x0004	  84 */		ldd	[%i1],%f0
2327c478bdstevel@tonic-gate/* 0x0008	  77 */		sra	%i3,0,%g5
2337c478bdstevel@tonic-gate/* 0x000c	     */		or	%g0,%i0,%l1
2347c478bdstevel@tonic-gate
2357c478bdstevel@tonic-gate!   85		      !	b = (int64_t)d16[1];
2367c478bdstevel@tonic-gate
2377c478bdstevel@tonic-gate/* 0x0010	  85 */		ldd	[%i1+8],%f2
2387c478bdstevel@tonic-gate
2397c478bdstevel@tonic-gate!   86		      !	for (i = 0; i < ilen - 1; i++) {
2407c478bdstevel@tonic-gate
2417c478bdstevel@tonic-gate/* 0x0014	  86 */		sub	%g5,1,%g2
2427c478bdstevel@tonic-gate/* 0x0018	  83 */		or	%g0,0,%l7
2437c478bdstevel@tonic-gate/* 0x001c	  84 */		fdtox	%f0,%f0
2447c478bdstevel@tonic-gate/* 0x0020	     */		std	%f0,[%sp+2247]
2457c478bdstevel@tonic-gate/* 0x0024	  86 */		cmp	%g2,0
2467c478bdstevel@tonic-gate/* 0x0028	  85 */		fdtox	%f2,%f0
2477c478bdstevel@tonic-gate/* 0x002c	     */		std	%f0,[%sp+2239]
2487c478bdstevel@tonic-gate/* 0x0030	  86 */		or	%g0,0,%o5
2497c478bdstevel@tonic-gate/* 0x0034	     */		sub	%g5,1,%g4
2507c478bdstevel@tonic-gate/* 0x0038	  77 */		or	%g0,-1,%g3
2517c478bdstevel@tonic-gate/* 0x003c	     */		srl	%g3,0,%l4
2527c478bdstevel@tonic-gate/* 0x0040	     */		sub	%g5,2,%l0
2537c478bdstevel@tonic-gate/* 0x0044	     */		or	%g0,%i1,%l2
2547c478bdstevel@tonic-gate/* 0x0048	     */		or	%g0,%i0,%o7
2557c478bdstevel@tonic-gate/* 0x004c	  84 */		ldx	[%sp+2247],%o1
2567c478bdstevel@tonic-gate/* 0x0050	  77 */		or	%g0,2,%o2
2577c478bdstevel@tonic-gate
2587c478bdstevel@tonic-gate!   87		      !		c = (int64_t)d16[2 * i + 2];
2597c478bdstevel@tonic-gate!   88		      !		t1 += a & 0xffffffff;
2607c478bdstevel@tonic-gate!   89		      !		t = (a >> 32);
2617c478bdstevel@tonic-gate!   90		      !		d = (int64_t)d16[2 * i + 3];
2627c478bdstevel@tonic-gate!   91		      !		t1 += (b & 0xffff) << 16;
2637c478bdstevel@tonic-gate!   92		      !		t += (b >> 16) + (t1 >> 32);
2647c478bdstevel@tonic-gate!   93		      !		i32[i] = t1 & 0xffffffff;
2657c478bdstevel@tonic-gate!   94		      !		t1 = t;
2667c478bdstevel@tonic-gate!   95		      !		a = c;
2677c478bdstevel@tonic-gate!   96		      !		b = d;
2687c478bdstevel@tonic-gate
2697c478bdstevel@tonic-gate/* 0x0054	  96 */		or	%g0,8,%i2
2707c478bdstevel@tonic-gate/* 0x0058	  85 */		ldx	[%sp+2239],%o0
2717c478bdstevel@tonic-gate/* 0x005c	  86 */		ble,pt	%icc,.L900000212
2727c478bdstevel@tonic-gate/* 0x0060	 101 */		sethi	%hi(0xfc00),%g2
2737c478bdstevel@tonic-gate/* 0x0064	  77 */		sethi	%hi(0xfc00),%g2
2747c478bdstevel@tonic-gate/* 0x0068	  86 */		cmp	%g4,7
2757c478bdstevel@tonic-gate/* 0x006c	  77 */		add	%g2,1023,%l3
2767c478bdstevel@tonic-gate/* 0x0070	  86 */		bl,pn	%icc,.L77000169
2777c478bdstevel@tonic-gate/* 0x0074	     */		or	%g0,3,%g5
2787c478bdstevel@tonic-gate/* 0x0078	  87 */		ldd	[%i1+16],%f0
2797c478bdstevel@tonic-gate/* 0x007c	     */		or	%g0,32,%g5
2807c478bdstevel@tonic-gate/* 0x0080	  90 */		or	%g0,40,%g4
2817c478bdstevel@tonic-gate/* 0x0084	     */		ldd	[%i1+24],%f2
2827c478bdstevel@tonic-gate/* 0x0088	  91 */		and	%o0,%l3,%g3
2837c478bdstevel@tonic-gate/* 0x008c	  88 */		and	%o1,%l4,%l6
2847c478bdstevel@tonic-gate/* 0x0090	  92 */		srax	%o0,16,%o0
2857c478bdstevel@tonic-gate/* 0x0094	  87 */		fdtox	%f0,%f0
2867c478bdstevel@tonic-gate/* 0x0098	     */		std	%f0,[%sp+2231]
2877c478bdstevel@tonic-gate/* 0x009c	  86 */		sub	%l0,3,%o2
2887c478bdstevel@tonic-gate/* 0x00a0	  90 */		fdtox	%f2,%f0
2897c478bdstevel@tonic-gate/* 0x00a4	     */		std	%f0,[%sp+2223]
2907c478bdstevel@tonic-gate/* 0x00a8	     */		ldd	[%i1+%g4],%f2
2917c478bdstevel@tonic-gate/* 0x00ac	     */		or	%g0,56,%g4
2927c478bdstevel@tonic-gate/* 0x00b0	  96 */		or	%g0,3,%o5
2937c478bdstevel@tonic-gate/* 0x00b4	  87 */		ldd	[%i1+%g5],%f0
2947c478bdstevel@tonic-gate/* 0x00b8	  91 */		sllx	%g3,16,%g5
2957c478bdstevel@tonic-gate/* 0x00bc	  87 */		or	%g0,48,%g3
2967c478bdstevel@tonic-gate/* 0x00c0	  86 */		add	%l6,%g5,%l7
2977c478bdstevel@tonic-gate/* 0x00c4	  90 */		fdtox	%f2,%f2
2987c478bdstevel@tonic-gate/* 0x00c8	  87 */		ldx	[%sp+2231],%g2
2997c478bdstevel@tonic-gate/* 0x00cc	  92 */		srax	%l7,32,%o3
3007c478bdstevel@tonic-gate/* 0x00d0	  87 */		fdtox	%f0,%f0
3017c478bdstevel@tonic-gate/* 0x00d4	     */		std	%f0,[%sp+2231]
3027c478bdstevel@tonic-gate/* 0x00d8	     */		ldd	[%i1+%g3],%f0
3037c478bdstevel@tonic-gate/* 0x00dc	  89 */		srax	%g2,32,%l6
3047c478bdstevel@tonic-gate/* 0x00e0	  96 */		or	%g0,9,%i1
3057c478bdstevel@tonic-gate/* 0x00e4	  89 */		srax	%o1,32,%g3
3067c478bdstevel@tonic-gate/* 0x00e8	  88 */		and	%g2,%l4,%g2
3077c478bdstevel@tonic-gate/* 0x00ec	  90 */		ldx	[%sp+2223],%g5
3087c478bdstevel@tonic-gate/* 0x00f0	     */		std	%f2,[%sp+2223]
3097c478bdstevel@tonic-gate/* 0x00f4	     */		ldd	[%l2+%g4],%f2
3107c478bdstevel@tonic-gate/* 0x00f8	  92 */		srax	%g5,16,%i0
3117c478bdstevel@tonic-gate/* 0x00fc	  91 */		and	%g5,%l3,%g4
3127c478bdstevel@tonic-gate/* 0x0100	  87 */		ldx	[%sp+2231],%l5
3137c478bdstevel@tonic-gate                       .L900000207:
3147c478bdstevel@tonic-gate/* 0x0104	  87 */		sra	%i2,0,%g5
3157c478bdstevel@tonic-gate/* 0x0108	  92 */		add	%o0,%o3,%o0
3167c478bdstevel@tonic-gate/* 0x010c	  90 */		ldx	[%sp+2223],%o1
3177c478bdstevel@tonic-gate/* 0x0110	  87 */		fdtox	%f0,%f0
3187c478bdstevel@tonic-gate/* 0x0114	     */		std	%f0,[%sp+2231]
3197c478bdstevel@tonic-gate/* 0x0118	     */		sllx	%g5,3,%g5
3207c478bdstevel@tonic-gate/* 0x011c	  92 */		add	%g3,%o0,%o0
3217c478bdstevel@tonic-gate/* 0x0120	  90 */		sra	%i1,0,%g3
3227c478bdstevel@tonic-gate/* 0x0124	  93 */		and	%l7,%l4,%o3
3237c478bdstevel@tonic-gate/* 0x0128	  87 */		ldd	[%l2+%g5],%f0
3247c478bdstevel@tonic-gate/* 0x012c	  90 */		fdtox	%f2,%f2
3257c478bdstevel@tonic-gate/* 0x0130	     */		std	%f2,[%sp+2223]
3267c478bdstevel@tonic-gate/* 0x0134	     */		sllx	%g3,3,%g3
3277c478bdstevel@tonic-gate/* 0x0138	  96 */		add	%i1,2,%g5
3287c478bdstevel@tonic-gate/* 0x013c	  91 */		sllx	%g4,16,%o4
3297c478bdstevel@tonic-gate/* 0x0140	  96 */		add	%i2,2,%g4
3307c478bdstevel@tonic-gate/* 0x0144	  90 */		ldd	[%l2+%g3],%f2
3317c478bdstevel@tonic-gate/* 0x0148	  93 */		st	%o3,[%o7]
3327c478bdstevel@tonic-gate/* 0x014c	  86 */		add	%g2,%o4,%g2
3337c478bdstevel@tonic-gate/* 0x0150	  96 */		add	%o5,3,%o5
3347c478bdstevel@tonic-gate/* 0x0154	  86 */		add	%g2,%o0,%g3
3357c478bdstevel@tonic-gate/* 0x0158	  89 */		srax	%l5,32,%g2
3367c478bdstevel@tonic-gate/* 0x015c	  88 */		and	%l5,%l4,%l5
3377c478bdstevel@tonic-gate/* 0x0160	  92 */		srax	%g3,32,%o4
3387c478bdstevel@tonic-gate/* 0x0164	  87 */		ldx	[%sp+2231],%o0
3397c478bdstevel@tonic-gate/* 0x0168	  92 */		srax	%o1,16,%o3
3407c478bdstevel@tonic-gate/* 0x016c	  91 */		and	%o1,%l3,%l7
3417c478bdstevel@tonic-gate/* 0x0170	  87 */		sra	%g4,0,%o1
3427c478bdstevel@tonic-gate/* 0x0174	  92 */		add	%i0,%o4,%i0
3437c478bdstevel@tonic-gate/* 0x0178	  90 */		ldx	[%sp+2223],%o4
3447c478bdstevel@tonic-gate/* 0x017c	  87 */		fdtox	%f0,%f0
3457c478bdstevel@tonic-gate/* 0x0180	     */		std	%f0,[%sp+2231]
3467c478bdstevel@tonic-gate/* 0x0184	     */		sllx	%o1,3,%o1
3477c478bdstevel@tonic-gate/* 0x0188	  92 */		add	%l6,%i0,%i0
3487c478bdstevel@tonic-gate/* 0x018c	  90 */		sra	%g5,0,%l6
3497c478bdstevel@tonic-gate/* 0x0190	  93 */		and	%g3,%l4,%g3
3507c478bdstevel@tonic-gate/* 0x0194	  87 */		ldd	[%l2+%o1],%f0
3517c478bdstevel@tonic-gate/* 0x0198	  90 */		fdtox	%f2,%f2
3527c478bdstevel@tonic-gate/* 0x019c	     */		std	%f2,[%sp+2223]
3537c478bdstevel@tonic-gate/* 0x01a0	     */		sllx	%l6,3,%o1
3547c478bdstevel@tonic-gate/* 0x01a4	  96 */		add	%i1,4,%g5
3557c478bdstevel@tonic-gate/* 0x01a8	  91 */		sllx	%l7,16,%l6
3567c478bdstevel@tonic-gate/* 0x01ac	  96 */		add	%i2,4,%g4
3577c478bdstevel@tonic-gate/* 0x01b0	  90 */		ldd	[%l2+%o1],%f2
3587c478bdstevel@tonic-gate/* 0x01b4	  93 */		st	%g3,[%o7+4]
3597c478bdstevel@tonic-gate/* 0x01b8	  86 */		add	%l5,%l6,%g3
3607c478bdstevel@tonic-gate/* 0x01bc	  96 */		cmp	%o5,%o2
3617c478bdstevel@tonic-gate/* 0x01c0	  86 */		add	%g3,%i0,%l7
3627c478bdstevel@tonic-gate/* 0x01c4	  89 */		srax	%o0,32,%g3
3637c478bdstevel@tonic-gate/* 0x01c8	  88 */		and	%o0,%l4,%l6
3647c478bdstevel@tonic-gate/* 0x01cc	  92 */		srax	%l7,32,%o1
3657c478bdstevel@tonic-gate/* 0x01d0	  87 */		ldx	[%sp+2231],%l5
3667c478bdstevel@tonic-gate/* 0x01d4	  92 */		srax	%o4,16,%o0
3677c478bdstevel@tonic-gate/* 0x01d8	  91 */		and	%o4,%l3,%o4
3687c478bdstevel@tonic-gate/* 0x01dc	  87 */		sra	%g4,0,%i0
3697c478bdstevel@tonic-gate/* 0x01e0	  92 */		add	%o3,%o1,%o3
3707c478bdstevel@tonic-gate/* 0x01e4	  90 */		ldx	[%sp+2223],%o1
3717c478bdstevel@tonic-gate/* 0x01e8	  87 */		fdtox	%f0,%f0
3727c478bdstevel@tonic-gate/* 0x01ec	     */		std	%f0,[%sp+2231]
3737c478bdstevel@tonic-gate/* 0x01f0	     */		sllx	%i0,3,%i0
3747c478bdstevel@tonic-gate/* 0x01f4	  92 */		add	%g2,%o3,%g2
3757c478bdstevel@tonic-gate/* 0x01f8	  90 */		sra	%g5,0,%i1
3767c478bdstevel@tonic-gate/* 0x01fc	  93 */		and	%l7,%l4,%o3
3777c478bdstevel@tonic-gate/* 0x0200	  87 */		ldd	[%l2+%i0],%f0
3787c478bdstevel@tonic-gate/* 0x0204	  90 */		fdtox	%f2,%f2
3797c478bdstevel@tonic-gate/* 0x0208	     */		std	%f2,[%sp+2223]
3807c478bdstevel@tonic-gate/* 0x020c	     */		sllx	%i1,3,%l7
3817c478bdstevel@tonic-gate/* 0x0210	  96 */		add	%g5,2,%i1
3827c478bdstevel@tonic-gate/* 0x0214	  91 */		sllx	%o4,16,%g5
3837c478bdstevel@tonic-gate/* 0x0218	  96 */		add	%i2,6,%i2
3847c478bdstevel@tonic-gate/* 0x021c	  90 */		ldd	[%l2+%l7],%f2
3857c478bdstevel@tonic-gate/* 0x0220	  93 */		st	%o3,[%o7+8]
3867c478bdstevel@tonic-gate/* 0x0224	  86 */		add	%l6,%g5,%g4
3877c478bdstevel@tonic-gate/* 0x0228	  96 */		add	%o7,12,%o7
3887c478bdstevel@tonic-gate/* 0x022c	  86 */		add	%g4,%g2,%l7
3897c478bdstevel@tonic-gate/* 0x0230	  89 */		srax	%l5,32,%l6
3907c478bdstevel@tonic-gate/* 0x0234	  88 */		and	%l5,%l4,%g2
3917c478bdstevel@tonic-gate/* 0x0238	  92 */		srax	%l7,32,%o3
3927c478bdstevel@tonic-gate/* 0x023c	  87 */		ldx	[%sp+2231],%l5
3937c478bdstevel@tonic-gate/* 0x0240	  92 */		srax	%o1,16,%i0
3947c478bdstevel@tonic-gate/* 0x0244	  96 */		ble,pt	%icc,.L900000207
3957c478bdstevel@tonic-gate/* 0x0248	     */		and	%o1,%l3,%g4
3967c478bdstevel@tonic-gate                       .L900000210:
3977c478bdstevel@tonic-gate/* 0x024c	  91 */		sllx	%g4,16,%g4
3987c478bdstevel@tonic-gate/* 0x0250	  90 */		ldx	[%sp+2223],%o1
3997c478bdstevel@tonic-gate/* 0x0254	  92 */		add	%o0,%o3,%g5
4007c478bdstevel@tonic-gate/* 0x0258	     */		add	%g3,%g5,%g3
4017c478bdstevel@tonic-gate/* 0x025c	  86 */		add	%g2,%g4,%g2
4027c478bdstevel@tonic-gate/* 0x0260	  90 */		fdtox	%f2,%f2
4037c478bdstevel@tonic-gate/* 0x0264	     */		sra	%i1,0,%g4
4047c478bdstevel@tonic-gate/* 0x0268	     */		std	%f2,[%sp+2223]
4057c478bdstevel@tonic-gate/* 0x026c	  86 */		add	%g2,%g3,%o2
4067c478bdstevel@tonic-gate/* 0x0270	  87 */		sra	%i2,0,%g2
4077c478bdstevel@tonic-gate/* 0x0274	  91 */		and	%o1,%l3,%g5
4087c478bdstevel@tonic-gate/* 0x0278	  87 */		fdtox	%f0,%f0
4097c478bdstevel@tonic-gate/* 0x027c	  92 */		srax	%o2,32,%g3
4107c478bdstevel@tonic-gate/* 0x0280	  87 */		std	%f0,[%sp+2231]
4117c478bdstevel@tonic-gate/* 0x0284	  88 */		and	%l5,%l4,%o0
4127c478bdstevel@tonic-gate/* 0x0288	  87 */		sllx	%g2,3,%g2
4137c478bdstevel@tonic-gate/* 0x028c	  92 */		add	%i0,%g3,%g3
4147c478bdstevel@tonic-gate/* 0x0290	  90 */		sllx	%g4,3,%g4
4157c478bdstevel@tonic-gate/* 0x0294	  87 */		ldd	[%l2+%g2],%f0
4167c478bdstevel@tonic-gate/* 0x0298	  92 */		add	%l6,%g3,%g2
4177c478bdstevel@tonic-gate/* 0x029c	  91 */		sllx	%g5,16,%g3
4187c478bdstevel@tonic-gate/* 0x02a0	  90 */		ldd	[%l2+%g4],%f2
4197c478bdstevel@tonic-gate/* 0x02a4	  93 */		and	%l7,%l4,%g5
4207c478bdstevel@tonic-gate/* 0x02a8	  92 */		srax	%o1,16,%o1
4217c478bdstevel@tonic-gate/* 0x02ac	  90 */		ldx	[%sp+2223],%o3
4227c478bdstevel@tonic-gate/* 0x02b0	  86 */		add	%o0,%g3,%g3
4237c478bdstevel@tonic-gate/* 0x02b4	  89 */		srax	%l5,32,%l5
4247c478bdstevel@tonic-gate/* 0x02b8	  87 */		ldx	[%sp+2231],%o4
4257c478bdstevel@tonic-gate/* 0x02bc	  86 */		add	%g3,%g2,%g2
4267c478bdstevel@tonic-gate/* 0x02c0	  92 */		srax	%g2,32,%o0
4277c478bdstevel@tonic-gate/* 0x02c4	  93 */		st	%g5,[%o7]
4287c478bdstevel@tonic-gate/* 0x02c8	  91 */		and	%o3,%l3,%g3
4297c478bdstevel@tonic-gate/* 0x02cc	     */		sllx	%g3,16,%g3
4307c478bdstevel@tonic-gate/* 0x02d0	  88 */		and	%o4,%l4,%g4
4317c478bdstevel@tonic-gate/* 0x02d4	  87 */		fdtox	%f0,%f0
4327c478bdstevel@tonic-gate/* 0x02d8	     */		std	%f0,[%sp+2231]
4337c478bdstevel@tonic-gate/* 0x02dc	  92 */		add	%o1,%o0,%o0
4347c478bdstevel@tonic-gate/* 0x02e0	  86 */		add	%g4,%g3,%g3
4357c478bdstevel@tonic-gate/* 0x02e4	  93 */		and	%o2,%l4,%g4
4367c478bdstevel@tonic-gate/* 0x02e8	     */		st	%g4,[%o7+4]
4377c478bdstevel@tonic-gate/* 0x02ec	  92 */		add	%l5,%o0,%l5
4387c478bdstevel@tonic-gate/* 0x02f0	     */		srax	%o3,16,%g4
4397c478bdstevel@tonic-gate/* 0x02f4	  87 */		ldx	[%sp+2231],%o1
4407c478bdstevel@tonic-gate/* 0x02f8	  86 */		add	%g3,%l5,%g3
4417c478bdstevel@tonic-gate/* 0x02fc	  92 */		srax	%g3,32,%o3
4427c478bdstevel@tonic-gate/* 0x0300	  90 */		fdtox	%f2,%f2
4437c478bdstevel@tonic-gate/* 0x0304	     */		std	%f2,[%sp+2223]
4447c478bdstevel@tonic-gate/* 0x0308	  96 */		add	%o7,16,%o7
4457c478bdstevel@tonic-gate/* 0x030c	  93 */		and	%g2,%l4,%g2
4467c478bdstevel@tonic-gate/* 0x0310	     */		st	%g2,[%o7-8]
4477c478bdstevel@tonic-gate/* 0x0314	  92 */		add	%g4,%o3,%g4
4487c478bdstevel@tonic-gate/* 0x0318	  96 */		add	%o5,1,%o5
4497c478bdstevel@tonic-gate/* 0x031c	  89 */		srax	%o4,32,%o3
4507c478bdstevel@tonic-gate/* 0x0320	  90 */		ldx	[%sp+2223],%o0
4517c478bdstevel@tonic-gate/* 0x0324	  93 */		and	%g3,%l4,%g2
4527c478bdstevel@tonic-gate/* 0x0328	  96 */		cmp	%o5,%l0
4537c478bdstevel@tonic-gate/* 0x032c	  93 */		st	%g2,[%o7-4]
4547c478bdstevel@tonic-gate/* 0x0330	  96 */		bg,pn	%icc,.L77000162
4557c478bdstevel@tonic-gate/* 0x0334	     */		add	%o3,%g4,%l7
4567c478bdstevel@tonic-gate/* 0x0338	     */		add	%i1,2,%g5
4577c478bdstevel@tonic-gate/* 0x033c	     */		add	%i2,2,%o2
4587c478bdstevel@tonic-gate                       .L77000169:
4597c478bdstevel@tonic-gate/* 0x0340	  87 */		sra	%o2,0,%g2
4607c478bdstevel@tonic-gate                       .L900000211:
4617c478bdstevel@tonic-gate/* 0x0344	  90 */		sra	%g5,0,%g4
4627c478bdstevel@tonic-gate/* 0x0348	  91 */		and	%o0,%l3,%o3
4637c478bdstevel@tonic-gate/* 0x034c	  87 */		sllx	%g2,3,%g2
4647c478bdstevel@tonic-gate/* 0x0350	  88 */		and	%o1,%l4,%g3
4657c478bdstevel@tonic-gate/* 0x0354	  90 */		sllx	%g4,3,%g4
4667c478bdstevel@tonic-gate/* 0x0358	  87 */		ldd	[%l2+%g2],%f0
4677c478bdstevel@tonic-gate/* 0x035c	  88 */		add	%l7,%g3,%g3
4687c478bdstevel@tonic-gate/* 0x0360	  90 */		ldd	[%l2+%g4],%f2
4697c478bdstevel@tonic-gate/* 0x0364	  91 */		sllx	%o3,16,%g2
4707c478bdstevel@tonic-gate/* 0x0368	  96 */		add	%o5,1,%o5
4717c478bdstevel@tonic-gate/* 0x036c	  87 */		fdtox	%f0,%f0
4727c478bdstevel@tonic-gate/* 0x0370	     */		std	%f0,[%sp+2231]
4737c478bdstevel@tonic-gate/* 0x0374	  92 */		srax	%o0,16,%o3
4747c478bdstevel@tonic-gate/* 0x0378	  90 */		fdtox	%f2,%f0
4757c478bdstevel@tonic-gate/* 0x037c	  89 */		srax	%o1,32,%o1
4767c478bdstevel@tonic-gate/* 0x0380	  90 */		std	%f0,[%sp+2223]
4777c478bdstevel@tonic-gate/* 0x0384	  91 */		add	%g3,%g2,%g2
4787c478bdstevel@tonic-gate/* 0x0388	  96 */		add	%o2,2,%o2
4797c478bdstevel@tonic-gate/* 0x038c	  92 */		srax	%g2,32,%o0
4807c478bdstevel@tonic-gate/* 0x0390	  93 */		and	%g2,%l4,%g3
4817c478bdstevel@tonic-gate/* 0x0394	     */		st	%g3,[%o7]
4827c478bdstevel@tonic-gate/* 0x0398	  87 */		ldx	[%sp+2231],%g2
4837c478bdstevel@tonic-gate/* 0x039c	  92 */		add	%o3,%o0,%o0
4847c478bdstevel@tonic-gate/* 0x03a0	  96 */		add	%g5,2,%g5
4857c478bdstevel@tonic-gate/* 0x03a4	  92 */		add	%o1,%o0,%l7
4867c478bdstevel@tonic-gate/* 0x03a8	  96 */		add	%o7,4,%o7
4877c478bdstevel@tonic-gate/* 0x03ac	  90 */		ldx	[%sp+2223],%g4
4887c478bdstevel@tonic-gate/* 0x03b0	  95 */		or	%g0,%g2,%o1
4897c478bdstevel@tonic-gate/* 0x03b4	  96 */		cmp	%o5,%l0
4907c478bdstevel@tonic-gate/* 0x03b8	     */		or	%g0,%g4,%o0
4917c478bdstevel@tonic-gate/* 0x03bc	     */		ble,pt	%icc,.L900000211
4927c478bdstevel@tonic-gate/* 0x03c0	     */		sra	%o2,0,%g2
4937c478bdstevel@tonic-gate
4947c478bdstevel@tonic-gate!   97		      !	}
4957c478bdstevel@tonic-gate!   98		      !	t1 += a & 0xffffffff;
4967c478bdstevel@tonic-gate!   99		      !	t = (a >> 32);
4977c478bdstevel@tonic-gate!  100		      !	t1 += (b & 0xffff) << 16;
4987c478bdstevel@tonic-gate!  101		      !	i32[i] = t1 & 0xffffffff;
4997c478bdstevel@tonic-gate
5007c478bdstevel@tonic-gate                       .L77000162:
5017c478bdstevel@tonic-gate/* 0x03c4	 101 */		sethi	%hi(0xfc00),%g2
5027c478bdstevel@tonic-gate                       .L900000212:
5037c478bdstevel@tonic-gate/* 0x03c8	 101 */		or	%g0,-1,%g3
5047c478bdstevel@tonic-gate/* 0x03cc	     */		srl	%g3,0,%g3
5057c478bdstevel@tonic-gate/* 0x03d0	     */		add	%g2,1023,%g2
5067c478bdstevel@tonic-gate/* 0x03d4	     */		and	%o1,%g3,%g4
5077c478bdstevel@tonic-gate/* 0x03d8	     */		and	%o0,%g2,%g2
5087c478bdstevel@tonic-gate/* 0x03dc	     */		sllx	%g2,16,%g2
5097c478bdstevel@tonic-gate/* 0x03e0	     */		add	%l7,%g4,%g4
5107c478bdstevel@tonic-gate/* 0x03e4	     */		sra	%o5,0,%g5
5117c478bdstevel@tonic-gate/* 0x03e8	     */		add	%g4,%g2,%g4
5127c478bdstevel@tonic-gate/* 0x03ec	     */		sllx	%g5,2,%g2
5137c478bdstevel@tonic-gate/* 0x03f0	     */		and	%g4,%g3,%g3
5147c478bdstevel@tonic-gate/* 0x03f4	     */		st	%g3,[%l1+%g2]
5157c478bdstevel@tonic-gate/* 0x03f8	     */		ret	! Result =
5167c478bdstevel@tonic-gate/* 0x03fc	     */		restore	%g0,%g0,%g0
5177c478bdstevel@tonic-gate/* 0x0400	   0 */		.type	conv_d16_to_i32,2
5187c478bdstevel@tonic-gate/* 0x0400	   0 */		.size	conv_d16_to_i32,(.-conv_d16_to_i32)
5197c478bdstevel@tonic-gate
5207c478bdstevel@tonic-gate	.section	".text",#alloc,#execinstr
5217c478bdstevel@tonic-gate/* 000000	   0 */		.align	8
5227c478bdstevel@tonic-gate!
5237c478bdstevel@tonic-gate! CONSTANT POOL
5247c478bdstevel@tonic-gate!
5257c478bdstevel@tonic-gate                       ___const_seg_900000301:
5267c478bdstevel@tonic-gate/* 000000	   0 */		.word	1127219200,0
5277c478bdstevel@tonic-gate/* 0x0008	   0 */		.type	___const_seg_900000301,1
5287c478bdstevel@tonic-gate/* 0x0008	   0 */		.size	___const_seg_900000301,(.-___const_seg_900000301)
5297c478bdstevel@tonic-gate/* 0x0008	   0 */		.align	8
5307c478bdstevel@tonic-gate/* 0x0008	     */		.skip	24
5317c478bdstevel@tonic-gate/* 0x0020	     */		.align	4
5327c478bdstevel@tonic-gate
5337c478bdstevel@tonic-gate!  102		      !}
5347c478bdstevel@tonic-gate!  104		      !void
5357c478bdstevel@tonic-gate!  105		      !conv_i32_to_d32(double *d32, uint32_t *i32, int len)
5367c478bdstevel@tonic-gate!  106		      !{
5377c478bdstevel@tonic-gate
5387c478bdstevel@tonic-gate!
5397c478bdstevel@tonic-gate! SUBROUTINE conv_i32_to_d32
5407c478bdstevel@tonic-gate!
5417c478bdstevel@tonic-gate! OFFSET    SOURCE LINE	LABEL	INSTRUCTION
5427c478bdstevel@tonic-gate
5437c478bdstevel@tonic-gate                       	.global conv_i32_to_d32
5447c478bdstevel@tonic-gate                       conv_i32_to_d32:
5457c478bdstevel@tonic-gate/* 000000	 106 */		or	%g0,%o7,%g2
5467c478bdstevel@tonic-gate
5477c478bdstevel@tonic-gate!  107		      !	int i;
5487c478bdstevel@tonic-gate!  109		      !#pragma pipeloop(0)
5497c478bdstevel@tonic-gate!  110		      !	for (i = 0; i < len; i++)
5507c478bdstevel@tonic-gate!  111		      !		d32[i] = (double)(i32[i]);
5517c478bdstevel@tonic-gate
5527c478bdstevel@tonic-gate/* 0x0004	 111 */		sethi	%hi(___const_seg_900000301),%g1
5537c478bdstevel@tonic-gate                       .L900000309:
5547c478bdstevel@tonic-gate/* 0x0008	 106 */		call	.+8
5557c478bdstevel@tonic-gate/* 0x000c	     */		sethi	/*X*/%hi(_GLOBAL_OFFSET_TABLE_-(.L900000309-.)),%o4
5567c478bdstevel@tonic-gate/* 0x0010	     */		add	%o4,/*X*/%lo(_GLOBAL_OFFSET_TABLE_-(.L900000309-.)),%o4
5577c478bdstevel@tonic-gate/* 0x0014	     */		sra	%o2,0,%o2
5587c478bdstevel@tonic-gate/* 0x0018	     */		add	%o4,%o7,%o5
5597c478bdstevel@tonic-gate/* 0x001c	 110 */		cmp	%o2,0
5607c478bdstevel@tonic-gate/* 0x0020	     */		ble,pt	%icc,.L77000181
5617c478bdstevel@tonic-gate/* 0x0024	     */		or	%g0,%g2,%o7
5627c478bdstevel@tonic-gate/* 0x0028	     */		sub	%o2,1,%o4
5637c478bdstevel@tonic-gate/* 0x002c	 111 */		add	%g1,%lo(___const_seg_900000301),%o2
5647c478bdstevel@tonic-gate/* 0x0030	     */		ldx	[%o5+%o2],%o5
5657c478bdstevel@tonic-gate/* 0x0034	 110 */		add	%o4,1,%o3
5667c478bdstevel@tonic-gate/* 0x0038	     */		cmp	%o3,9
5677c478bdstevel@tonic-gate/* 0x003c	     */		bl,pn	%icc,.L77000185
5687c478bdstevel@tonic-gate/* 0x0040	     */		or	%g0,0,%o2
5697c478bdstevel@tonic-gate/* 0x0044	 111 */		ld	[%o1],%f3
5707c478bdstevel@tonic-gate/* 0x0048	 110 */		sub	%o4,4,%o3
5717c478bdstevel@tonic-gate/* 0x004c	 111 */		or	%g0,4,%o2
5727c478bdstevel@tonic-gate/* 0x0050	     */		ld	[%o1+12],%f9
5737c478bdstevel@tonic-gate/* 0x0054	     */		ldd	[%o5],%f6
5747c478bdstevel@tonic-gate/* 0x0058	     */		ld	[%o1+8],%f11
5757c478bdstevel@tonic-gate/* 0x005c	     */		ld	[%o1+4],%f13
5767c478bdstevel@tonic-gate/* 0x0060	     */		fmovs	%f6,%f2
5777c478bdstevel@tonic-gate/* 0x0064	     */		add	%o1,16,%o1
5787c478bdstevel@tonic-gate                       .L900000305:
5797c478bdstevel@tonic-gate/* 0x0068	 111 */		ld	[%o1],%f1
5807c478bdstevel@tonic-gate/* 0x006c	     */		add	%o2,5,%o2
5817c478bdstevel@tonic-gate/* 0x0070	     */		add	%o1,20,%o1
5827c478bdstevel@tonic-gate/* 0x0074	     */		fsubd	%f2,%f6,%f2
5837c478bdstevel@tonic-gate/* 0x0078	     */		std	%f2,[%o0]
5847c478bdstevel@tonic-gate/* 0x007c	     */		cmp	%o2,%o3
5857c478bdstevel@tonic-gate/* 0x0080	     */		add	%o0,40,%o0
5867c478bdstevel@tonic-gate/* 0x0084	     */		fmovs	%f6,%f12
5877c478bdstevel@tonic-gate/* 0x0088	     */		fsubd	%f12,%f6,%f4
5887c478bdstevel@tonic-gate/* 0x008c	     */		ld	[%o1-16],%f3
5897c478bdstevel@tonic-gate/* 0x0090	     */		std	%f4,[%o0-32]
5907c478bdstevel@tonic-gate/* 0x0094	     */		fmovs	%f6,%f10
5917c478bdstevel@tonic-gate/* 0x0098	     */		fsubd	%f10,%f6,%f4
5927c478bdstevel@tonic-gate/* 0x009c	     */		ld	[%o1-12],%f13
5937c478bdstevel@tonic-gate/* 0x00a0	     */		std	%f4,[%o0-24]
5947c478bdstevel@tonic-gate/* 0x00a4	     */		fmovs	%f6,%f8
5957c478bdstevel@tonic-gate/* 0x00a8	     */		fsubd	%f8,%f6,%f4
5967c478bdstevel@tonic-gate/* 0x00ac	     */		ld	[%o1-8],%f11
5977c478bdstevel@tonic-gate/* 0x00b0	     */		std	%f4,[%o0-16]
5987c478bdstevel@tonic-gate/* 0x00b4	     */		fmovs	%f6,%f0
5997c478bdstevel@tonic-gate/* 0x00b8	     */		fsubd	%f0,%f6,%f0
6007c478bdstevel@tonic-gate/* 0x00bc	     */		ld	[%o1-4],%f9
6017c478bdstevel@tonic-gate/* 0x00c0	     */		std	%f0,[%o0-8]
6027c478bdstevel@tonic-gate/* 0x00c4	     */		ble,pt	%icc,.L900000305
6037c478bdstevel@tonic-gate/* 0x00c8	     */		fmovs	%f6,%f2
6047c478bdstevel@tonic-gate                       .L900000308:
6057c478bdstevel@tonic-gate/* 0x00cc	 111 */		fmovs	%f6,%f12
6067c478bdstevel@tonic-gate/* 0x00d0	     */		add	%o0,32,%o0
6077c478bdstevel@tonic-gate/* 0x00d4	     */		cmp	%o2,%o4
6087c478bdstevel@tonic-gate/* 0x00d8	     */		fmovs	%f6,%f10
6097c478bdstevel@tonic-gate/* 0x00dc	     */		fmovs	%f6,%f8
6107c478bdstevel@tonic-gate/* 0x00e0	     */		fsubd	%f2,%f6,%f0
6117c478bdstevel@tonic-gate/* 0x00e4	     */		std	%f0,[%o0-32]
6127c478bdstevel@tonic-gate/* 0x00e8	     */		fsubd	%f12,%f6,%f0
6137c478bdstevel@tonic-gate/* 0x00ec	     */		std	%f0,[%o0-24]
6147c478bdstevel@tonic-gate/* 0x00f0	     */		fsubd	%f10,%f6,%f0
6157c478bdstevel@tonic-gate/* 0x00f4	     */		std	%f0,[%o0-16]
6167c478bdstevel@tonic-gate/* 0x00f8	     */		fsubd	%f8,%f6,%f0
6177c478bdstevel@tonic-gate/* 0x00fc	     */		bg,pn	%icc,.L77000181
6187c478bdstevel@tonic-gate/* 0x0100	     */		std	%f0,[%o0-8]
6197c478bdstevel@tonic-gate                       .L77000185:
6207c478bdstevel@tonic-gate/* 0x0104	 111 */		ld	[%o1],%f1
6217c478bdstevel@tonic-gate                       .L900000310:
6227c478bdstevel@tonic-gate/* 0x0108	 111 */		ldd	[%o5],%f6
6237c478bdstevel@tonic-gate/* 0x010c	     */		add	%o2,1,%o2
6247c478bdstevel@tonic-gate/* 0x0110	     */		add	%o1,4,%o1
6257c478bdstevel@tonic-gate/* 0x0114	     */		cmp	%o2,%o4
6267c478bdstevel@tonic-gate/* 0x0118	     */		fmovs	%f6,%f0
6277c478bdstevel@tonic-gate/* 0x011c	     */		fsubd	%f0,%f6,%f0
6287c478bdstevel@tonic-gate/* 0x0120	     */		std	%f0,[%o0]
6297c478bdstevel@tonic-gate/* 0x0124	     */		add	%o0,8,%o0
6307c478bdstevel@tonic-gate/* 0x0128	     */		ble,a,pt	%icc,.L900000310
6317c478bdstevel@tonic-gate/* 0x012c	     */		ld	[%o1],%f1
6327c478bdstevel@tonic-gate                       .L77000181:
6337c478bdstevel@tonic-gate/* 0x0130	     */		retl	! Result =
6347c478bdstevel@tonic-gate/* 0x0134	     */		nop
6357c478bdstevel@tonic-gate/* 0x0138	   0 */		.type	conv_i32_to_d32,2
6367c478bdstevel@tonic-gate/* 0x0138	   0 */		.size	conv_i32_to_d32,(.-conv_i32_to_d32)
6377c478bdstevel@tonic-gate
6387c478bdstevel@tonic-gate	.section	".text",#alloc,#execinstr
6397c478bdstevel@tonic-gate/* 000000	   0 */		.align	8
6407c478bdstevel@tonic-gate!
6417c478bdstevel@tonic-gate! CONSTANT POOL
6427c478bdstevel@tonic-gate!
6437c478bdstevel@tonic-gate                       ___const_seg_900000401:
6447c478bdstevel@tonic-gate/* 000000	   0 */		.word	1127219200,0
6457c478bdstevel@tonic-gate/* 0x0008	   0 */		.type	___const_seg_900000401,1
6467c478bdstevel@tonic-gate/* 0x0008	   0 */		.size	___const_seg_900000401,(.-___const_seg_900000401)
6477c478bdstevel@tonic-gate/* 0x0008	   0 */		.align	8
6487c478bdstevel@tonic-gate/* 0x0008	     */		.skip	24
6497c478bdstevel@tonic-gate/* 0x0020	     */		.align	4
6507c478bdstevel@tonic-gate
6517c478bdstevel@tonic-gate!  112		      !}
6527c478bdstevel@tonic-gate!  115		      !void
6537c478bdstevel@tonic-gate!  116		      !conv_i32_to_d16(double *d16, uint32_t *i32, int len)
6547c478bdstevel@tonic-gate!  117		      !{
6557c478bdstevel@tonic-gate
6567c478bdstevel@tonic-gate!
6577c478bdstevel@tonic-gate! SUBROUTINE conv_i32_to_d16
6587c478bdstevel@tonic-gate!
6597c478bdstevel@tonic-gate! OFFSET    SOURCE LINE	LABEL	INSTRUCTION
6607c478bdstevel@tonic-gate
6617c478bdstevel@tonic-gate                       	.global conv_i32_to_d16
6627c478bdstevel@tonic-gate                       conv_i32_to_d16:
6637c478bdstevel@tonic-gate/* 000000	 117 */		save	%sp,-192,%sp
6647c478bdstevel@tonic-gate                       .L900000410:
6657c478bdstevel@tonic-gate/* 0x0004	 117 */		call	.+8
6667c478bdstevel@tonic-gate/* 0x0008	     */		sethi	/*X*/%hi(_GLOBAL_OFFSET_TABLE_-(.L900000410-.)),%g3
6677c478bdstevel@tonic-gate/* 0x000c	   0 */		sethi	%hi(___const_seg_900000401),%g2
6687c478bdstevel@tonic-gate/* 0x0010	 117 */		sra	%i2,0,%o0
6697c478bdstevel@tonic-gate/* 0x0014	     */		add	%g3,/*X*/%lo(_GLOBAL_OFFSET_TABLE_-(.L900000410-.)),%g3
6707c478bdstevel@tonic-gate
6717c478bdstevel@tonic-gate!  118		      !	int i;
6727c478bdstevel@tonic-gate!  119		      !	uint32_t a;
6737c478bdstevel@tonic-gate!  121		      !#pragma pipeloop(0)
6747c478bdstevel@tonic-gate!  122		      !	for (i = 0; i < len; i++) {
6757c478bdstevel@tonic-gate
6767c478bdstevel@tonic-gate/* 0x0018	 122 */		cmp	%o0,0
6777c478bdstevel@tonic-gate/* 0x001c	     */		ble,pt	%icc,.L77000197
6787c478bdstevel@tonic-gate/* 0x0020	     */		add	%g3,%o7,%g5
6797c478bdstevel@tonic-gate/* 0x0024	   0 */		add	%g2,%lo(___const_seg_900000401),%g2
6807c478bdstevel@tonic-gate/* 0x0028	 122 */		or	%g0,%o0,%g4
6817c478bdstevel@tonic-gate/* 0x002c	   0 */		ldx	[%g5+%g2],%o5
6827c478bdstevel@tonic-gate/* 0x0030	 122 */		sethi	%hi(0xfc00),%g3
6837c478bdstevel@tonic-gate/* 0x0034	     */		sub	%o0,1,%o2
6847c478bdstevel@tonic-gate/* 0x0038	     */		add	%g3,1023,%o3
6857c478bdstevel@tonic-gate/* 0x003c	 117 */		or	%g0,%i1,%o1
6867c478bdstevel@tonic-gate/* 0x0040	 122 */		or	%g0,0,%o0
6877c478bdstevel@tonic-gate/* 0x0044	     */		or	%g0,0,%g5
6887c478bdstevel@tonic-gate
6897c478bdstevel@tonic-gate!  123		      !		a = i32[i];
6907c478bdstevel@tonic-gate!  124		      !		d16[2 * i] = (double)(a & 0xffff);
6917c478bdstevel@tonic-gate
6927c478bdstevel@tonic-gate/* 0x0048	 124 */		ldd	[%o5],%f2
6937c478bdstevel@tonic-gate/* 0x004c	 122 */		cmp	%g4,4
6947c478bdstevel@tonic-gate/* 0x0050	     */		bl,pn	%icc,.L77000201
6957c478bdstevel@tonic-gate/* 0x0054	     */		or	%g0,1,%l0
6967c478bdstevel@tonic-gate/* 0x0058	 123 */		ld	[%i1],%g3
6977c478bdstevel@tonic-gate/* 0x005c	 124 */		fmovs	%f2,%f0
6987c478bdstevel@tonic-gate/* 0x0060	     */		or	%g0,0,%g4
6997c478bdstevel@tonic-gate
7007c478bdstevel@tonic-gate!  125		      !		d16[2 * i + 1] = (double)(a >> 16);
7017c478bdstevel@tonic-gate
7027c478bdstevel@tonic-gate/* 0x0064	 125 */		fmovs	%f2,%f4
7037c478bdstevel@tonic-gate/* 0x0068	     */		add	%i1,12,%o1
7047c478bdstevel@tonic-gate/* 0x006c	     */		or	%g0,3,%o0
7057c478bdstevel@tonic-gate/* 0x0070	 124 */		and	%g3,%o3,%g5
7067c478bdstevel@tonic-gate/* 0x0074	     */		st	%g5,[%sp+2227]
7077c478bdstevel@tonic-gate/* 0x0078	 125 */		or	%g0,2,%l1
7087c478bdstevel@tonic-gate/* 0x007c	     */		srl	%g3,16,%g3
7097c478bdstevel@tonic-gate/* 0x0080	     */		st	%g3,[%sp+2223]
7107c478bdstevel@tonic-gate/* 0x0084	     */		or	%g0,8,%g5
7117c478bdstevel@tonic-gate/* 0x0088	 123 */		ld	[%i1+4],%g3
7127c478bdstevel@tonic-gate/* 0x008c	 125 */		or	%g0,3,%l0
7137c478bdstevel@tonic-gate/* 0x0090	 124 */		and	%g3,%o3,%g2
7147c478bdstevel@tonic-gate/* 0x0094	     */		ld	[%sp+2227],%f1
7157c478bdstevel@tonic-gate/* 0x0098	 125 */		ld	[%sp+2223],%f5
7167c478bdstevel@tonic-gate/* 0x009c	 124 */		st	%g2,[%sp+2227]
7177c478bdstevel@tonic-gate/* 0x00a0	     */		fsubd	%f0,%f2,%f0
7187c478bdstevel@tonic-gate/* 0x00a4	 125 */		srl	%g3,16,%g2
7197c478bdstevel@tonic-gate/* 0x00a8	     */		st	%g2,[%sp+2223]
7207c478bdstevel@tonic-gate/* 0x00ac	 124 */		std	%f0,[%i0+%g4]
7217c478bdstevel@tonic-gate/* 0x00b0	 125 */		fsubd	%f4,%f2,%f0
7227c478bdstevel@tonic-gate/* 0x00b4	 123 */		ld	[%i1+8],%g2
7237c478bdstevel@tonic-gate/* 0x00b8	 125 */		std	%f0,[%i0+%g5]
7247c478bdstevel@tonic-gate                       .L900000406:
7257c478bdstevel@tonic-gate/* 0x00bc	 125 */		add	%o0,1,%o0
7267c478bdstevel@tonic-gate/* 0x00c0	     */		add	%o1,4,%o1
7277c478bdstevel@tonic-gate/* 0x00c4	 124 */		ld	[%sp+2227],%f1
7287c478bdstevel@tonic-gate/* 0x00c8	 125 */		cmp	%o0,%o2
7297c478bdstevel@tonic-gate/* 0x00cc	     */		ld	[%sp+2223],%f5
7307c478bdstevel@tonic-gate/* 0x00d0	 122 */		nop ! volatile
7317c478bdstevel@tonic-gate/* 0x00d4	     */		nop ! volatile
7327c478bdstevel@tonic-gate/* 0x00d8	     */		nop ! volatile
7337c478bdstevel@tonic-gate/* 0x00dc	 124 */		and	%g2,%o3,%g3
7347c478bdstevel@tonic-gate/* 0x00e0	 125 */		srl	%g2,16,%g2
7357c478bdstevel@tonic-gate/* 0x00e4	 124 */		st	%g3,[%sp+2227]
7367c478bdstevel@tonic-gate/* 0x00e8	 125 */		st	%g2,[%sp+2223]
7377c478bdstevel@tonic-gate/* 0x00ec	 123 */		ld	[%o1-4],%g2
7387c478bdstevel@tonic-gate/* 0x00f0	 125 */		fmovs	%f2,%f4
7397c478bdstevel@tonic-gate/* 0x00f4	     */		sra	%l0,0,%g4
7407c478bdstevel@tonic-gate/* 0x00f8	 124 */		fmovs	%f2,%f0
7417c478bdstevel@tonic-gate/* 0x00fc	     */		sra	%l1,0,%g3
7427c478bdstevel@tonic-gate/* 0x0100	     */		fsubd	%f0,%f2,%f0
7437c478bdstevel@tonic-gate/* 0x0104	     */		sllx	%g3,3,%g3
7447c478bdstevel@tonic-gate/* 0x0108	 125 */		sllx	%g4,3,%g4
7457c478bdstevel@tonic-gate/* 0x010c	 124 */		std	%f0,[%i0+%g3]
7467c478bdstevel@tonic-gate/* 0x0110	 125 */		add	%l1,2,%l1
7477c478bdstevel@tonic-gate/* 0x0114	     */		fsubd	%f4,%f2,%f0
7487c478bdstevel@tonic-gate/* 0x0118	     */		std	%f0,[%i0+%g4]
7497c478bdstevel@tonic-gate/* 0x011c	     */		ble,pt	%icc,.L900000406
7507c478bdstevel@tonic-gate/* 0x0120	     */		add	%l0,2,%l0
7517c478bdstevel@tonic-gate                       .L900000409:
7527c478bdstevel@tonic-gate/* 0x0124	 124 */		and	%g2,%o3,%g3
7537c478bdstevel@tonic-gate/* 0x0128	 125 */		ld	[%sp+2223],%f5
7547c478bdstevel@tonic-gate/* 0x012c	 124 */		fmovs	%f2,%f0
7557c478bdstevel@tonic-gate/* 0x0130	     */		ld	[%sp+2227],%f1
7567c478bdstevel@tonic-gate/* 0x0134	     */		sra	%l1,0,%g4
7577c478bdstevel@tonic-gate/* 0x0138	 125 */		add	%l1,2,%g5
7587c478bdstevel@tonic-gate/* 0x013c	     */		srl	%g2,16,%g2
7597c478bdstevel@tonic-gate/* 0x0140	     */		st	%g2,[%sp+2223]
7607c478bdstevel@tonic-gate/* 0x0144	     */		fmovs	%f2,%f4
7617c478bdstevel@tonic-gate/* 0x0148	 124 */		sllx	%g4,3,%g2
7627c478bdstevel@tonic-gate/* 0x014c	     */		st	%g3,[%sp+2227]
7637c478bdstevel@tonic-gate/* 0x0150	 125 */		add	%l0,2,%g4
7647c478bdstevel@tonic-gate/* 0x0154	 124 */		fsubd	%f0,%f2,%f0
7657c478bdstevel@tonic-gate/* 0x0158	     */		std	%f0,[%i0+%g2]
7667c478bdstevel@tonic-gate/* 0x015c	 125 */		sra	%l0,0,%g3
7677c478bdstevel@tonic-gate/* 0x0160	     */		fsubd	%f4,%f2,%f0
7687c478bdstevel@tonic-gate/* 0x0164	     */		sllx	%g3,3,%g3
7697c478bdstevel@tonic-gate/* 0x0168	     */		std	%f0,[%i0+%g3]
7707c478bdstevel@tonic-gate/* 0x016c	 124 */		sra	%g5,0,%g2
7717c478bdstevel@tonic-gate/* 0x0170	     */		ld	[%sp+2227],%f1
7727c478bdstevel@tonic-gate/* 0x0174	 125 */		sra	%g4,0,%g3
7737c478bdstevel@tonic-gate/* 0x0178	     */		ld	[%sp+2223],%f5
7747c478bdstevel@tonic-gate/* 0x017c	 124 */		sllx	%g2,3,%g2
7757c478bdstevel@tonic-gate/* 0x0180	     */		fmovs	%f2,%f0
7767c478bdstevel@tonic-gate/* 0x0184	 125 */		sllx	%g3,3,%g3
7777c478bdstevel@tonic-gate/* 0x0188	     */		fmovs	%f2,%f4
7787c478bdstevel@tonic-gate/* 0x018c	 124 */		fsubd	%f0,%f2,%f0
7797c478bdstevel@tonic-gate/* 0x0190	     */		std	%f0,[%i0+%g2]
7807c478bdstevel@tonic-gate/* 0x0194	 125 */		fsubd	%f4,%f2,%f0
7817c478bdstevel@tonic-gate/* 0x0198	     */		std	%f0,[%i0+%g3]
7827c478bdstevel@tonic-gate/* 0x019c	     */		ret	! Result =
7837c478bdstevel@tonic-gate/* 0x01a0	     */		restore	%g0,%g0,%g0
7847c478bdstevel@tonic-gate                       .L77000201:
7857c478bdstevel@tonic-gate/* 0x01a4	 123 */		ld	[%o1],%g3
7867c478bdstevel@tonic-gate                       .L900000411:
7877c478bdstevel@tonic-gate/* 0x01a8	 124 */		sra	%g5,0,%g2
7887c478bdstevel@tonic-gate/* 0x01ac	     */		ldd	[%o5],%f2
7897c478bdstevel@tonic-gate/* 0x01b0	 125 */		add	%o0,1,%o0
7907c478bdstevel@tonic-gate/* 0x01b4	 124 */		sllx	%g2,3,%g4
7917c478bdstevel@tonic-gate/* 0x01b8	     */		and	%g3,%o3,%g2
7927c478bdstevel@tonic-gate/* 0x01bc	     */		st	%g2,[%sp+2227]
7937c478bdstevel@tonic-gate/* 0x01c0	     */		fmovs	%f2,%f0
7947c478bdstevel@tonic-gate/* 0x01c4	 125 */		srl	%g3,16,%g3
7957c478bdstevel@tonic-gate/* 0x01c8	     */		add	%o1,4,%o1
7967c478bdstevel@tonic-gate/* 0x01cc	     */		sra	%l0,0,%g2
7977c478bdstevel@tonic-gate/* 0x01d0	     */		add	%g5,2,%g5
7987c478bdstevel@tonic-gate/* 0x01d4	     */		sllx	%g2,3,%g2
7997c478bdstevel@tonic-gate/* 0x01d8	     */		cmp	%o0,%o2
8007c478bdstevel@tonic-gate/* 0x01dc	 124 */		ld	[%sp+2227],%f1
8017c478bdstevel@tonic-gate/* 0x01e0	 125 */		add	%l0,2,%l0
8027c478bdstevel@tonic-gate/* 0x01e4	 124 */		fsubd	%f0,%f2,%f0
8037c478bdstevel@tonic-gate/* 0x01e8	     */		std	%f0,[%i0+%g4]
8047c478bdstevel@tonic-gate/* 0x01ec	 125 */		st	%g3,[%sp+2223]
8057c478bdstevel@tonic-gate/* 0x01f0	     */		fmovs	%f2,%f0
8067c478bdstevel@tonic-gate/* 0x01f4	     */		ld	[%sp+2223],%f1
8077c478bdstevel@tonic-gate/* 0x01f8	     */		fsubd	%f0,%f2,%f0
8087c478bdstevel@tonic-gate/* 0x01fc	     */		std	%f0,[%i0+%g2]
8097c478bdstevel@tonic-gate/* 0x0200	     */		ble,a,pt	%icc,.L900000411
8107c478bdstevel@tonic-gate/* 0x0204	     */		ld	[%o1],%g3
8117c478bdstevel@tonic-gate                       .L77000197:
8127c478bdstevel@tonic-gate/* 0x0208	     */		ret	! Result =
8137c478bdstevel@tonic-gate/* 0x020c	     */		restore	%g0,%g0,%g0
8147c478bdstevel@tonic-gate/* 0x0210	   0 */		.type	conv_i32_to_d16,2
8157c478bdstevel@tonic-gate/* 0x0210	   0 */		.size	conv_i32_to_d16,(.-conv_i32_to_d16)
8167c478bdstevel@tonic-gate
8177c478bdstevel@tonic-gate	.section	".text",#alloc,#execinstr
8187c478bdstevel@tonic-gate/* 000000	   0 */		.align	8
8197c478bdstevel@tonic-gate!
8207c478bdstevel@tonic-gate! CONSTANT POOL
8217c478bdstevel@tonic-gate!
8227c478bdstevel@tonic-gate                       ___const_seg_900000501:
8237c478bdstevel@tonic-gate/* 000000	   0 */		.word	1127219200,0
8247c478bdstevel@tonic-gate/* 0x0008	   0 */		.type	___const_seg_900000501,1
8257c478bdstevel@tonic-gate/* 0x0008	   0 */		.size	___const_seg_900000501,(.-___const_seg_900000501)
8267c478bdstevel@tonic-gate/* 0x0008	   0 */		.align	8
8277c478bdstevel@tonic-gate/* 0x0008	     */		.skip	24
8287c478bdstevel@tonic-gate/* 0x0020	     */		.align	4
8297c478bdstevel@tonic-gate
8307c478bdstevel@tonic-gate!  126		      !	}
8317c478bdstevel@tonic-gate!  127		      !}
8327c478bdstevel@tonic-gate!  129		      !#ifdef RF_INLINE_MACROS
8337c478bdstevel@tonic-gate!  131		      !void
8347c478bdstevel@tonic-gate!  132		      !i16_to_d16_and_d32x4(const double *,	/* 1/(2^16) */
8357c478bdstevel@tonic-gate!  133		      !			const double *,	/* 2^16 */
8367c478bdstevel@tonic-gate!  134		      !			const double *,	/* 0 */
8377c478bdstevel@tonic-gate!  135		      !			double *,	/* result16 */
8387c478bdstevel@tonic-gate!  136		      !			double *,	/* result32 */
8397c478bdstevel@tonic-gate!  137		      !			float *);	/* source - should be unsigned int* */
8407c478bdstevel@tonic-gate!  138		      !					/* converted to float* */
8417c478bdstevel@tonic-gate!  140		      !#else
8427c478bdstevel@tonic-gate!  143		      !/* ARGSUSED */
8437c478bdstevel@tonic-gate!  144		      !static void
8447c478bdstevel@tonic-gate!  145		      !i16_to_d16_and_d32x4(const double *dummy1,	/* 1/(2^16) */
8457c478bdstevel@tonic-gate!  146		      !			const double *dummy2,	/* 2^16 */
8467c478bdstevel@tonic-gate!  147		      !			const double *dummy3,	/* 0 */
8477c478bdstevel@tonic-gate!  148		      !			double *result16,
8487c478bdstevel@tonic-gate!  149		      !			double *result32,
8497c478bdstevel@tonic-gate!  150		      !			float *src)	/* source - should be unsigned int* */
8507c478bdstevel@tonic-gate!  151		      !					/* converted to float* */
8517c478bdstevel@tonic-gate!  152		      !{
8527c478bdstevel@tonic-gate!  153		      !	uint32_t *i32;
8537c478bdstevel@tonic-gate!  154		      !	uint32_t a, b, c, d;
8547c478bdstevel@tonic-gate!  156		      !	i32 = (uint32_t *)src;
8557c478bdstevel@tonic-gate!  157		      !	a = i32[0];
8567c478bdstevel@tonic-gate!  158		      !	b = i32[1];
8577c478bdstevel@tonic-gate!  159		      !	c = i32[2];
8587c478bdstevel@tonic-gate!  160		      !	d = i32[3];
8597c478bdstevel@tonic-gate!  161		      !	result16[0] = (double)(a & 0xffff);
8607c478bdstevel@tonic-gate!  162		      !	result16[1] = (double)(a >> 16);
8617c478bdstevel@tonic-gate!  163		      !	result32[0] = (double)a;
8627c478bdstevel@tonic-gate!  164		      !	result16[2] = (double)(b & 0xffff);
8637c478bdstevel@tonic-gate!  165		      !	result16[3] = (double)(b >> 16);
8647c478bdstevel@tonic-gate!  166		      !	result32[1] = (double)b;
8657c478bdstevel@tonic-gate!  167		      !	result16[4] = (double)(c & 0xffff);
8667c478bdstevel@tonic-gate!  168		      !	result16[5] = (double)(c >> 16);
8677c478bdstevel@tonic-gate!  169		      !	result32[2] = (double)c;
8687c478bdstevel@tonic-gate!  170		      !	result16[6] = (double)(d & 0xffff);
8697c478bdstevel@tonic-gate!  171		      !	result16[7] = (double)(d >> 16);
8707c478bdstevel@tonic-gate!  172		      !	result32[3] = (double)d;
8717c478bdstevel@tonic-gate!  173		      !}
8727c478bdstevel@tonic-gate!  175		      !#endif
8737c478bdstevel@tonic-gate!  178		      !void
8747c478bdstevel@tonic-gate!  179		      !conv_i32_to_d32_and_d16(double *d32, double *d16, uint32_t *i32, int len)
8757c478bdstevel@tonic-gate!  180		      !{
8767c478bdstevel@tonic-gate
8777c478bdstevel@tonic-gate!
8787c478bdstevel@tonic-gate! SUBROUTINE conv_i32_to_d32_and_d16
8797c478bdstevel@tonic-gate!
8807c478bdstevel@tonic-gate! OFFSET    SOURCE LINE	LABEL	INSTRUCTION
8817c478bdstevel@tonic-gate
8827c478bdstevel@tonic-gate                       	.global conv_i32_to_d32_and_d16
8837c478bdstevel@tonic-gate                       conv_i32_to_d32_and_d16:
8847c478bdstevel@tonic-gate/* 000000	 180 */		save	%sp,-192,%sp
8857c478bdstevel@tonic-gate                       .L900000512:
8867c478bdstevel@tonic-gate/* 0x0004	 180 */		call	.+8
8877c478bdstevel@tonic-gate/* 0x0008	     */		sethi	/*X*/%hi(_GLOBAL_OFFSET_TABLE_-(.L900000512-.)),%g4
8887c478bdstevel@tonic-gate
8897c478bdstevel@tonic-gate!  181		      !	int i;
8907c478bdstevel@tonic-gate!  182		      !	uint32_t a;
8917c478bdstevel@tonic-gate!  184		      !#pragma pipeloop(0)
8927c478bdstevel@tonic-gate!  185		      !	for (i = 0; i < len - 3; i += 4) {
8937c478bdstevel@tonic-gate
8947c478bdstevel@tonic-gate/* 0x000c	 185 */		or	%g0,0,%g5
8957c478bdstevel@tonic-gate/* 0x0010	 180 */		sra	%i3,0,%l1
8967c478bdstevel@tonic-gate/* 0x0014	     */		add	%g4,/*X*/%lo(_GLOBAL_OFFSET_TABLE_-(.L900000512-.)),%g4
8977c478bdstevel@tonic-gate/* 0x0018	 185 */		sub	%l1,3,%g2
8987c478bdstevel@tonic-gate/* 0x001c	 180 */		add	%g4,%o7,%o0
8997c478bdstevel@tonic-gate/* 0x0020	 185 */		cmp	%g2,0
9007c478bdstevel@tonic-gate/* 0x0024	     */		or	%g0,0,%o7
9017c478bdstevel@tonic-gate/* 0x0028	     */		ble,pt	%icc,.L900000515
9027c478bdstevel@tonic-gate/* 0x002c	 190 */		cmp	%o7,%l1
9037c478bdstevel@tonic-gate/* 0x0030	   0 */		sethi	%hi(Zero),%g2
9047c478bdstevel@tonic-gate/* 0x0034	   0 */		add	%g2,%lo(Zero),%g2
9057c478bdstevel@tonic-gate/* 0x0038	 185 */		sub	%l1,4,%o1
9067c478bdstevel@tonic-gate/* 0x003c	   0 */		ldx	[%o0+%g2],%o2
9077c478bdstevel@tonic-gate/* 0x0040	     */		ldd	[%o2],%f8
9087c478bdstevel@tonic-gate
9097c478bdstevel@tonic-gate!  186		      !		i16_to_d16_and_d32x4(&TwoToMinus16, &TwoTo16, &Zero,
9107c478bdstevel@tonic-gate!  187		      !					&(d16[2*i]), &(d32[i]),
9117c478bdstevel@tonic-gate!  188		      !					(float *)(&(i32[i])));
9127c478bdstevel@tonic-gate
9137c478bdstevel@tonic-gate                       .L900000514:
9147c478bdstevel@tonic-gate/* 0x0044	 188 */		sra	%o7,0,%g2
9157c478bdstevel@tonic-gate/* 0x0048	     */		fmovd	%f8,%f10
9167c478bdstevel@tonic-gate/* 0x004c	     */		ldd	[%o2-8],%f6
9177c478bdstevel@tonic-gate/* 0x0050	     */		sllx	%g2,2,%g3
9187c478bdstevel@tonic-gate/* 0x0054	     */		fmovd	%f8,%f12
9197c478bdstevel@tonic-gate/* 0x0058	     */		ldd	[%o2-16],%f16
9207c478bdstevel@tonic-gate/* 0x005c	     */		ld	[%i2+%g3],%f11
9217c478bdstevel@tonic-gate/* 0x0060	     */		add	%i2,%g3,%g3
9227c478bdstevel@tonic-gate/* 0x0064	     */		fmovd	%f8,%f14
9237c478bdstevel@tonic-gate/* 0x0068	     */		ld	[%g3+4],%f13
9247c478bdstevel@tonic-gate/* 0x006c	     */		sra	%g5,0,%g4
9257c478bdstevel@tonic-gate/* 0x0070	     */		add	%o7,4,%o7
9267c478bdstevel@tonic-gate/* 0x0074	     */		ld	[%g3+8],%f15
9277c478bdstevel@tonic-gate/* 0x0078	     */		fxtod	%f10,%f10
9287c478bdstevel@tonic-gate/* 0x007c	     */		sllx	%g2,3,%g2
9297c478bdstevel@tonic-gate/* 0x0080	     */		ld	[%g3+12],%f9
9307c478bdstevel@tonic-gate/* 0x0084	     */		fxtod	%f12,%f12
9317c478bdstevel@tonic-gate/* 0x0088	     */		sllx	%g4,3,%g3
9327c478bdstevel@tonic-gate/* 0x008c	     */		fxtod	%f14,%f14
9337c478bdstevel@tonic-gate/* 0x0090	     */		std	%f10,[%i0+%g2]
9347c478bdstevel@tonic-gate/* 0x0094	     */		add	%i0,%g2,%g4
9357c478bdstevel@tonic-gate/* 0x0098	     */		fxtod	%f8,%f8
9367c478bdstevel@tonic-gate/* 0x009c	     */		fmuld	%f6,%f10,%f0
9377c478bdstevel@tonic-gate/* 0x00a0	     */		std	%f8,[%g4+24]
9387c478bdstevel@tonic-gate/* 0x00a4	     */		fmuld	%f6,%f12,%f2
9397c478bdstevel@tonic-gate/* 0x00a8	     */		std	%f12,[%g4+8]
9407c478bdstevel@tonic-gate/* 0x00ac	     */		add	%i1,%g3,%g2
9417c478bdstevel@tonic-gate/* 0x00b0	     */		fmuld	%f6,%f14,%f4
9427c478bdstevel@tonic-gate/* 0x00b4	     */		std	%f14,[%g4+16]
9437c478bdstevel@tonic-gate/* 0x00b8	     */		cmp	%o7,%o1
9447c478bdstevel@tonic-gate/* 0x00bc	     */		fmuld	%f6,%f8,%f6
9457c478bdstevel@tonic-gate/* 0x00c0	     */		fdtox	%f0,%f0
9467c478bdstevel@tonic-gate/* 0x00c4	     */		add	%g5,8,%g5
9477c478bdstevel@tonic-gate/* 0x00c8	     */		fdtox	%f2,%f2
9487c478bdstevel@tonic-gate/* 0x00cc	     */		fdtox	%f4,%f4
9497c478bdstevel@tonic-gate/* 0x00d0	     */		fdtox	%f6,%f6
9507c478bdstevel@tonic-gate/* 0x00d4	     */		fxtod	%f0,%f0
9517c478bdstevel@tonic-gate/* 0x00d8	     */		std	%f0,[%g2+8]
9527c478bdstevel@tonic-gate/* 0x00dc	     */		fxtod	%f2,%f2
9537c478bdstevel@tonic-gate/* 0x00e0	     */		std	%f2,[%g2+24]
9547c478bdstevel@tonic-gate/* 0x00e4	     */		fxtod	%f4,%f4
9557c478bdstevel@tonic-gate/* 0x00e8	     */		std	%f4,[%g2+40]
9567c478bdstevel@tonic-gate/* 0x00ec	     */		fxtod	%f6,%f6
9577c478bdstevel@tonic-gate/* 0x00f0	     */		std	%f6,[%g2+56]
9587c478bdstevel@tonic-gate/* 0x00f4	     */		fmuld	%f0,%f16,%f0
9597c478bdstevel@tonic-gate/* 0x00f8	     */		fmuld	%f2,%f16,%f2
9607c478bdstevel@tonic-gate/* 0x00fc	     */		fmuld	%f4,%f16,%f4
9617c478bdstevel@tonic-gate/* 0x0100	     */		fsubd	%f10,%f0,%f0
9627c478bdstevel@tonic-gate/* 0x0104	     */		std	%f0,[%i1+%g3]
9637c478bdstevel@tonic-gate/* 0x0108	     */		fmuld	%f6,%f16,%f6
9647c478bdstevel@tonic-gate/* 0x010c	     */		fsubd	%f12,%f2,%f2
9657c478bdstevel@tonic-gate/* 0x0110	     */		std	%f2,[%g2+16]
9667c478bdstevel@tonic-gate/* 0x0114	     */		fsubd	%f14,%f4,%f4
9677c478bdstevel@tonic-gate/* 0x0118	     */		std	%f4,[%g2+32]
9687c478bdstevel@tonic-gate/* 0x011c	     */		fsubd	%f8,%f6,%f6
9697c478bdstevel@tonic-gate/* 0x0120	     */		std	%f6,[%g2+48]
9707c478bdstevel@tonic-gate/* 0x0124	     */		ble,a,pt	%icc,.L900000514
9717c478bdstevel@tonic-gate/* 0x0128	     */		ldd	[%o2],%f8
9727c478bdstevel@tonic-gate
9737c478bdstevel@tonic-gate!  189		      !	}
9747c478bdstevel@tonic-gate!  190		      !	for (; i < len; i++) {
9757c478bdstevel@tonic-gate
9767c478bdstevel@tonic-gate                       .L77000212:
9777c478bdstevel@tonic-gate/* 0x012c	 190 */		cmp	%o7,%l1
9787c478bdstevel@tonic-gate                       .L900000515:
9797c478bdstevel@tonic-gate/* 0x0130	 190 */		bge,pt	%icc,.L77000217
9807c478bdstevel@tonic-gate/* 0x0134	     */		nop
9817c478bdstevel@tonic-gate/* 0x0138	     */		sll	%o7,1,%l0
9827c478bdstevel@tonic-gate/* 0x013c	   0 */		sethi	%hi(___const_seg_900000501),%g2
9837c478bdstevel@tonic-gate/* 0x0140	   0 */		add	%g2,%lo(___const_seg_900000501),%g2
9847c478bdstevel@tonic-gate/* 0x0144	 190 */		sub	%l1,%o7,%g4
9857c478bdstevel@tonic-gate/* 0x0148	   0 */		ldx	[%o0+%g2],%l6
9867c478bdstevel@tonic-gate/* 0x014c	 190 */		sethi	%hi(0xfc00),%g3
9877c478bdstevel@tonic-gate/* 0x0150	     */		cmp	%g4,7
9887c478bdstevel@tonic-gate/* 0x0154	     */		add	%g3,1023,%l2
9897c478bdstevel@tonic-gate/* 0x0158	     */		bl,pn	%icc,.L77000214
9907c478bdstevel@tonic-gate/* 0x015c	     */		add	%l0,1,%g2
9917c478bdstevel@tonic-gate
9927c478bdstevel@tonic-gate!  191		      !		a = i32[i];
9937c478bdstevel@tonic-gate
9947c478bdstevel@tonic-gate/* 0x0160	 191 */		sra	%o7,0,%o3
9957c478bdstevel@tonic-gate
9967c478bdstevel@tonic-gate!  192		      !		d32[i] = (double)(i32[i]);
9977c478bdstevel@tonic-gate
9987c478bdstevel@tonic-gate/* 0x0164	 192 */		ldd	[%l6],%f8
9997c478bdstevel@tonic-gate
10007c478bdstevel@tonic-gate!  193		      !		d16[2 * i] = (double)(a & 0xffff);
10017c478bdstevel@tonic-gate!  194		      !		d16[2 * i + 1] = (double)(a >> 16);
10027c478bdstevel@tonic-gate
10037c478bdstevel@tonic-gate/* 0x0168	 194 */		add	%o7,1,%g3
10047c478bdstevel@tonic-gate/* 0x016c	 191 */		sllx	%o3,2,%g5
10057c478bdstevel@tonic-gate/* 0x0170	 194 */		add	%o7,2,%o1
10067c478bdstevel@tonic-gate/* 0x0174	 191 */		sra	%g3,0,%o0
10077c478bdstevel@tonic-gate/* 0x0178	     */		ld	[%i2+%g5],%o2
10087c478bdstevel@tonic-gate/* 0x017c	 192 */		fmovs	%f8,%f6
10097c478bdstevel@tonic-gate/* 0x0180	 191 */		sllx	%o0,2,%o4
10107c478bdstevel@tonic-gate/* 0x0184	 193 */		fmovs	%f8,%f0
10117c478bdstevel@tonic-gate/* 0x0188	 194 */		add	%l0,2,%o5
10127c478bdstevel@tonic-gate/* 0x018c	 191 */		sra	%o1,0,%l7
10137c478bdstevel@tonic-gate/* 0x0190	 194 */		fmovs	%f8,%f2
10147c478bdstevel@tonic-gate/* 0x0194	 193 */		and	%o2,%l2,%g4
10157c478bdstevel@tonic-gate/* 0x0198	     */		st	%g4,[%sp+2227]
10167c478bdstevel@tonic-gate/* 0x019c	 194 */		srl	%o2,16,%o2
10177c478bdstevel@tonic-gate/* 0x01a0	     */		add	%l0,3,%g4
10187c478bdstevel@tonic-gate/* 0x01a4	 191 */		ld	[%i2+%o4],%o7
10197c478bdstevel@tonic-gate/* 0x01a8	 193 */		sra	%l0,0,%l0
10207c478bdstevel@tonic-gate/* 0x01ac	 190 */		sub	%l1,4,%g3
10217c478bdstevel@tonic-gate/* 0x01b0	 194 */		st	%o2,[%sp+2223]
10227c478bdstevel@tonic-gate/* 0x01b4	 191 */		sllx	%l7,2,%o2
10237c478bdstevel@tonic-gate/* 0x01b8	 192 */		ld	[%i2+%g5],%f7
10247c478bdstevel@tonic-gate/* 0x01bc	     */		sllx	%o3,3,%o3
10257c478bdstevel@tonic-gate/* 0x01c0	 193 */		and	%o7,%l2,%g5
10267c478bdstevel@tonic-gate/* 0x01c4	 194 */		srl	%o7,16,%o7
10277c478bdstevel@tonic-gate/* 0x01c8	     */		sra	%g2,0,%g2
10287c478bdstevel@tonic-gate/* 0x01cc	 192 */		fsubd	%f6,%f8,%f4
10297c478bdstevel@tonic-gate/* 0x01d0	 193 */		ld	[%sp+2227],%f1
10307c478bdstevel@tonic-gate/* 0x01d4	 194 */		sllx	%g2,3,%g2
10317c478bdstevel@tonic-gate/* 0x01d8	 193 */		st	%g5,[%sp+2227]
10327c478bdstevel@tonic-gate/* 0x01dc	 191 */		ld	[%i2+%o2],%g5
10337c478bdstevel@tonic-gate/* 0x01e0	 193 */		fsubd	%f0,%f8,%f0
10347c478bdstevel@tonic-gate/* 0x01e4	 194 */		ld	[%sp+2223],%f3
10357c478bdstevel@tonic-gate/* 0x01e8	     */		st	%o7,[%sp+2223]
10367c478bdstevel@tonic-gate/* 0x01ec	 193 */		sllx	%l0,3,%o7
10377c478bdstevel@tonic-gate/* 0x01f0	 192 */		std	%f4,[%i0+%o3]
10387c478bdstevel@tonic-gate/* 0x01f4	 193 */		std	%f0,[%i1+%o7]
10397c478bdstevel@tonic-gate/* 0x01f8	 194 */		fsubd	%f2,%f8,%f0
10407c478bdstevel@tonic-gate/* 0x01fc	 192 */		ld	[%i2+%o4],%f11
10417c478bdstevel@tonic-gate/* 0x0200	 194 */		std	%f0,[%i1+%g2]
10427c478bdstevel@tonic-gate                       .L900000508:
10437c478bdstevel@tonic-gate/* 0x0204	 193 */		ld	[%sp+2227],%f7
10447c478bdstevel@tonic-gate/* 0x0208	 190 */		nop ! volatile
10457c478bdstevel@tonic-gate/* 0x020c	     */		nop ! volatile
10467c478bdstevel@tonic-gate/* 0x0210	     */		nop ! volatile
10477c478bdstevel@tonic-gate/* 0x0214	     */		nop ! volatile
10487c478bdstevel@tonic-gate/* 0x0218	 194 */		add	%o1,1,%o1
10497c478bdstevel@tonic-gate/* 0x021c	     */		ld	[%sp+2223],%f1
10507c478bdstevel@tonic-gate/* 0x0220	 191 */		sra	%o1,0,%g2
10517c478bdstevel@tonic-gate/* 0x0224	     */		sllx	%g2,2,%o3
10527c478bdstevel@tonic-gate/* 0x0228	 193 */		and	%g5,%l2,%o4
10537c478bdstevel@tonic-gate/* 0x022c	 194 */		srl	%g5,16,%o7
10547c478bdstevel@tonic-gate/* 0x0230	 193 */		st	%o4,[%sp+2227]
10557c478bdstevel@tonic-gate/* 0x0234	     */		fmovs	%f8,%f6
10567c478bdstevel@tonic-gate/* 0x0238	 192 */		fmovs	%f8,%f10
10577c478bdstevel@tonic-gate/* 0x023c	 193 */		sra	%o5,0,%o4
10587c478bdstevel@tonic-gate/* 0x0240	 191 */		ld	[%i2+%o3],%g5
10597c478bdstevel@tonic-gate/* 0x0244	 194 */		st	%o7,[%sp+2223]
10607c478bdstevel@tonic-gate/* 0x0248	 192 */		fsubd	%f10,%f8,%f4
10617c478bdstevel@tonic-gate/* 0x024c	 193 */		sllx	%o4,3,%o4
10627c478bdstevel@tonic-gate/* 0x0250	     */		fsubd	%f6,%f8,%f6
10637c478bdstevel@tonic-gate/* 0x0254	 192 */		sllx	%o0,3,%o0
10647c478bdstevel@tonic-gate/* 0x0258	     */		ld	[%i2+%o2],%f3
10657c478bdstevel@tonic-gate/* 0x025c	     */		std	%f4,[%i0+%o0]
10667c478bdstevel@tonic-gate/* 0x0260	 194 */		sra	%g4,0,%o0
10677c478bdstevel@tonic-gate/* 0x0264	     */		add	%o5,2,%o2
10687c478bdstevel@tonic-gate/* 0x0268	     */		fmovs	%f8,%f0
10697c478bdstevel@tonic-gate/* 0x026c	 193 */		std	%f6,[%i1+%o4]
10707c478bdstevel@tonic-gate/* 0x0270	 194 */		sllx	%o0,3,%o0
10717c478bdstevel@tonic-gate/* 0x0274	     */		add	%g4,2,%o4
10727c478bdstevel@tonic-gate/* 0x0278	     */		fsubd	%f0,%f8,%f0
10737c478bdstevel@tonic-gate/* 0x027c	     */		std	%f0,[%i1+%o0]
10747c478bdstevel@tonic-gate/* 0x0280	 193 */		ld	[%sp+2227],%f1
10757c478bdstevel@tonic-gate/* 0x0284	 190 */		nop ! volatile
10767c478bdstevel@tonic-gate/* 0x0288	     */		nop ! volatile
10777c478bdstevel@tonic-gate/* 0x028c	     */		nop ! volatile
10787c478bdstevel@tonic-gate/* 0x0290	     */		nop ! volatile
10797c478bdstevel@tonic-gate/* 0x0294	 194 */		add	%o1,1,%o1
10807c478bdstevel@tonic-gate/* 0x0298	     */		ld	[%sp+2223],%f5
10817c478bdstevel@tonic-gate/* 0x029c	 191 */		sra	%o1,0,%o0
10827c478bdstevel@tonic-gate/* 0x02a0	     */		sllx	%o0,2,%g4
10837c478bdstevel@tonic-gate/* 0x02a4	 193 */		and	%g5,%l2,%o5
10847c478bdstevel@tonic-gate/* 0x02a8	 194 */		srl	%g5,16,%o7
10857c478bdstevel@tonic-gate/* 0x02ac	 193 */		st	%o5,[%sp+2227]
10867c478bdstevel@tonic-gate/* 0x02b0	     */		fmovs	%f8,%f0
10877c478bdstevel@tonic-gate/* 0x02b4	 192 */		fmovs	%f8,%f2
10887c478bdstevel@tonic-gate/* 0x02b8	 193 */		sra	%o2,0,%o5
10897c478bdstevel@tonic-gate/* 0x02bc	 191 */		ld	[%i2+%g4],%g5
10907c478bdstevel@tonic-gate/* 0x02c0	 194 */		st	%o7,[%sp+2223]
10917c478bdstevel@tonic-gate/* 0x02c4	 192 */		fsubd	%f2,%f8,%f2
10927c478bdstevel@tonic-gate/* 0x02c8	 193 */		sllx	%o5,3,%o5
10937c478bdstevel@tonic-gate/* 0x02cc	     */		fsubd	%f0,%f8,%f0
10947c478bdstevel@tonic-gate/* 0x02d0	 192 */		sllx	%l7,3,%o7
10957c478bdstevel@tonic-gate/* 0x02d4	     */		ld	[%i2+%o3],%f7
10967c478bdstevel@tonic-gate/* 0x02d8	     */		std	%f2,[%i0+%o7]
10977c478bdstevel@tonic-gate/* 0x02dc	 194 */		sra	%o4,0,%o7
10987c478bdstevel@tonic-gate/* 0x02e0	     */		add	%o2,2,%o3
10997c478bdstevel@tonic-gate/* 0x02e4	     */		fmovs	%f8,%f4
11007c478bdstevel@tonic-gate/* 0x02e8	 193 */		std	%f0,[%i1+%o5]
11017c478bdstevel@tonic-gate/* 0x02ec	 194 */		sllx	%o7,3,%o2
11027c478bdstevel@tonic-gate/* 0x02f0	     */		add	%o4,2,%o4
11037c478bdstevel@tonic-gate/* 0x02f4	     */		fsubd	%f4,%f8,%f0
11047c478bdstevel@tonic-gate/* 0x02f8	     */		std	%f0,[%i1+%o2]
11057c478bdstevel@tonic-gate/* 0x02fc	 193 */		ld	[%sp+2227],%f1
11067c478bdstevel@tonic-gate/* 0x0300	 190 */		nop ! volatile
11077c478bdstevel@tonic-gate/* 0x0304	     */		nop ! volatile
11087c478bdstevel@tonic-gate/* 0x0308	     */		nop ! volatile
11097c478bdstevel@tonic-gate/* 0x030c	     */		nop ! volatile
11107c478bdstevel@tonic-gate/* 0x0310	 194 */		add	%o1,1,%o1
11117c478bdstevel@tonic-gate/* 0x0314	     */		ld	[%sp+2223],%f3
11127c478bdstevel@tonic-gate/* 0x0318	 191 */		sra	%o1,0,%l7
11137c478bdstevel@tonic-gate/* 0x031c	     */		sllx	%l7,2,%o2
11147c478bdstevel@tonic-gate/* 0x0320	 193 */		and	%g5,%l2,%o5
11157c478bdstevel@tonic-gate/* 0x0324	 194 */		srl	%g5,16,%o7
11167c478bdstevel@tonic-gate/* 0x0328	 193 */		st	%o5,[%sp+2227]
11177c478bdstevel@tonic-gate/* 0x032c	     */		fmovs	%f8,%f0
11187c478bdstevel@tonic-gate/* 0x0330	 192 */		fmovs	%f8,%f6
11197c478bdstevel@tonic-gate/* 0x0334	 193 */		sra	%o3,0,%o5
11207c478bdstevel@tonic-gate/* 0x0338	 191 */		ld	[%i2+%o2],%g5
11217c478bdstevel@tonic-gate/* 0x033c	 194 */		st	%o7,[%sp+2223]
11227c478bdstevel@tonic-gate/* 0x0340	 192 */		fsubd	%f6,%f8,%f4
11237c478bdstevel@tonic-gate/* 0x0344	 193 */		sllx	%o5,3,%o7
11247c478bdstevel@tonic-gate/* 0x0348	     */		fsubd	%f0,%f8,%f0
11257c478bdstevel@tonic-gate/* 0x034c	 192 */		sllx	%g2,3,%g2
11267c478bdstevel@tonic-gate/* 0x0350	     */		ld	[%i2+%g4],%f11
11277c478bdstevel@tonic-gate/* 0x0354	     */		std	%f4,[%i0+%g2]
11287c478bdstevel@tonic-gate/* 0x0358	 194 */		sra	%o4,0,%g2
11297c478bdstevel@tonic-gate/* 0x035c	     */		add	%o3,2,%o5
11307c478bdstevel@tonic-gate/* 0x0360	     */		fmovs	%f8,%f2
11317c478bdstevel@tonic-gate/* 0x0364	 193 */		std	%f0,[%i1+%o7]
11327c478bdstevel@tonic-gate/* 0x0368	 194 */		sllx	%g2,3,%g2
11337c478bdstevel@tonic-gate/* 0x036c	     */		add	%o4,2,%g4
11347c478bdstevel@tonic-gate/* 0x0370	     */		fsubd	%f2,%f8,%f0
11357c478bdstevel@tonic-gate/* 0x0374	     */		cmp	%o1,%g3
11367c478bdstevel@tonic-gate/* 0x0378	     */		bl,pt	%icc,.L900000508
11377c478bdstevel@tonic-gate/* 0x037c	     */		std	%f0,[%i1+%g2]
11387c478bdstevel@tonic-gate                       .L900000511:
11397c478bdstevel@tonic-gate/* 0x0380	 194 */		add	%o1,1,%o7
11407c478bdstevel@tonic-gate/* 0x0384	 193 */		ld	[%sp+2227],%f1
11417c478bdstevel@tonic-gate/* 0x0388	 194 */		add	%o3,4,%g3
11427c478bdstevel@tonic-gate/* 0x038c	 192 */		fmovs	%f8,%f10
11437c478bdstevel@tonic-gate/* 0x0390	 191 */		sra	%o7,0,%o4
11447c478bdstevel@tonic-gate/* 0x0394	 193 */		and	%g5,%l2,%g2
11457c478bdstevel@tonic-gate/* 0x0398	     */		st	%g2,[%sp+2227]
11467c478bdstevel@tonic-gate/* 0x039c	 194 */		fmovs	%f8,%f2
11477c478bdstevel@tonic-gate/* 0x03a0	 191 */		sllx	%o4,2,%o3
11487c478bdstevel@tonic-gate/* 0x03a4	 193 */		fmovs	%f8,%f0
11497c478bdstevel@tonic-gate/* 0x03a8	 194 */		add	%g3,4,%l0
11507c478bdstevel@tonic-gate/* 0x03ac	     */		srl	%g5,16,%g2
11517c478bdstevel@tonic-gate/* 0x03b0	 191 */		ld	[%i2+%o3],%o1
11527c478bdstevel@tonic-gate/* 0x03b4	 192 */		fmovs	%f8,%f4
11537c478bdstevel@tonic-gate/* 0x03b8	 194 */		add	%g4,2,%g5
11547c478bdstevel@tonic-gate/* 0x03bc	     */		add	%o7,1,%o7
11557c478bdstevel@tonic-gate/* 0x03c0	     */		ld	[%sp+2223],%f3
11567c478bdstevel@tonic-gate/* 0x03c4	     */		sra	%g4,0,%g4
11577c478bdstevel@tonic-gate/* 0x03c8	 192 */		fsubd	%f10,%f8,%f6
11587c478bdstevel@tonic-gate/* 0x03cc	 194 */		st	%g2,[%sp+2223]
11597c478bdstevel@tonic-gate/* 0x03d0	 193 */		sra	%o5,0,%g2
11607c478bdstevel@tonic-gate/* 0x03d4	     */		fsubd	%f0,%f8,%f0
11617c478bdstevel@tonic-gate/* 0x03d8	 192 */		sllx	%o0,3,%o5
11627c478bdstevel@tonic-gate/* 0x03dc	     */		ld	[%i2+%o2],%f5
11637c478bdstevel@tonic-gate/* 0x03e0	 193 */		and	%o1,%l2,%o0
11647c478bdstevel@tonic-gate/* 0x03e4	     */		sllx	%g2,3,%g2
11657c478bdstevel@tonic-gate/* 0x03e8	 192 */		std	%f6,[%i0+%o5]
11667c478bdstevel@tonic-gate/* 0x03ec	 194 */		add	%g3,2,%o2
11677c478bdstevel@tonic-gate/* 0x03f0	 193 */		std	%f0,[%i1+%g2]
11687c478bdstevel@tonic-gate/* 0x03f4	 194 */		fsubd	%f2,%f8,%f0
11697c478bdstevel@tonic-gate/* 0x03f8	     */		sllx	%g4,3,%g4
11707c478bdstevel@tonic-gate/* 0x03fc	 193 */		sra	%g3,0,%g2
11717c478bdstevel@tonic-gate/* 0x0400	 194 */		std	%f0,[%i1+%g4]
11727c478bdstevel@tonic-gate/* 0x0404	 192 */		fsubd	%f4,%f8,%f4
11737c478bdstevel@tonic-gate/* 0x0408	 194 */		srl	%o1,16,%o1
11747c478bdstevel@tonic-gate/* 0x040c	     */		ld	[%sp+2223],%f3
11757c478bdstevel@tonic-gate/* 0x0410	     */		add	%g5,2,%o5
11767c478bdstevel@tonic-gate/* 0x0414	 193 */		ld	[%sp+2227],%f1
11777c478bdstevel@tonic-gate/* 0x0418	 192 */		sllx	%l7,3,%g3
11787c478bdstevel@tonic-gate/* 0x041c	 194 */		cmp	%o7,%l1
11797c478bdstevel@tonic-gate/* 0x0420	 193 */		st	%o0,[%sp+2227]
11807c478bdstevel@tonic-gate/* 0x0424	     */		sllx	%g2,3,%g4
11817c478bdstevel@tonic-gate/* 0x0428	 194 */		add	%g5,4,%g2
11827c478bdstevel@tonic-gate/* 0x042c	 193 */		fmovs	%f8,%f0
11837c478bdstevel@tonic-gate/* 0x0430	 194 */		st	%o1,[%sp+2223]
11847c478bdstevel@tonic-gate/* 0x0434	     */		sra	%g5,0,%g5
11857c478bdstevel@tonic-gate/* 0x0438	     */		fmovs	%f8,%f2
11867c478bdstevel@tonic-gate/* 0x043c	 192 */		std	%f4,[%i0+%g3]
11877c478bdstevel@tonic-gate/* 0x0440	 194 */		sllx	%g5,3,%g5
11887c478bdstevel@tonic-gate/* 0x0444	 192 */		ld	[%i2+%o3],%f7
11897c478bdstevel@tonic-gate/* 0x0448	 193 */		sra	%o2,0,%o0
11907c478bdstevel@tonic-gate/* 0x044c	     */		fsubd	%f0,%f8,%f0
11917c478bdstevel@tonic-gate/* 0x0450	     */		std	%f0,[%i1+%g4]
11927c478bdstevel@tonic-gate/* 0x0454	 192 */		sllx	%o4,3,%o1
11937c478bdstevel@tonic-gate/* 0x0458	 194 */		fsubd	%f2,%f8,%f0
11947c478bdstevel@tonic-gate/* 0x045c	     */		std	%f0,[%i1+%g5]
11957c478bdstevel@tonic-gate/* 0x0460	 193 */		sllx	%o0,3,%o0
11967c478bdstevel@tonic-gate/* 0x0464	 194 */		ld	[%sp+2223],%f3
11977c478bdstevel@tonic-gate/* 0x0468	     */		sra	%o5,0,%o2
11987c478bdstevel@tonic-gate/* 0x046c	 193 */		ld	[%sp+2227],%f1
11997c478bdstevel@tonic-gate/* 0x0470	 194 */		sllx	%o2,3,%g3
12007c478bdstevel@tonic-gate/* 0x0474	 192 */		fmovs	%f8,%f6
12017c478bdstevel@tonic-gate/* 0x0478	 193 */		fmovs	%f8,%f0
12027c478bdstevel@tonic-gate/* 0x047c	 194 */		fmovs	%f8,%f2
12037c478bdstevel@tonic-gate/* 0x0480	 192 */		fsubd	%f6,%f8,%f4
12047c478bdstevel@tonic-gate/* 0x0484	     */		std	%f4,[%i0+%o1]
12057c478bdstevel@tonic-gate/* 0x0488	 193 */		fsubd	%f0,%f8,%f0
12067c478bdstevel@tonic-gate/* 0x048c	     */		std	%f0,[%i1+%o0]
12077c478bdstevel@tonic-gate/* 0x0490	 194 */		fsubd	%f2,%f8,%f0
12087c478bdstevel@tonic-gate/* 0x0494	     */		bge,pn	%icc,.L77000217
12097c478bdstevel@tonic-gate/* 0x0498	     */		std	%f0,[%i1+%g3]
12107c478bdstevel@tonic-gate                       .L77000214:
12117c478bdstevel@tonic-gate/* 0x049c	 191 */		sra	%o7,0,%g3
12127c478bdstevel@tonic-gate                       .L900000513:
12137c478bdstevel@tonic-gate/* 0x04a0	 192 */		ldd	[%l6],%f8
12147c478bdstevel@tonic-gate/* 0x04a4	 191 */		sllx	%g3,2,%g4
12157c478bdstevel@tonic-gate/* 0x04a8	 194 */		add	%o7,1,%o7
12167c478bdstevel@tonic-gate/* 0x04ac	 192 */		ld	[%i2+%g4],%f1
12177c478bdstevel@tonic-gate/* 0x04b0	 193 */		sra	%l0,0,%g5
12187c478bdstevel@tonic-gate/* 0x04b4	 194 */		cmp	%o7,%l1
12197c478bdstevel@tonic-gate/* 0x04b8	 191 */		ld	[%i2+%g4],%g4
12207c478bdstevel@tonic-gate/* 0x04bc	 192 */		sllx	%g3,3,%g3
12217c478bdstevel@tonic-gate/* 0x04c0	 194 */		add	%l0,2,%l0
12227c478bdstevel@tonic-gate/* 0x04c4	 192 */		fmovs	%f8,%f0
12237c478bdstevel@tonic-gate/* 0x04c8	 193 */		sllx	%g5,3,%o0
12247c478bdstevel@tonic-gate/* 0x04cc	     */		and	%g4,%l2,%g5
12257c478bdstevel@tonic-gate/* 0x04d0	 192 */		fsubd	%f0,%f8,%f0
12267c478bdstevel@tonic-gate/* 0x04d4	     */		std	%f0,[%i0+%g3]
12277c478bdstevel@tonic-gate/* 0x04d8	 194 */		srl	%g4,16,%g3
12287c478bdstevel@tonic-gate/* 0x04dc	 193 */		st	%g5,[%sp+2227]
12297c478bdstevel@tonic-gate/* 0x04e0	 194 */		sra	%g2,0,%g4
12307c478bdstevel@tonic-gate/* 0x04e4	     */		add	%g2,2,%g2
12317c478bdstevel@tonic-gate/* 0x04e8	     */		sllx	%g4,3,%g4
12327c478bdstevel@tonic-gate/* 0x04ec	 193 */		fmovs	%f8,%f0
12337c478bdstevel@tonic-gate/* 0x04f0	     */		ld	[%sp+2227],%f1
12347c478bdstevel@tonic-gate/* 0x04f4	     */		fsubd	%f0,%f8,%f0
12357c478bdstevel@tonic-gate/* 0x04f8	     */		std	%f0,[%i1+%o0]
12367c478bdstevel@tonic-gate/* 0x04fc	 194 */		st	%g3,[%sp+2223]
12377c478bdstevel@tonic-gate/* 0x0500	     */		fmovs	%f8,%f0
12387c478bdstevel@tonic-gate/* 0x0504	     */		ld	[%sp+2223],%f1
12397c478bdstevel@tonic-gate/* 0x0508	     */		fsubd	%f0,%f8,%f0
12407c478bdstevel@tonic-gate/* 0x050c	     */		std	%f0,[%i1+%g4]
12417c478bdstevel@tonic-gate/* 0x0510	     */		bl,pt	%icc,.L900000513
12427c478bdstevel@tonic-gate/* 0x0514	     */		sra	%o7,0,%g3
12437c478bdstevel@tonic-gate                       .L77000217:
12447c478bdstevel@tonic-gate/* 0x0518	     */		ret	! Result =
12457c478bdstevel@tonic-gate/* 0x051c	     */		restore	%g0,%g0,%g0
12467c478bdstevel@tonic-gate/* 0x0520	   0 */		.type	conv_i32_to_d32_and_d16,2
12477c478bdstevel@tonic-gate/* 0x0520	   0 */		.size	conv_i32_to_d32_and_d16,(.-conv_i32_to_d32_and_d16)
12487c478bdstevel@tonic-gate
12497c478bdstevel@tonic-gate	.section	".text",#alloc,#execinstr
12507c478bdstevel@tonic-gate/* 000000	   0 */		.align	4
12517c478bdstevel@tonic-gate
12527c478bdstevel@tonic-gate!  195		      !	}
12537c478bdstevel@tonic-gate!  196		      !}
12547c478bdstevel@tonic-gate!  199		      !static void
12557c478bdstevel@tonic-gate!  200		      !adjust_montf_result(uint32_t *i32, uint32_t *nint, int len)
12567c478bdstevel@tonic-gate!  201		      !{
12577c478bdstevel@tonic-gate
12587c478bdstevel@tonic-gate!
12597c478bdstevel@tonic-gate! SUBROUTINE adjust_montf_result
12607c478bdstevel@tonic-gate!
12617c478bdstevel@tonic-gate! OFFSET    SOURCE LINE	LABEL	INSTRUCTION
12627c478bdstevel@tonic-gate
12637c478bdstevel@tonic-gate                       adjust_montf_result:
12647c478bdstevel@tonic-gate/* 000000	 201 */		sra	%o2,0,%o3
12657c478bdstevel@tonic-gate/* 0x0004	     */		or	%g0,%o0,%o2
12667c478bdstevel@tonic-gate
12677c478bdstevel@tonic-gate!  202		      !	int64_t acc;
12687c478bdstevel@tonic-gate!  203		      !	int i;
12697c478bdstevel@tonic-gate!  205		      !	if (i32[len] > 0)
12707c478bdstevel@tonic-gate
12717c478bdstevel@tonic-gate/* 0x0008	 205 */		sllx	%o3,2,%o0
12727c478bdstevel@tonic-gate/* 0x000c	     */		ld	[%o2+%o0],%o0
12737c478bdstevel@tonic-gate/* 0x0010	     */		cmp	%o0,0
12747c478bdstevel@tonic-gate/* 0x0014	     */		bgu,pn	%icc,.L77000263
12757c478bdstevel@tonic-gate/* 0x0018	 208 */		subcc	%o3,1,%o5
12767c478bdstevel@tonic-gate/* 0x001c	     */		bneg,pn	%icc,.L77000263
12777c478bdstevel@tonic-gate/* 0x0020	 209 */		sra	%o5,0,%o0
12787c478bdstevel@tonic-gate
12797c478bdstevel@tonic-gate!  206		      !		i = -1;
12807c478bdstevel@tonic-gate!  207		      !	else {
12817c478bdstevel@tonic-gate!  208		      !		for (i = len - 1; i >= 0; i--) {
12827c478bdstevel@tonic-gate!  209		      !			if (i32[i] != nint[i]) break;
12837c478bdstevel@tonic-gate
12847c478bdstevel@tonic-gate                       .L900000612:
12857c478bdstevel@tonic-gate/* 0x0024	 209 */		sllx	%o0,2,%o0
12867c478bdstevel@tonic-gate/* 0x0028	     */		ld	[%o2+%o0],%o4
12877c478bdstevel@tonic-gate/* 0x002c	     */		ld	[%o1+%o0],%o0
12887c478bdstevel@tonic-gate/* 0x0030	     */		cmp	%o4,%o0
12897c478bdstevel@tonic-gate/* 0x0034	     */		bne,pn	%icc,.L77000248
12907c478bdstevel@tonic-gate/* 0x0038	     */		nop
12917c478bdstevel@tonic-gate/* 0x003c	     */		subcc	%o5,1,%o5
12927c478bdstevel@tonic-gate/* 0x0040	     */		bpos,pt	%icc,.L900000612
12937c478bdstevel@tonic-gate/* 0x0044	     */		sra	%o5,0,%o0
12947c478bdstevel@tonic-gate                       .L900000605:
12957c478bdstevel@tonic-gate/* 0x0048	 209 */		ba	.L900000611
12967c478bdstevel@tonic-gate/* 0x004c	 214 */		cmp	%o3,0
12977c478bdstevel@tonic-gate                       .L77000248:
12987c478bdstevel@tonic-gate/* 0x0050	 209 */		bleu,pt	%icc,.L77000256
12997c478bdstevel@tonic-gate/* 0x0054	     */		nop
13007c478bdstevel@tonic-gate
13017c478bdstevel@tonic-gate!  210		      !		}
13027c478bdstevel@tonic-gate!  211		      !	}
13037c478bdstevel@tonic-gate!  212		      !	if ((i < 0) || (i32[i] > nint[i])) {
13047c478bdstevel@tonic-gate!  213		      !		acc = 0;
13057c478bdstevel@tonic-gate!  214		      !		for (i = 0; i < len; i++) {
13067c478bdstevel@tonic-gate
13077c478bdstevel@tonic-gate                       .L77000263:
13087c478bdstevel@tonic-gate/* 0x0058	 214 */		cmp	%o3,0
13097c478bdstevel@tonic-gate                       .L900000611:
13107c478bdstevel@tonic-gate/* 0x005c	 214 */		ble,pt	%icc,.L77000256
13117c478bdstevel@tonic-gate/* 0x0060	     */		nop
13127c478bdstevel@tonic-gate/* 0x0064	 209 */		or	%g0,-1,%o4
13137c478bdstevel@tonic-gate/* 0x0068	 214 */		or	%g0,%o3,%o0
13147c478bdstevel@tonic-gate/* 0x006c	 209 */		sub	%o3,1,%g2
13157c478bdstevel@tonic-gate/* 0x0070	 214 */		or	%g0,0,%o3
13167c478bdstevel@tonic-gate/* 0x0074	 209 */		srl	%o4,0,%g3
13177c478bdstevel@tonic-gate/* 0x0078	 214 */		cmp	%o0,4
13187c478bdstevel@tonic-gate/* 0x007c	 213 */		or	%g0,0,%o5
13197c478bdstevel@tonic-gate/* 0x0080	 214 */		bl,pn	%icc,.L77000264
13207c478bdstevel@tonic-gate/* 0x0084	     */		or	%g0,%o1,%o4
13217c478bdstevel@tonic-gate
13227c478bdstevel@tonic-gate!  215		      !			acc = acc + (uint64_t)(i32[i]) - (uint64_t)(nint[i]);
13237c478bdstevel@tonic-gate
13247c478bdstevel@tonic-gate/* 0x0088	 215 */		ld	[%o2+4],%g5
13257c478bdstevel@tonic-gate
13267c478bdstevel@tonic-gate!  216		      !			i32[i] = acc & 0xffffffff;
13277c478bdstevel@tonic-gate!  217		      !			acc = acc >> 32;
13287c478bdstevel@tonic-gate
13297c478bdstevel@tonic-gate/* 0x008c	 217 */		add	%o1,4,%o4
13307c478bdstevel@tonic-gate/* 0x0090	     */		add	%o2,8,%o2
13317c478bdstevel@tonic-gate/* 0x0094	 214 */		sub	%o0,2,%g4
13327c478bdstevel@tonic-gate/* 0x0098	 215 */		ld	[%o2-8],%o1
13337c478bdstevel@tonic-gate/* 0x009c	 217 */		or	%g0,2,%o3
13347c478bdstevel@tonic-gate/* 0x00a0	 215 */		ld	[%o4-4],%o0
13357c478bdstevel@tonic-gate/* 0x00a4	 214 */		sub	%o1,%o0,%o0
13367c478bdstevel@tonic-gate/* 0x00a8	     */		or	%g0,%o0,%o1
13377c478bdstevel@tonic-gate/* 0x00ac	 216 */		and	%o0,%g3,%o0
13387c478bdstevel@tonic-gate/* 0x00b0	     */		st	%o0,[%o2-8]
13397c478bdstevel@tonic-gate/* 0x00b4	 217 */		srax	%o1,32,%o0
13407c478bdstevel@tonic-gate                       .L900000606:
13417c478bdstevel@tonic-gate/* 0x00b8	 217 */		add	%o3,1,%o3
13427c478bdstevel@tonic-gate/* 0x00bc	 215 */		ld	[%o4],%o1
13437c478bdstevel@tonic-gate/* 0x00c0	 217 */		add	%o4,4,%o4
13447c478bdstevel@tonic-gate/* 0x00c4	     */		cmp	%o3,%g4
13457c478bdstevel@tonic-gate/* 0x00c8	     */		add	%o2,4,%o2
13467c478bdstevel@tonic-gate/* 0x00cc	 214 */		sub	%g5,%o1,%o1
13477c478bdstevel@tonic-gate/* 0x00d0	     */		add	%o1,%o0,%o1
13487c478bdstevel@tonic-gate/* 0x00d4	 216 */		and	%o1,%g3,%o0
13497c478bdstevel@tonic-gate/* 0x00d8	 215 */		ld	[%o2-4],%g5
13507c478bdstevel@tonic-gate/* 0x00dc	 216 */		st	%o0,[%o2-8]
13517c478bdstevel@tonic-gate/* 0x00e0	 217 */		ble,pt	%icc,.L900000606
13527c478bdstevel@tonic-gate/* 0x00e4	     */		srax	%o1,32,%o0
13537c478bdstevel@tonic-gate                       .L900000609:
13547c478bdstevel@tonic-gate/* 0x00e8	 215 */		ld	[%o4],%o1
13557c478bdstevel@tonic-gate/* 0x00ec	 217 */		add	%o4,8,%o4
13567c478bdstevel@tonic-gate/* 0x00f0	     */		add	%o3,1,%o3
13577c478bdstevel@tonic-gate/* 0x00f4	 215 */		ld	[%o2],%o5
13587c478bdstevel@tonic-gate/* 0x00f8	 217 */		add	%o2,4,%o2
13597c478bdstevel@tonic-gate/* 0x00fc	     */		cmp	%o3,%g2
13607c478bdstevel@tonic-gate/* 0x0100	 214 */		sub	%g5,%o1,%o1
13617c478bdstevel@tonic-gate/* 0x0104	     */		add	%o1,%o0,%o1
13627c478bdstevel@tonic-gate/* 0x0108	 216 */		and	%o1,%g3,%o0
13637c478bdstevel@tonic-gate/* 0x010c	     */		st	%o0,[%o2-8]
13647c478bdstevel@tonic-gate/* 0x0110	 215 */		ld	[%o4-4],%o0
13657c478bdstevel@tonic-gate/* 0x0114	 217 */		srax	%o1,32,%o1
13667c478bdstevel@tonic-gate/* 0x0118	 214 */		sub	%o5,%o0,%o0
13677c478bdstevel@tonic-gate/* 0x011c	     */		add	%o0,%o1,%o1
13687c478bdstevel@tonic-gate/* 0x0120	 216 */		and	%o1,%g3,%o0
13697c478bdstevel@tonic-gate/* 0x0124	     */		st	%o0,[%o2-4]
13707c478bdstevel@tonic-gate/* 0x0128	 217 */		bg,pn	%icc,.L77000256
13717c478bdstevel@tonic-gate/* 0x012c	     */		srax	%o1,32,%o5
13727c478bdstevel@tonic-gate                       .L77000264:
13737c478bdstevel@tonic-gate/* 0x0130	 215 */		ld	[%o2],%o0
13747c478bdstevel@tonic-gate                       .L900000610:
13757c478bdstevel@tonic-gate/* 0x0134	 215 */		ld	[%o4],%o1
13767c478bdstevel@tonic-gate/* 0x0138	     */		add	%o5,%o0,%o0
13777c478bdstevel@tonic-gate/* 0x013c	 217 */		add	%o3,1,%o3
13787c478bdstevel@tonic-gate/* 0x0140	     */		add	%o4,4,%o4
13797c478bdstevel@tonic-gate/* 0x0144	     */		cmp	%o3,%g2
13807c478bdstevel@tonic-gate/* 0x0148	 215 */		sub	%o0,%o1,%o1
13817c478bdstevel@tonic-gate/* 0x014c	 216 */		and	%o1,%g3,%o0
13827c478bdstevel@tonic-gate/* 0x0150	     */		st	%o0,[%o2]
13837c478bdstevel@tonic-gate/* 0x0154	 217 */		add	%o2,4,%o2
13847c478bdstevel@tonic-gate/* 0x0158	     */		srax	%o1,32,%o5
13857c478bdstevel@tonic-gate/* 0x015c	     */		ble,a,pt	%icc,.L900000610
13867c478bdstevel@tonic-gate/* 0x0160	     */		ld	[%o2],%o0
13877c478bdstevel@tonic-gate                       .L77000256:
13887c478bdstevel@tonic-gate/* 0x0164	     */		retl	! Result =
13897c478bdstevel@tonic-gate/* 0x0168	     */		nop
13907c478bdstevel@tonic-gate/* 0x016c	   0 */		.type	adjust_montf_result,2
13917c478bdstevel@tonic-gate/* 0x016c	   0 */		.size	adjust_montf_result,(.-adjust_montf_result)
13927c478bdstevel@tonic-gate
13937c478bdstevel@tonic-gate	.section	".text",#alloc,#execinstr
13947c478bdstevel@tonic-gate/* 000000	   0 */		.align	8
13957c478bdstevel@tonic-gate/* 000000	     */		.skip	24
13967c478bdstevel@tonic-gate/* 0x0018	     */		.align	4
13977c478bdstevel@tonic-gate
13987c478bdstevel@tonic-gate!  218		      !		}
13997c478bdstevel@tonic-gate!  219		      !	}
14007c478bdstevel@tonic-gate!  220		      !}
14017c478bdstevel@tonic-gate!  223		      !/*
14027c478bdstevel@tonic-gate!  224		      ! * the lengths of the input arrays should be at least the following:
14037c478bdstevel@tonic-gate!  225		      ! * result[nlen+1], dm1[nlen], dm2[2*nlen+1], dt[4*nlen+2], dn[nlen], nint[nlen]
14047c478bdstevel@tonic-gate!  226		      ! * all of them should be different from one another
14057c478bdstevel@tonic-gate!  227		      ! */
14067c478bdstevel@tonic-gate!  228		      !void mont_mulf_noconv(uint32_t *result,
14077c478bdstevel@tonic-gate!  229		      !			double *dm1, double *dm2, double *dt,
14087c478bdstevel@tonic-gate!  230		      !			double *dn, uint32_t *nint,
14097c478bdstevel@tonic-gate!  231		      !			int nlen, double dn0)
14107c478bdstevel@tonic-gate!  232		      !{
14117c478bdstevel@tonic-gate
14127c478bdstevel@tonic-gate!
14137c478bdstevel@tonic-gate! SUBROUTINE mont_mulf_noconv
14147c478bdstevel@tonic-gate!
14157c478bdstevel@tonic-gate! OFFSET    SOURCE LINE	LABEL	INSTRUCTION
14167c478bdstevel@tonic-gate
14177c478bdstevel@tonic-gate                       	.global mont_mulf_noconv
14187c478bdstevel@tonic-gate                       mont_mulf_noconv:
14197c478bdstevel@tonic-gate/* 000000	 232 */		save	%sp,-224,%sp
14207c478bdstevel@tonic-gate                       .L900000738:
14217c478bdstevel@tonic-gate/* 0x0004	 232 */		call	.+8
14227c478bdstevel@tonic-gate/* 0x0008	     */		sethi	/*X*/%hi(_GLOBAL_OFFSET_TABLE_-(.L900000738-.)),%g5
14237c478bdstevel@tonic-gate/* 0x000c	   0 */		sethi	%hi(Zero),%g2
14247c478bdstevel@tonic-gate/* 0x0010	 232 */		ldx	[%fp+2223],%g3
14257c478bdstevel@tonic-gate/* 0x0014	     */		fmovd	%f14,%f42
14267c478bdstevel@tonic-gate/* 0x0018	     */		add	%g5,/*X*/%lo(_GLOBAL_OFFSET_TABLE_-(.L900000738-.)),%g5
14277c478bdstevel@tonic-gate/* 0x001c	   0 */		add	%g2,%lo(Zero),%g2
14287c478bdstevel@tonic-gate/* 0x0020	 232 */		sra	%g3,0,%l4
14297c478bdstevel@tonic-gate/* 0x0024	     */		add	%g5,%o7,%o1
14307c478bdstevel@tonic-gate
14317c478bdstevel@tonic-gate!  233		      !	int i, j, jj;
14327c478bdstevel@tonic-gate!  234		      !	double digit, m2j, a, b;
14337c478bdstevel@tonic-gate!  235		      !	double *pdm1, *pdm2, *pdn, *pdtj, pdn_0, pdm1_0;
14347c478bdstevel@tonic-gate!  237		      !	pdm1 = &(dm1[0]);
14357c478bdstevel@tonic-gate!  238		      !	pdm2 = &(dm2[0]);
14367c478bdstevel@tonic-gate!  239		      !	pdn = &(dn[0]);
14377c478bdstevel@tonic-gate!  240		      !	pdm2[2 * nlen] = Zero;
14387c478bdstevel@tonic-gate
14397c478bdstevel@tonic-gate/* 0x0028	 240 */		sll	%l4,1,%g3
14407c478bdstevel@tonic-gate/* 0x002c	   0 */		ldx	[%o1+%g2],%o7
14417c478bdstevel@tonic-gate/* 0x0030	 232 */		or	%g0,%i2,%l3
14427c478bdstevel@tonic-gate/* 0x0034	 240 */		sra	%g3,0,%g2
14437c478bdstevel@tonic-gate/* 0x0038	 232 */		or	%g0,%i0,%l6
14447c478bdstevel@tonic-gate/* 0x003c	 240 */		sllx	%g2,3,%i2
14457c478bdstevel@tonic-gate/* 0x0040	     */		ldd	[%o7],%f0
14467c478bdstevel@tonic-gate/* 0x0044	 232 */		or	%g0,%i3,%l0
14477c478bdstevel@tonic-gate/* 0x0048	     */		or	%g0,%i5,%i0
14487c478bdstevel@tonic-gate
14497c478bdstevel@tonic-gate!  242		      !	if (nlen != 16) {
14507c478bdstevel@tonic-gate
14517c478bdstevel@tonic-gate/* 0x004c	 242 */		cmp	%l4,16
14527c478bdstevel@tonic-gate/* 0x0050	     */		be,pn	%icc,.L77000362
14537c478bdstevel@tonic-gate/* 0x0054	     */		std	%f0,[%l3+%i2]
14547c478bdstevel@tonic-gate
14557c478bdstevel@tonic-gate!  243		      !		for (i = 0; i < 4 * nlen + 2; i++)
14567c478bdstevel@tonic-gate
14577c478bdstevel@tonic-gate/* 0x0058	 243 */		sll	%l4,2,%g4
14587c478bdstevel@tonic-gate/* 0x005c	 232 */		or	%g0,%i1,%l5
14597c478bdstevel@tonic-gate/* 0x0060	 243 */		add	%g4,2,%g2
14607c478bdstevel@tonic-gate/* 0x0064	 232 */		or	%g0,%i4,%l7
14617c478bdstevel@tonic-gate/* 0x0068	 243 */		cmp	%g2,0
14627c478bdstevel@tonic-gate/* 0x006c	     */		ble,a,pt	%icc,.L900000752
14637c478bdstevel@tonic-gate/* 0x0070	 245 */		ldd	[%i1],%f4
14647c478bdstevel@tonic-gate/* 0x0074	 243 */		add	%g4,1,%o0
14657c478bdstevel@tonic-gate/* 0x0078	     */		or	%g0,0,%g4
14667c478bdstevel@tonic-gate
14677c478bdstevel@tonic-gate!  244		      !			dt[i] = Zero;
14687c478bdstevel@tonic-gate!  245		      !		a = dt[0] = pdm1[0] * pdm2[0];
14697c478bdstevel@tonic-gate!  246		      !		digit = mod(lower32(a, Zero) * dn0, TwoToMinus16, TwoTo16);
14707c478bdstevel@tonic-gate!  248		      !		pdtj = &(dt[0]);
14717c478bdstevel@tonic-gate!  249		      !		for (j = jj = 0; j < 2 * nlen; j++, jj++, pdtj++) {
14727c478bdstevel@tonic-gate!  250		      !			m2j = pdm2[j];
14737c478bdstevel@tonic-gate!  251		      !			a = pdtj[0] + pdn[0] * digit;
14747c478bdstevel@tonic-gate!  252		      !			b = pdtj[1] + pdm1[0] * pdm2[j + 1] + a * TwoToMinus16;
14757c478bdstevel@tonic-gate!  253		      !			pdtj[1] = b;
14767c478bdstevel@tonic-gate!  255		      !#pragma pipeloop(0)
14777c478bdstevel@tonic-gate!  256		      !			for (i = 1; i < nlen; i++) {
14787c478bdstevel@tonic-gate!  257		      !				pdtj[2 * i] += pdm1[i] * m2j + pdn[i] * digit;
14797c478bdstevel@tonic-gate!  258		      !			}
14807c478bdstevel@tonic-gate!  259		      !			if (jj == 30) {
14817c478bdstevel@tonic-gate!  260		      !				cleanup(dt, j / 2 + 1, 2 * nlen + 1);
14827c478bdstevel@tonic-gate!  261		      !				jj = 0;
14837c478bdstevel@tonic-gate!  262		      !			}
14847c478bdstevel@tonic-gate!  264		      !			digit = mod(lower32(b, Zero) * dn0,
14857c478bdstevel@tonic-gate!  265		      !				    TwoToMinus16, TwoTo16);
14867c478bdstevel@tonic-gate!  266		      !		}
14877c478bdstevel@tonic-gate!  267		      !	} else {
14887c478bdstevel@tonic-gate!  268		      !		a = dt[0] = pdm1[0] * pdm2[0];
14897c478bdstevel@tonic-gate!  270		      !		dt[65] = dt[64] = dt[63] = dt[62] = dt[61] = dt[60] =
14907c478bdstevel@tonic-gate!  271		      !			dt[59] = dt[58] = dt[57] = dt[56] = dt[55] =
14917c478bdstevel@tonic-gate!  272		      !			dt[54] = dt[53] = dt[52] = dt[51] = dt[50] =
14927c478bdstevel@tonic-gate!  273		      !			dt[49] = dt[48] = dt[47] = dt[46] = dt[45] =
14937c478bdstevel@tonic-gate!  274		      !			dt[44] = dt[43] = dt[42] = dt[41] = dt[40] =
14947c478bdstevel@tonic-gate!  275		      !			dt[39] = dt[38] = dt[37] = dt[36] = dt[35] =
14957c478bdstevel@tonic-gate!  276		      !			dt[34] = dt[33] = dt[32] = dt[31] = dt[30] =
14967c478bdstevel@tonic-gate!  277		      !			dt[29] = dt[28] = dt[27] = dt[26] = dt[25] =
14977c478bdstevel@tonic-gate!  278		      !			dt[24] = dt[23] = dt[22] = dt[21] = dt[20] =
14987c478bdstevel@tonic-gate!  279		      !			dt[19] = dt[18] = dt[17] = dt[16] = dt[15] =
14997c478bdstevel@tonic-gate!  280		      !			dt[14] = dt[13] = dt[12] = dt[11] = dt[10] =
15007c478bdstevel@tonic-gate!  281		      !			dt[9] = dt[8] = dt[7] = dt[6] = dt[5] = dt[4] =
15017c478bdstevel@tonic-gate!  282		      !			dt[3] = dt[2] = dt[1] = Zero;
15027c478bdstevel@tonic-gate!  284		      !		pdn_0 = pdn[0];
15037c478bdstevel@tonic-gate!  285		      !		pdm1_0 = pdm1[0];
15047c478bdstevel@tonic-gate!  287		      !		digit = mod(lower32(a, Zero) * dn0, TwoToMinus16, TwoTo16);
15057c478bdstevel@tonic-gate!  288		      !		pdtj = &(dt[0]);
15067c478bdstevel@tonic-gate!  290		      !		for (j = 0; j < 32; j++, pdtj++) {
15077c478bdstevel@tonic-gate
15087c478bdstevel@tonic-gate/* 0x007c	 290 */		add	%o0,1,%g2
15097c478bdstevel@tonic-gate/* 0x0080	     */		cmp	%g2,3
15107c478bdstevel@tonic-gate/* 0x0084	     */		bl,pn	%icc,.L77000363
15117c478bdstevel@tonic-gate/* 0x0088	     */		or	%g0,%i3,%g5
15127c478bdstevel@tonic-gate/* 0x008c	 244 */		std	%f0,[%i3]
15137c478bdstevel@tonic-gate/* 0x0090	     */		add	%i3,8,%g5
15147c478bdstevel@tonic-gate/* 0x0094	 290 */		sub	%o0,1,%g2
15157c478bdstevel@tonic-gate/* 0x0098	 244 */		or	%g0,1,%g4
15167c478bdstevel@tonic-gate                       .L900000722:
15177c478bdstevel@tonic-gate/* 0x009c	 244 */		std	%f0,[%g5]
15187c478bdstevel@tonic-gate/* 0x00a0	     */		add	%g4,2,%g4
15197c478bdstevel@tonic-gate/* 0x00a4	     */		add	%g5,16,%g5
15207c478bdstevel@tonic-gate/* 0x00a8	     */		cmp	%g4,%g2
15217c478bdstevel@tonic-gate/* 0x00ac	     */		ble,pt	%icc,.L900000722
15227c478bdstevel@tonic-gate/* 0x00b0	     */		std	%f0,[%g5-8]
15237c478bdstevel@tonic-gate                       .L900000725:
15247c478bdstevel@tonic-gate/* 0x00b4	 244 */		cmp	%g4,%o0
15257c478bdstevel@tonic-gate/* 0x00b8	     */		bg,pn	%icc,.L77000368
15267c478bdstevel@tonic-gate/* 0x00bc	     */		nop ! volatile
15277c478bdstevel@tonic-gate                       .L77000363:
15287c478bdstevel@tonic-gate/* 0x00c0	 244 */		ldd	[%o7],%f0
15297c478bdstevel@tonic-gate                       .L900000751:
15307c478bdstevel@tonic-gate/* 0x00c4	 244 */		std	%f0,[%g5]
15317c478bdstevel@tonic-gate/* 0x00c8	     */		add	%g4,1,%g4
15327c478bdstevel@tonic-gate/* 0x00cc	     */		add	%g5,8,%g5
15337c478bdstevel@tonic-gate/* 0x00d0	     */		cmp	%g4,%o0
15347c478bdstevel@tonic-gate/* 0x00d4	     */		ble,a,pt	%icc,.L900000751
15357c478bdstevel@tonic-gate/* 0x00d8	     */		ldd	[%o7],%f0
15367c478bdstevel@tonic-gate                       .L77000368:
15377c478bdstevel@tonic-gate/* 0x00dc	 245 */		ldd	[%i1],%f4
15387c478bdstevel@tonic-gate                       .L900000752:
15397c478bdstevel@tonic-gate/* 0x00e0	 249 */		cmp	%g3,0
15407c478bdstevel@tonic-gate/* 0x00e4	 260 */		add	%g3,1,%g2
15417c478bdstevel@tonic-gate/* 0x00e8	 245 */		ldd	[%l3],%f0
15427c478bdstevel@tonic-gate/* 0x00ec	 260 */		sll	%g2,1,%i1
15437c478bdstevel@tonic-gate/* 0x00f0	 248 */		or	%g0,%i3,%o4
15447c478bdstevel@tonic-gate/* 0x00f4	 246 */		ldd	[%o7],%f2
15457c478bdstevel@tonic-gate/* 0x00f8	 260 */		add	%l5,8,%g2
15467c478bdstevel@tonic-gate/* 0x00fc	 249 */		or	%g0,0,%i4
15477c478bdstevel@tonic-gate/* 0x0100	 245 */		fmuld	%f4,%f0,%f0
15487c478bdstevel@tonic-gate/* 0x0104	     */		std	%f0,[%i3]
15497c478bdstevel@tonic-gate/* 0x0108	 243 */		sub	%g3,1,%i3
15507c478bdstevel@tonic-gate/* 0x010c	 246 */		ldd	[%o7-8],%f28
15517c478bdstevel@tonic-gate/* 0x0110	 260 */		add	%l7,8,%g3
15527c478bdstevel@tonic-gate/* 0x0114	 249 */		or	%g0,0,%l1
15537c478bdstevel@tonic-gate/* 0x0118	 246 */		ldd	[%o7-16],%f30
15547c478bdstevel@tonic-gate/* 0x011c	 260 */		sub	%l4,1,%o5
15557c478bdstevel@tonic-gate/* 0x0120	     */		or	%g0,1,%l2
15567c478bdstevel@tonic-gate/* 0x0124	     */		fdtox	%f0,%f4
15577c478bdstevel@tonic-gate/* 0x0128	     */		fmovs	%f2,%f4
15587c478bdstevel@tonic-gate/* 0x012c	     */		fxtod	%f4,%f0
15597c478bdstevel@tonic-gate/* 0x0130	 246 */		fmuld	%f0,%f14,%f0
15607c478bdstevel@tonic-gate/* 0x0134	     */		fmuld	%f0,%f28,%f2
15617c478bdstevel@tonic-gate/* 0x0138	     */		fdtox	%f2,%f2
15627c478bdstevel@tonic-gate/* 0x013c	     */		fxtod	%f2,%f2
15637c478bdstevel@tonic-gate/* 0x0140	     */		fmuld	%f2,%f30,%f2
15647c478bdstevel@tonic-gate/* 0x0144	     */		fsubd	%f0,%f2,%f22
15657c478bdstevel@tonic-gate/* 0x0148	 249 */		ble,pt	%icc,.L900000745
15667c478bdstevel@tonic-gate/* 0x014c	 324 */		add	%l0,%i2,%g4
15677c478bdstevel@tonic-gate/* 0x0150	 252 */		ldd	[%l7],%f0
15687c478bdstevel@tonic-gate/* 0x0154	 260 */		stx	%g3,[%sp+2223]
15697c478bdstevel@tonic-gate/* 0x0158	     */		stx	%g2,[%sp+2231]
15707c478bdstevel@tonic-gate                       .L900000746:
15717c478bdstevel@tonic-gate/* 0x015c	 252 */		sra	%l2,0,%g2
15727c478bdstevel@tonic-gate/* 0x0160	     */		fmuld	%f0,%f22,%f4
15737c478bdstevel@tonic-gate/* 0x0164	     */		ldd	[%l5],%f2
15747c478bdstevel@tonic-gate/* 0x0168	     */		sllx	%g2,3,%g2
15757c478bdstevel@tonic-gate/* 0x016c	     */		ldd	[%o4],%f6
15767c478bdstevel@tonic-gate/* 0x0170	 256 */		cmp	%l4,1
15777c478bdstevel@tonic-gate/* 0x0174	 252 */		ldd	[%l3+%g2],%f0
15787c478bdstevel@tonic-gate/* 0x0178	 250 */		sra	%l1,0,%g2
15797c478bdstevel@tonic-gate/* 0x017c	 256 */		or	%g0,1,%g4
15807c478bdstevel@tonic-gate/* 0x0180	 252 */		faddd	%f6,%f4,%f6
15817c478bdstevel@tonic-gate/* 0x0184	 250 */		sllx	%g2,3,%g2
15827c478bdstevel@tonic-gate/* 0x0188	 260 */		ldx	[%sp+2231],%g5
15837c478bdstevel@tonic-gate/* 0x018c	 252 */		fmuld	%f2,%f0,%f0
15847c478bdstevel@tonic-gate/* 0x0190	     */		ldd	[%o4+8],%f2
15857c478bdstevel@tonic-gate/* 0x0194	 257 */		or	%g0,32,%o1
15867c478bdstevel@tonic-gate/* 0x0198	 250 */		ldd	[%l3+%g2],%f24
15877c478bdstevel@tonic-gate/* 0x019c	 256 */		sub	%l4,3,%i5
15887c478bdstevel@tonic-gate/* 0x01a0	 257 */		or	%g0,16,%o2
15897c478bdstevel@tonic-gate/* 0x01a4	 260 */		ldx	[%sp+2223],%g3
15907c478bdstevel@tonic-gate/* 0x01a8	 257 */		or	%g0,6,%o3
15917c478bdstevel@tonic-gate/* 0x01ac	 252 */		faddd	%f2,%f0,%f0
15927c478bdstevel@tonic-gate/* 0x01b0	     */		fmuld	%f6,%f28,%f2
15937c478bdstevel@tonic-gate/* 0x01b4	     */		faddd	%f0,%f2,%f26
15947c478bdstevel@tonic-gate/* 0x01b8	 253 */		std	%f26,[%o4+8]
15957c478bdstevel@tonic-gate/* 0x01bc	 256 */		ble,pt	%icc,.L900000750
15967c478bdstevel@tonic-gate/* 0x01c0	 259 */		cmp	%i4,30
15977c478bdstevel@tonic-gate/* 0x01c4	 256 */		cmp	%o5,7
15987c478bdstevel@tonic-gate/* 0x01c8	     */		bl,pn	%icc,.L77000367
15997c478bdstevel@tonic-gate/* 0x01cc	     */		or	%g0,2,%o0
16007c478bdstevel@tonic-gate/* 0x01d0	 257 */		ldd	[%l5+8],%f4
16017c478bdstevel@tonic-gate/* 0x01d4	     */		add	%l7,32,%g3
16027c478bdstevel@tonic-gate/* 0x01d8	     */		add	%l5,40,%g5
16037c478bdstevel@tonic-gate/* 0x01dc	     */		ldd	[%l7+8],%f0
16047c478bdstevel@tonic-gate/* 0x01e0	     */		or	%g0,5,%g4
16057c478bdstevel@tonic-gate/* 0x01e4	     */		or	%g0,6,%o0
16067c478bdstevel@tonic-gate/* 0x01e8	     */		ldd	[%l5+16],%f2
16077c478bdstevel@tonic-gate/* 0x01ec	     */		fmuld	%f4,%f24,%f10
16087c478bdstevel@tonic-gate/* 0x01f0	     */		ldd	[%l7+16],%f8
16097c478bdstevel@tonic-gate/* 0x01f4	     */		fmuld	%f0,%f22,%f0
16107c478bdstevel@tonic-gate/* 0x01f8	     */		ldd	[%o4+16],%f14
16117c478bdstevel@tonic-gate/* 0x01fc	     */		fmuld	%f2,%f24,%f4
16127c478bdstevel@tonic-gate/* 0x0200	     */		ldd	[%l5+24],%f2
16137c478bdstevel@tonic-gate/* 0x0204	     */		ldd	[%l7+24],%f6
16147c478bdstevel@tonic-gate/* 0x0208	     */		faddd	%f10,%f0,%f10
16157c478bdstevel@tonic-gate/* 0x020c	     */		ldd	[%o4+%o1],%f12
16167c478bdstevel@tonic-gate/* 0x0210	     */		ldd	[%l5+32],%f0
16177c478bdstevel@tonic-gate                       .L900000734:
16187c478bdstevel@tonic-gate/* 0x0214	 257 */		sllx	%o0,3,%g2
16197c478bdstevel@tonic-gate/* 0x0218	     */		add	%g4,3,%g4
16207c478bdstevel@tonic-gate/* 0x021c	     */		ldd	[%g3],%f16
16217c478bdstevel@tonic-gate/* 0x0220	     */		fmuld	%f8,%f22,%f8
16227c478bdstevel@tonic-gate/* 0x0224	     */		add	%o3,2,%o0
16237c478bdstevel@tonic-gate/* 0x0228	     */		cmp	%g4,%i5
16247c478bdstevel@tonic-gate/* 0x022c	     */		ldd	[%o4+%g2],%f18
16257c478bdstevel@tonic-gate/* 0x0230	     */		sra	%o0,0,%o3
16267c478bdstevel@tonic-gate/* 0x0234	     */		add	%g3,24,%g3
16277c478bdstevel@tonic-gate/* 0x0238	     */		ldd	[%g5],%f20
16287c478bdstevel@tonic-gate/* 0x023c	     */		faddd	%f14,%f10,%f10
16297c478bdstevel@tonic-gate/* 0x0240	     */		std	%f10,[%o4+%o2]
16307c478bdstevel@tonic-gate/* 0x0244	     */		faddd	%f4,%f8,%f4
16317c478bdstevel@tonic-gate/* 0x0248	     */		add	%g5,24,%g5
16327c478bdstevel@tonic-gate/* 0x024c	     */		fmuld	%f2,%f24,%f10
16337c478bdstevel@tonic-gate/* 0x0250	     */		fmuld	%f6,%f22,%f6
16347c478bdstevel@tonic-gate/* 0x0254	     */		sllx	%o3,3,%o2
16357c478bdstevel@tonic-gate/* 0x0258	     */		ldd	[%g3-16],%f8
16367c478bdstevel@tonic-gate/* 0x025c	     */		add	%o0,2,%o0
16377c478bdstevel@tonic-gate/* 0x0260	     */		ldd	[%o4+%o2],%f14
16387c478bdstevel@tonic-gate/* 0x0264	     */		sra	%o0,0,%o3
16397c478bdstevel@tonic-gate/* 0x0268	     */		faddd	%f12,%f4,%f4
16407c478bdstevel@tonic-gate/* 0x026c	     */		ldd	[%g5-16],%f2
16417c478bdstevel@tonic-gate/* 0x0270	     */		std	%f4,[%o4+%o1]
16427c478bdstevel@tonic-gate/* 0x0274	     */		faddd	%f10,%f6,%f4
16437c478bdstevel@tonic-gate/* 0x0278	     */		fmuld	%f0,%f24,%f10
16447c478bdstevel@tonic-gate/* 0x027c	     */		fmuld	%f16,%f22,%f16
16457c478bdstevel@tonic-gate/* 0x0280	     */		sllx	%o3,3,%o1
16467c478bdstevel@tonic-gate/* 0x0284	     */		ldd	[%g3-8],%f6
16477c478bdstevel@tonic-gate/* 0x0288	     */		add	%o0,2,%o3
16487c478bdstevel@tonic-gate/* 0x028c	     */		ldd	[%o4+%o1],%f12
16497c478bdstevel@tonic-gate/* 0x0290	     */		sra	%o3,0,%o0
16507c478bdstevel@tonic-gate/* 0x0294	     */		faddd	%f18,%f4,%f4
16517c478bdstevel@tonic-gate/* 0x0298	     */		ldd	[%g5-8],%f0
16527c478bdstevel@tonic-gate/* 0x029c	     */		std	%f4,[%o4+%g2]
16537c478bdstevel@tonic-gate/* 0x02a0	     */		faddd	%f10,%f16,%f10
16547c478bdstevel@tonic-gate/* 0x02a4	     */		ble,pt	%icc,.L900000734
16557c478bdstevel@tonic-gate/* 0x02a8	     */		fmuld	%f20,%f24,%f4
16567c478bdstevel@tonic-gate                       .L900000737:
16577c478bdstevel@tonic-gate/* 0x02ac	 257 */		fmuld	%f8,%f22,%f8
16587c478bdstevel@tonic-gate/* 0x02b0	     */		ldd	[%g3],%f16
16597c478bdstevel@tonic-gate/* 0x02b4	     */		sllx	%o0,3,%g2
16607c478bdstevel@tonic-gate/* 0x02b8	     */		faddd	%f14,%f10,%f10
16617c478bdstevel@tonic-gate/* 0x02bc	     */		ldd	[%o4+%g2],%f14
16627c478bdstevel@tonic-gate/* 0x02c0	     */		fmuld	%f2,%f24,%f2
16637c478bdstevel@tonic-gate/* 0x02c4	     */		add	%o3,2,%o0
16647c478bdstevel@tonic-gate/* 0x02c8	     */		fmuld	%f6,%f22,%f6
16657c478bdstevel@tonic-gate/* 0x02cc	     */		std	%f10,[%o4+%o2]
16667c478bdstevel@tonic-gate/* 0x02d0	     */		sra	%o0,0,%o2
16677c478bdstevel@tonic-gate/* 0x02d4	     */		faddd	%f4,%f8,%f4
16687c478bdstevel@tonic-gate/* 0x02d8	     */		fmuld	%f0,%f24,%f0
16697c478bdstevel@tonic-gate/* 0x02dc	     */		sllx	%o2,3,%o2
16707c478bdstevel@tonic-gate/* 0x02e0	     */		fmuld	%f16,%f22,%f8
16717c478bdstevel@tonic-gate/* 0x02e4	     */		cmp	%g4,%o5
16727c478bdstevel@tonic-gate/* 0x02e8	     */		add	%o3,4,%o0
16737c478bdstevel@tonic-gate/* 0x02ec	     */		faddd	%f2,%f6,%f2
16747c478bdstevel@tonic-gate/* 0x02f0	     */		add	%g3,8,%g3
16757c478bdstevel@tonic-gate/* 0x02f4	     */		ldd	[%o4+%o2],%f10
16767c478bdstevel@tonic-gate/* 0x02f8	     */		faddd	%f12,%f4,%f4
16777c478bdstevel@tonic-gate/* 0x02fc	     */		faddd	%f0,%f8,%f0
16787c478bdstevel@tonic-gate/* 0x0300	     */		std	%f4,[%o4+%o1]
16797c478bdstevel@tonic-gate/* 0x0304	     */		faddd	%f14,%f2,%f2
16807c478bdstevel@tonic-gate/* 0x0308	     */		std	%f2,[%o4+%g2]
16817c478bdstevel@tonic-gate/* 0x030c	     */		faddd	%f10,%f0,%f0
16827c478bdstevel@tonic-gate/* 0x0310	     */		bg,pn	%icc,.L77000296
16837c478bdstevel@tonic-gate/* 0x0314	     */		std	%f0,[%o4+%o2]
16847c478bdstevel@tonic-gate                       .L77000367:
16857c478bdstevel@tonic-gate/* 0x0318	 257 */		ldd	[%g5],%f2
16867c478bdstevel@tonic-gate                       .L900000749:
16877c478bdstevel@tonic-gate/* 0x031c	 257 */		ldd	[%g3],%f0
16887c478bdstevel@tonic-gate/* 0x0320	     */		fmuld	%f2,%f24,%f2
16897c478bdstevel@tonic-gate/* 0x0324	     */		sra	%o0,0,%g2
16907c478bdstevel@tonic-gate/* 0x0328	     */		sllx	%g2,3,%g2
16917c478bdstevel@tonic-gate/* 0x032c	     */		add	%g4,1,%g4
16927c478bdstevel@tonic-gate/* 0x0330	     */		fmuld	%f0,%f22,%f0
16937c478bdstevel@tonic-gate/* 0x0334	     */		ldd	[%o4+%g2],%f4
16947c478bdstevel@tonic-gate/* 0x0338	     */		add	%g5,8,%g5
16957c478bdstevel@tonic-gate/* 0x033c	     */		add	%g3,8,%g3
16967c478bdstevel@tonic-gate/* 0x0340	     */		add	%o0,2,%o0
16977c478bdstevel@tonic-gate/* 0x0344	     */		cmp	%g4,%o5
16987c478bdstevel@tonic-gate/* 0x0348	     */		faddd	%f2,%f0,%f0
16997c478bdstevel@tonic-gate/* 0x034c	     */		faddd	%f4,%f0,%f0
17007c478bdstevel@tonic-gate/* 0x0350	     */		std	%f0,[%o4+%g2]
17017c478bdstevel@tonic-gate/* 0x0354	     */		ble,a,pt	%icc,.L900000749
17027c478bdstevel@tonic-gate/* 0x0358	     */		ldd	[%g5],%f2
17037c478bdstevel@tonic-gate                       .L77000296:
17047c478bdstevel@tonic-gate/* 0x035c	 259 */		cmp	%i4,30
17057c478bdstevel@tonic-gate                       .L900000750:
17067c478bdstevel@tonic-gate/* 0x0360	 259 */		bne,a,pt	%icc,.L900000748
17077c478bdstevel@tonic-gate/* 0x0364	     */		fdtox	%f26,%f0
17087c478bdstevel@tonic-gate/* 0x0368	 260 */		srl	%l1,31,%g2
17097c478bdstevel@tonic-gate/* 0x036c	     */		ldd	[%o7],%f12
17107c478bdstevel@tonic-gate/* 0x0370	 259 */		sub	%i1,1,%o0
17117c478bdstevel@tonic-gate/* 0x0374	 260 */		add	%l1,%g2,%g2
17127c478bdstevel@tonic-gate/* 0x0378	     */		sra	%g2,1,%g2
17137c478bdstevel@tonic-gate/* 0x037c	     */		fmovd	%f12,%f10
17147c478bdstevel@tonic-gate/* 0x0380	     */		add	%g2,1,%g2
17157c478bdstevel@tonic-gate/* 0x0384	     */		sll	%g2,1,%g2
17167c478bdstevel@tonic-gate/* 0x0388	     */		cmp	%g2,%i1
17177c478bdstevel@tonic-gate/* 0x038c	     */		bge,pt	%icc,.L77000298
17187c478bdstevel@tonic-gate/* 0x0390	 261 */		or	%g0,0,%i4
17197c478bdstevel@tonic-gate/* 0x0394	 260 */		or	%g0,%g2,%g4
17207c478bdstevel@tonic-gate/* 0x0398	 259 */		add	%g2,1,%g5
17217c478bdstevel@tonic-gate/* 0x039c	 260 */		sra	%g4,0,%g2
17227c478bdstevel@tonic-gate                       .L900000747:
17237c478bdstevel@tonic-gate/* 0x03a0	 260 */		sllx	%g2,3,%g2
17247c478bdstevel@tonic-gate/* 0x03a4	     */		ldd	[%o7],%f4
17257c478bdstevel@tonic-gate/* 0x03a8	     */		add	%g4,2,%g4
17267c478bdstevel@tonic-gate/* 0x03ac	     */		sra	%g5,0,%g3
17277c478bdstevel@tonic-gate/* 0x03b0	     */		ldd	[%l0+%g2],%f6
17287c478bdstevel@tonic-gate/* 0x03b4	     */		add	%g5,2,%g5
17297c478bdstevel@tonic-gate/* 0x03b8	     */		sllx	%g3,3,%g3
17307c478bdstevel@tonic-gate/* 0x03bc	     */		cmp	%g4,%o0
17317c478bdstevel@tonic-gate/* 0x03c0	     */		ldd	[%l0+%g3],%f8
17327c478bdstevel@tonic-gate/* 0x03c4	     */		fdtox	%f6,%f0
17337c478bdstevel@tonic-gate/* 0x03c8	     */		fdtox	%f8,%f2
17347c478bdstevel@tonic-gate/* 0x03cc	     */		fmovs	%f4,%f0
17357c478bdstevel@tonic-gate/* 0x03d0	     */		fmovs	%f4,%f2
17367c478bdstevel@tonic-gate/* 0x03d4	     */		fxtod	%f0,%f0
17377c478bdstevel@tonic-gate/* 0x03d8	     */		fdtox	%f6,%f4
17387c478bdstevel@tonic-gate/* 0x03dc	     */		fxtod	%f2,%f2
17397c478bdstevel@tonic-gate/* 0x03e0	     */		fdtox	%f8,%f6
17407c478bdstevel@tonic-gate/* 0x03e4	     */		faddd	%f0,%f10,%f0
17417c478bdstevel@tonic-gate/* 0x03e8	     */		std	%f0,[%l0+%g2]
17427c478bdstevel@tonic-gate/* 0x03ec	     */		faddd	%f2,%f12,%f0
17437c478bdstevel@tonic-gate/* 0x03f0	     */		std	%f0,[%l0+%g3]
17447c478bdstevel@tonic-gate/* 0x03f4	     */		fitod	%f4,%f10
17457c478bdstevel@tonic-gate/* 0x03f8	     */		fitod	%f6,%f12
17467c478bdstevel@tonic-gate/* 0x03fc	     */		ble,pt	%icc,.L900000747
17477c478bdstevel@tonic-gate/* 0x0400	     */		sra	%g4,0,%g2
17487c478bdstevel@tonic-gate                       .L77000316:
17497c478bdstevel@tonic-gate/* 0x0404	 261 */		or	%g0,0,%i4
17507c478bdstevel@tonic-gate                       .L77000298:
17517c478bdstevel@tonic-gate/* 0x0408	     */		fdtox	%f26,%f0
17527c478bdstevel@tonic-gate                       .L900000748:
17537c478bdstevel@tonic-gate/* 0x040c	 265 */		ldd	[%o7],%f2
17547c478bdstevel@tonic-gate/* 0x0410	     */		add	%l1,1,%l1
17557c478bdstevel@tonic-gate/* 0x0414	     */		add	%l2,1,%l2
17567c478bdstevel@tonic-gate/* 0x0418	     */		add	%i4,1,%i4
17577c478bdstevel@tonic-gate/* 0x041c	     */		add	%o4,8,%o4
17587c478bdstevel@tonic-gate/* 0x0420	     */		cmp	%l1,%i3
17597c478bdstevel@tonic-gate/* 0x0424	     */		fmovs	%f2,%f0
17607c478bdstevel@tonic-gate/* 0x0428	     */		fxtod	%f0,%f0
17617c478bdstevel@tonic-gate/* 0x042c	     */		fmuld	%f0,%f42,%f0
17627c478bdstevel@tonic-gate/* 0x0430	     */		fmuld	%f0,%f28,%f2
17637c478bdstevel@tonic-gate/* 0x0434	     */		fdtox	%f2,%f2
17647c478bdstevel@tonic-gate/* 0x0438	     */		fxtod	%f2,%f2
17657c478bdstevel@tonic-gate/* 0x043c	     */		fmuld	%f2,%f30,%f2
17667c478bdstevel@tonic-gate/* 0x0440	     */		fsubd	%f0,%f2,%f22
17677c478bdstevel@tonic-gate/* 0x0444	     */		ble,a,pt	%icc,.L900000746
17687c478bdstevel@tonic-gate/* 0x0448	 252 */		ldd	[%l7],%f0
17697c478bdstevel@tonic-gate                       .L900000721:
17707c478bdstevel@tonic-gate/* 0x044c	 265 */		ba	.L900000745
17717c478bdstevel@tonic-gate/* 0x0450	 324 */		add	%l0,%i2,%g4
17727c478bdstevel@tonic-gate                       .L77000362:
17737c478bdstevel@tonic-gate/* 0x0454	 268 */		ldd	[%i1],%f4
17747c478bdstevel@tonic-gate/* 0x0458	 290 */		or	%g0,1,%g5
17757c478bdstevel@tonic-gate/* 0x045c	 288 */		or	%g0,%i3,%g4
17767c478bdstevel@tonic-gate/* 0x0460	 268 */		ldd	[%l3],%f2
17777c478bdstevel@tonic-gate/* 0x0464	 282 */		std	%f0,[%i3+8]
17787c478bdstevel@tonic-gate/* 0x0468	     */		std	%f0,[%i3+16]
17797c478bdstevel@tonic-gate/* 0x046c	 268 */		fmuld	%f4,%f2,%f2
17807c478bdstevel@tonic-gate/* 0x0470	     */		std	%f2,[%i3]
17817c478bdstevel@tonic-gate/* 0x0474	 282 */		std	%f0,[%i3+24]
17827c478bdstevel@tonic-gate/* 0x0478	     */		std	%f0,[%i3+32]
17837c478bdstevel@tonic-gate/* 0x047c	     */		fdtox	%f2,%f2
17847c478bdstevel@tonic-gate/* 0x0480	     */		std	%f0,[%i3+40]
17857c478bdstevel@tonic-gate/* 0x0484	     */		std	%f0,[%i3+48]
17867c478bdstevel@tonic-gate/* 0x0488	     */		std	%f0,[%i3+56]
17877c478bdstevel@tonic-gate/* 0x048c	     */		std	%f0,[%i3+64]
17887c478bdstevel@tonic-gate/* 0x0490	     */		fmovs	%f0,%f2
17897c478bdstevel@tonic-gate/* 0x0494	     */		std	%f0,[%i3+72]
17907c478bdstevel@tonic-gate/* 0x0498	     */		std	%f0,[%i3+80]
17917c478bdstevel@tonic-gate/* 0x049c	     */		fxtod	%f2,%f2
17927c478bdstevel@tonic-gate/* 0x04a0	     */		std	%f0,[%i3+88]
17937c478bdstevel@tonic-gate/* 0x04a4	     */		std	%f0,[%i3+96]
17947c478bdstevel@tonic-gate/* 0x04a8	     */		std	%f0,[%i3+104]
17957c478bdstevel@tonic-gate/* 0x04ac	     */		std	%f0,[%i3+112]
17967c478bdstevel@tonic-gate/* 0x04b0	     */		std	%f0,[%i3+120]
17977c478bdstevel@tonic-gate/* 0x04b4	     */		std	%f0,[%i3+128]
17987c478bdstevel@tonic-gate/* 0x04b8	     */		std	%f0,[%i3+136]
17997c478bdstevel@tonic-gate/* 0x04bc	     */		std	%f0,[%i3+144]
18007c478bdstevel@tonic-gate/* 0x04c0	     */		std	%f0,[%i3+152]
18017c478bdstevel@tonic-gate/* 0x04c4	     */		std	%f0,[%i3+160]
18027c478bdstevel@tonic-gate/* 0x04c8	     */		std	%f0,[%i3+168]
18037c478bdstevel@tonic-gate/* 0x04cc	     */		std	%f0,[%i3+176]
18047c478bdstevel@tonic-gate/* 0x04d0	     */		std	%f0,[%i3+184]
18057c478bdstevel@tonic-gate/* 0x04d4	     */		std	%f0,[%i3+192]
18067c478bdstevel@tonic-gate/* 0x04d8	     */		std	%f0,[%i3+200]
18077c478bdstevel@tonic-gate/* 0x04dc	     */		std	%f0,[%i3+208]
18087c478bdstevel@tonic-gate/* 0x04e0	     */		std	%f0,[%i3+216]
18097c478bdstevel@tonic-gate/* 0x04e4	     */		std	%f0,[%i3+224]
18107c478bdstevel@tonic-gate/* 0x04e8	     */		std	%f0,[%i3+232]
18117c478bdstevel@tonic-gate/* 0x04ec	     */		std	%f0,[%i3+240]
18127c478bdstevel@tonic-gate/* 0x04f0	     */		std	%f0,[%i3+248]
18137c478bdstevel@tonic-gate/* 0x04f4	 287 */		fmuld	%f2,%f14,%f6
18147c478bdstevel@tonic-gate
18157c478bdstevel@tonic-gate!  292		      !			m2j = pdm2[j];
18167c478bdstevel@tonic-gate!  293		      !			a = pdtj[0] + pdn_0 * digit;
18177c478bdstevel@tonic-gate!  294		      !			b = pdtj[1] + pdm1_0 * pdm2[j + 1] + a * TwoToMinus16;
18187c478bdstevel@tonic-gate
18197c478bdstevel@tonic-gate/* 0x04f8	 294 */		sra	%g5,0,%g2
18207c478bdstevel@tonic-gate/* 0x04fc	 282 */		std	%f0,[%i3+256]
18217c478bdstevel@tonic-gate/* 0x0500	 290 */		or	%g0,0,%g3
18227c478bdstevel@tonic-gate/* 0x0504	 282 */		std	%f0,[%i3+264]
18237c478bdstevel@tonic-gate/* 0x0508	     */		std	%f0,[%i3+272]
18247c478bdstevel@tonic-gate/* 0x050c	     */		std	%f0,[%i3+280]
18257c478bdstevel@tonic-gate/* 0x0510	     */		std	%f0,[%i3+288]
18267c478bdstevel@tonic-gate/* 0x0514	     */		std	%f0,[%i3+296]
18277c478bdstevel@tonic-gate/* 0x0518	     */		std	%f0,[%i3+304]
18287c478bdstevel@tonic-gate/* 0x051c	     */		std	%f0,[%i3+312]
18297c478bdstevel@tonic-gate/* 0x0520	     */		std	%f0,[%i3+320]
18307c478bdstevel@tonic-gate/* 0x0524	     */		std	%f0,[%i3+328]
18317c478bdstevel@tonic-gate/* 0x0528	     */		std	%f0,[%i3+336]
18327c478bdstevel@tonic-gate/* 0x052c	     */		std	%f0,[%i3+344]
18337c478bdstevel@tonic-gate/* 0x0530	     */		std	%f0,[%i3+352]
18347c478bdstevel@tonic-gate/* 0x0534	     */		std	%f0,[%i3+360]
18357c478bdstevel@tonic-gate/* 0x0538	     */		std	%f0,[%i3+368]
18367c478bdstevel@tonic-gate/* 0x053c	     */		std	%f0,[%i3+376]
18377c478bdstevel@tonic-gate/* 0x0540	     */		std	%f0,[%i3+384]
18387c478bdstevel@tonic-gate/* 0x0544	     */		std	%f0,[%i3+392]
18397c478bdstevel@tonic-gate/* 0x0548	     */		std	%f0,[%i3+400]
18407c478bdstevel@tonic-gate/* 0x054c	     */		std	%f0,[%i3+408]
18417c478bdstevel@tonic-gate/* 0x0550	 287 */		ldd	[%o7-8],%f44
18427c478bdstevel@tonic-gate/* 0x0554	     */		ldd	[%o7-16],%f46
18437c478bdstevel@tonic-gate/* 0x0558	 282 */		std	%f0,[%i3+416]
18447c478bdstevel@tonic-gate/* 0x055c	     */		fmuld	%f6,%f44,%f4
18457c478bdstevel@tonic-gate/* 0x0560	     */		std	%f0,[%i3+424]
18467c478bdstevel@tonic-gate/* 0x0564	     */		std	%f0,[%i3+432]
18477c478bdstevel@tonic-gate/* 0x0568	     */		std	%f0,[%i3+440]
18487c478bdstevel@tonic-gate/* 0x056c	     */		fdtox	%f4,%f2
18497c478bdstevel@tonic-gate/* 0x0570	     */		std	%f0,[%i3+448]
18507c478bdstevel@tonic-gate/* 0x0574	     */		std	%f0,[%i3+456]
18517c478bdstevel@tonic-gate/* 0x0578	     */		std	%f0,[%i3+464]
18527c478bdstevel@tonic-gate/* 0x057c	     */		fxtod	%f2,%f2
18537c478bdstevel@tonic-gate/* 0x0580	     */		std	%f0,[%i3+472]
18547c478bdstevel@tonic-gate/* 0x0584	     */		std	%f0,[%i3+480]
18557c478bdstevel@tonic-gate/* 0x0588	     */		std	%f0,[%i3+488]
18567c478bdstevel@tonic-gate/* 0x058c	     */		fmuld	%f2,%f46,%f2
18577c478bdstevel@tonic-gate/* 0x0590	     */		std	%f0,[%i3+496]
18587c478bdstevel@tonic-gate/* 0x0594	     */		std	%f0,[%i3+504]
18597c478bdstevel@tonic-gate/* 0x0598	     */		std	%f0,[%i3+512]
18607c478bdstevel@tonic-gate/* 0x059c	     */		fsubd	%f6,%f2,%f38
18617c478bdstevel@tonic-gate/* 0x05a0	     */		std	%f0,[%i3+520]
18627c478bdstevel@tonic-gate/* 0x05a4	 284 */		ldd	[%i4],%f36
18637c478bdstevel@tonic-gate/* 0x05a8	 285 */		ldd	[%i1],%f40
18647c478bdstevel@tonic-gate                       .L900000744:
18657c478bdstevel@tonic-gate
18667c478bdstevel@tonic-gate
18677c478bdstevel@tonic-gate
18687c478bdstevel@tonic-gate
18697c478bdstevel@tonic-gate	fmovd %f38,%f0
18707c478bdstevel@tonic-gate	fmovd %f42,%f18
18717c478bdstevel@tonic-gate	ldd [%i4],%f2
18727c478bdstevel@tonic-gate	ldd [%g4],%f8
18737c478bdstevel@tonic-gate	ldd [%i1],%f10
18747c478bdstevel@tonic-gate	ldd [%o7-8],%f14
18757c478bdstevel@tonic-gate	ldd [%o7-16],%f16
18767c478bdstevel@tonic-gate	ldd [%l3],%f24
18777c478bdstevel@tonic-gate
18787c478bdstevel@tonic-gate	ldd [%i1+8],%f26
18797c478bdstevel@tonic-gate	ldd [%i1+16],%f40
18807c478bdstevel@tonic-gate	ldd [%i1+48],%f46
18817c478bdstevel@tonic-gate	ldd [%i1+56],%f30
18827c478bdstevel@tonic-gate	ldd [%i1+64],%f54
18837c478bdstevel@tonic-gate	ldd [%i1+104],%f34
18847c478bdstevel@tonic-gate	ldd [%i1+112],%f58
18857c478bdstevel@tonic-gate
18867c478bdstevel@tonic-gate	ldd [%i4+8],%f28
18877c478bdstevel@tonic-gate	ldd [%i4+104],%f38
18887c478bdstevel@tonic-gate	ldd [%i4+112],%f60
18897c478bdstevel@tonic-gate
18907c478bdstevel@tonic-gate
18917c478bdstevel@tonic-gate	.L99999999:
18927c478bdstevel@tonic-gate!1
18937c478bdstevel@tonic-gate	ldd	[%i1+24],%f32
18947c478bdstevel@tonic-gate	fmuld	%f0,%f2,%f4
18957c478bdstevel@tonic-gate!2
18967c478bdstevel@tonic-gate	ldd	[%i4+24],%f36
18977c478bdstevel@tonic-gate	fmuld	%f26,%f24,%f20
18987c478bdstevel@tonic-gate!3
18997c478bdstevel@tonic-gate	ldd	[%i1+40],%f42
19007c478bdstevel@tonic-gate	fmuld	%f28,%f0,%f22
19017c478bdstevel@tonic-gate!4
19027c478bdstevel@tonic-gate	ldd	[%i4+40],%f44
19037c478bdstevel@tonic-gate	fmuld	%f32,%f24,%f32
19047c478bdstevel@tonic-gate!5
19057c478bdstevel@tonic-gate	ldd	[%l3+8],%f6
19067c478bdstevel@tonic-gate	faddd	%f4,%f8,%f4
19077c478bdstevel@tonic-gate	fmuld	%f36,%f0,%f36
19087c478bdstevel@tonic-gate!6
19097c478bdstevel@tonic-gate	add	%l3,8,%l3
19107c478bdstevel@tonic-gate	ldd	[%i4+56],%f50
19117c478bdstevel@tonic-gate	fmuld	%f42,%f24,%f42
19127c478bdstevel@tonic-gate!7
19137c478bdstevel@tonic-gate	ldd	[%i1+72],%f52
19147c478bdstevel@tonic-gate	faddd	%f20,%f22,%f20
19157c478bdstevel@tonic-gate	fmuld	%f44,%f0,%f44
19167c478bdstevel@tonic-gate!8
19177c478bdstevel@tonic-gate	ldd	[%g4+16],%f22
19187c478bdstevel@tonic-gate	fmuld	%f10,%f6,%f12
19197c478bdstevel@tonic-gate!9
19207c478bdstevel@tonic-gate	ldd	[%i4+72],%f56
19217c478bdstevel@tonic-gate	faddd	%f32,%f36,%f32
19227c478bdstevel@tonic-gate	fmuld	%f14,%f4,%f4
19237c478bdstevel@tonic-gate!10
19247c478bdstevel@tonic-gate	ldd	[%g4+48],%f36
19257c478bdstevel@tonic-gate	fmuld	%f30,%f24,%f48
19267c478bdstevel@tonic-gate!11
19277c478bdstevel@tonic-gate	ldd	[%g4+8],%f8
19287c478bdstevel@tonic-gate	faddd	%f20,%f22,%f20
19297c478bdstevel@tonic-gate	fmuld	%f50,%f0,%f50
19307c478bdstevel@tonic-gate!12
19317c478bdstevel@tonic-gate	std	%f20,[%g4+16]
19327c478bdstevel@tonic-gate	faddd	%f42,%f44,%f42
19337c478bdstevel@tonic-gate	fmuld	%f52,%f24,%f52
19347c478bdstevel@tonic-gate!13
19357c478bdstevel@tonic-gate	ldd	[%g4+80],%f44
19367c478bdstevel@tonic-gate	faddd	%f4,%f12,%f4
19377c478bdstevel@tonic-gate	fmuld	%f56,%f0,%f56
19387c478bdstevel@tonic-gate!14
19397c478bdstevel@tonic-gate	ldd	[%i1+88],%f20
19407c478bdstevel@tonic-gate	faddd	%f32,%f36,%f32
19417c478bdstevel@tonic-gate!15
19427c478bdstevel@tonic-gate	ldd	[%i4+88],%f22
19437c478bdstevel@tonic-gate	faddd	%f48,%f50,%f48
19447c478bdstevel@tonic-gate!16
19457c478bdstevel@tonic-gate	ldd	[%g4+112],%f50
19467c478bdstevel@tonic-gate	faddd	%f52,%f56,%f52
19477c478bdstevel@tonic-gate!17
19487c478bdstevel@tonic-gate	ldd	[%g4+144],%f56
19497c478bdstevel@tonic-gate	faddd	%f4,%f8,%f8
19507c478bdstevel@tonic-gate	fmuld	%f20,%f24,%f20
19517c478bdstevel@tonic-gate!18
19527c478bdstevel@tonic-gate	std	%f32,[%g4+48]
19537c478bdstevel@tonic-gate	faddd	%f42,%f44,%f42
19547c478bdstevel@tonic-gate	fmuld	%f22,%f0,%f22
19557c478bdstevel@tonic-gate!19
19567c478bdstevel@tonic-gate	std	%f42,[%g4+80]
19577c478bdstevel@tonic-gate	faddd	%f48,%f50,%f48
19587c478bdstevel@tonic-gate	fmuld	%f34,%f24,%f32
19597c478bdstevel@tonic-gate!20
19607c478bdstevel@tonic-gate	std	%f48,[%g4+112]
19617c478bdstevel@tonic-gate	faddd	%f52,%f56,%f52
19627c478bdstevel@tonic-gate	fmuld	%f38,%f0,%f36
19637c478bdstevel@tonic-gate!21
19647c478bdstevel@tonic-gate	ldd	[%i1+120],%f42
19657c478bdstevel@tonic-gate	fdtox	%f8,%f4
19667c478bdstevel@tonic-gate!22
19677c478bdstevel@tonic-gate	std	%f52,[%g4+144]
19687c478bdstevel@tonic-gate	faddd	%f20,%f22,%f20
19697c478bdstevel@tonic-gate!23
19707c478bdstevel@tonic-gate	ldd	[%i4+120],%f44
19717c478bdstevel@tonic-gate!24
19727c478bdstevel@tonic-gate	ldd	[%g4+176],%f22
19737c478bdstevel@tonic-gate	faddd	%f32,%f36,%f32
19747c478bdstevel@tonic-gate	fmuld	%f42,%f24,%f42
19757c478bdstevel@tonic-gate!25
19767c478bdstevel@tonic-gate	ldd	[%i4+16],%f50
19777c478bdstevel@tonic-gate	fmovs	%f17,%f4
19787c478bdstevel@tonic-gate!26
19797c478bdstevel@tonic-gate	ldd	[%i1+32],%f52
19807c478bdstevel@tonic-gate	fmuld	%f44,%f0,%f44
19817c478bdstevel@tonic-gate!27
19827c478bdstevel@tonic-gate	ldd	[%i4+32],%f56
19837c478bdstevel@tonic-gate	fmuld	%f40,%f24,%f48
19847c478bdstevel@tonic-gate!28
19857c478bdstevel@tonic-gate	ldd	[%g4+208],%f36
19867c478bdstevel@tonic-gate	faddd	%f20,%f22,%f20
19877c478bdstevel@tonic-gate	fmuld	%f50,%f0,%f50
19887c478bdstevel@tonic-gate!29
19897c478bdstevel@tonic-gate	std	%f20,[%g4+176]
19907c478bdstevel@tonic-gate	fxtod	%f4,%f4
19917c478bdstevel@tonic-gate	fmuld	%f52,%f24,%f52
19927c478bdstevel@tonic-gate!30
19937c478bdstevel@tonic-gate	ldd	[%i4+48],%f22
19947c478bdstevel@tonic-gate	faddd	%f42,%f44,%f42
19957c478bdstevel@tonic-gate	fmuld	%f56,%f0,%f56
19967c478bdstevel@tonic-gate!31
19977c478bdstevel@tonic-gate	ldd	[%g4+240],%f44
19987c478bdstevel@tonic-gate	faddd	%f32,%f36,%f32
19997c478bdstevel@tonic-gate!32
20007c478bdstevel@tonic-gate	std	%f32,[%g4+208]
20017c478bdstevel@tonic-gate	faddd	%f48,%f50,%f48
20027c478bdstevel@tonic-gate	fmuld	%f46,%f24,%f20
20037c478bdstevel@tonic-gate!33
20047c478bdstevel@tonic-gate	ldd	[%g4+32],%f50
20057c478bdstevel@tonic-gate	fmuld	%f4,%f18,%f12
20067c478bdstevel@tonic-gate!34
20077c478bdstevel@tonic-gate	ldd	[%i4+64],%f36
20087c478bdstevel@tonic-gate	faddd	%f52,%f56,%f52
20097c478bdstevel@tonic-gate	fmuld	%f22,%f0,%f22
20107c478bdstevel@tonic-gate!35
20117c478bdstevel@tonic-gate	ldd	[%g4+64],%f56
20127c478bdstevel@tonic-gate	faddd	%f42,%f44,%f42
20137c478bdstevel@tonic-gate!36
20147c478bdstevel@tonic-gate	std	%f42,[%g4+240]
20157c478bdstevel@tonic-gate	faddd	%f48,%f50,%f48
20167c478bdstevel@tonic-gate	fmuld	%f54,%f24,%f32
2017