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