25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/*
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * CDDL HEADER START
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis *
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * The contents of this file are subject to the terms of the
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Common Development and Distribution License (the "License").
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * You may not use this file except in compliance with the License.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis *
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * or http://www.opensolaris.org/os/licensing.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * See the License for the specific language governing permissions
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * and limitations under the License.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis *
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis *
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * CDDL HEADER END
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/*
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis/*
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis * Use is subject to license terms.
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis */
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .file "__vhypotf.S"
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#include "libm.h"
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis RO_DATA
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 64
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.CONST_TBL:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x3fe00001, 0x80007e00 ! K1 = 5.00000715259318464227e-01
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0xbfc00003, 0xc0017a01 ! K2 = -1.25000447037521686593e-01
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x000fffff, 0xffffffff ! DC0 = 0x000fffffffffffff
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x3ff00000, 0x00000000 ! DC1 = 0x3ff0000000000000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x7ffff000, 0x00000000 ! DC2 = 0x7ffff00000000000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x7fe00000, 0x00000000 ! DA0 = 0x7fe0000000000000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x47efffff, 0xe0000000 ! DFMAX = 3.402823e+38
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x7f7fffff, 0x80808080 ! FMAX = 3.402823e+38 , SCALE = 0x80808080
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x20000000, 0x00000000 ! DA1 = 0x2000000000000000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC0 %f12
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC1 %f10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC2 %f42
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DA0 %f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DA1 %f4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K2 %f26
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K1 %f28
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define SCALE %f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define FMAX %f2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DFMAX %f50
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define stridex %l6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define stridey %i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define stridez %l5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _0x7fffffff %o1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _0x7f3504f3 %o2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _0x1ff0 %l2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define TBL %l1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define counter %l0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp_px STACK_BIAS-0x30
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp_py STACK_BIAS-0x28
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp_counter STACK_BIAS-0x20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp0 STACK_BIAS-0x18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp1 STACK_BIAS-0x10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp2 STACK_BIAS-0x0c
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp3 STACK_BIAS-0x08
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp4 STACK_BIAS-0x04
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! sizeof temp storage - must be a multiple of 16 for V9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmps 0x30
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! !!!!! algorithm !!!!!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! px += stridex;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! y0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! py += stridey;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( hx >= 0x7f3504f3 || hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( hx >= 0x7f800000 || hy >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( hx == 0x7f800000 || hy == 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! *(int*)pz = 0x7f800000;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! else *pz = x * y;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! else
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hyp = sqrt(x * (double)x + y * (double)y);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( hyp <= DMAX ) ftmp0 = (float)hyp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! else ftmp0 = FMAX * FMAX;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! pz += stridez;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! continue;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( (hx | hy) == 0 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! *pz = 0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! pz += stridez;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! continue;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! pz += stridez;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ENTRY(__vhypotf)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis save %sp,-SA(MINFRAME)-tmps,%sp
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis PIC_SETUP(l7)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis PIC_SET(l7,.CONST_TBL,o3)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis PIC_SET(l7,__vlibm_TBL_sqrtf,l1)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#ifdef __sparcv9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldx [%fp+STACK_BIAS+176],stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#else
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+STACK_BIAS+92],stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#endif
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %i0,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i3,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3],K1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7ffffc00),%o1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+8],K2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f350400),%o2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+16],DC0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o1,1023,_0x7fffffff
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,0xf3,_0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+24],DC1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll %i2,2,stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%o3+56],FMAX
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+32],DC2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll %i4,2,stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+40],DA0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll stridez,2,stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+48],DFMAX
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%o3+60],SCALE
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,0xff8,%l2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+64],DA1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll %l2,1,_0x1ff0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%i5,%l7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.begin:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp_counter],counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldx [%fp+tmp_px],%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldx [%fp+tmp_py],%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %g0,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.begin1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble,pn %icc,.exit
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%l3 ! (3_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i2]0x82,%l4 ! (3_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (3_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (3_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (3_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.spec ! (3_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (3_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (3_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.spec ! (3_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%i2,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.spec1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f44 ! (3_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i2]0x82,%f17 ! (3_0) y0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%l3 ! (4_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%o7]0x82,%l4 ! (4_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (4_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f24 ! (3_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (4_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update0 ! (4_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (4_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (4_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont0:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,%f24,%f24 ! (3_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f40 ! (4_1) dy0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (4_1) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%o7]0x82,%f17 ! (4_1) hy0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridey,%i5 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%l3 ! (0_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update1 ! (4_1) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f24,[%fp+tmp0] ! (3_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (0_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f48 ! (4_1) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%f8 ! (0_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i5+stridey]0x82,%l4 ! (0_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (0_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update2 ! (0_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,stridey,%o4 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,%f48,%f20 ! (4_1) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f8,%f8,%f40 ! (0_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (0_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i5+stridey]0x82,%f17 ! (0_0) hy0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (0_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update3 ! (0_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f20,[%fp+tmp1] ! (4_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont3:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%l3 ! (1_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f24,DC0,%f60 ! (3_1) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (1_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f34 ! (0_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (1_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%o4+stridey]0x82,%l4 ! (1_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (1_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update4 ! (1_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,stridey,%i5 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont4:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (1_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (3_1) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (1_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp0],%o0 ! (3_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,%f34,%f0 ! (0_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f40 ! (1_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%o4+stridey]0x82,%f17 ! (1_0) y0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %o0,8,%o0 ! (3_1) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update5 ! (1_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f38 ! (3_1) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont5:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%l3 ! (2_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o0,_0x1ff0,%o0 ! (3_1) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp2] ! (0_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f20,DC0,%f60 ! (4_1) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%o0],%f22 ! (3_1) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f38,%f38 ! (3_1) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f32 ! (1_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,stridey,%i2 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%i5]0x82,%l4 ! (2_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (2_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (2_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (2_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f22,%f38 ! (3_1) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (2_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (4_1) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update6 ! (2_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp1],%o3 ! (4_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont6:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,%f32,%f18 ! (1_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f44 ! (2_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (2_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%i5]0x82,%f17 ! (2_0) y0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update7 ! (2_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f58 ! (4_1) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont7:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f38,%f56 ! (3_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %o3,8,%o3 ! (4_1) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%l3 ! (3_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o3,_0x1ff0,%o3 ! (4_1) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f18,[%fp+tmp3] ! (1_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f60 ! (0_0) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%o3],%f22 ! (4_1) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i2,stridey,%o7 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f58,%f58 ! (4_1) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f30 ! (2_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%i2]0x82,%l4 ! (3_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (3_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f56,K1,%f54 ! (3_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (3_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (3_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update8 ! (3_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f22,%f58 ! (4_1) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont8:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (3_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (0_0) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (3_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp2],%g1 ! (0_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,%f30,%f30 ! (2_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f44 ! (3_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update9 ! (3_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%i2]0x82,%f17 ! (3_0) y0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont9:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f38,%f40 ! (3_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%l3 ! (4_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f38 ! (0_0) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f58,%f54 ! (4_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %g1,8,%o5 ! (0_0) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%o7]0x82,%l4 ! (4_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f24,DA0,%f56 ! (3_1) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o5,_0x1ff0,%o5 ! (0_0) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f30,[%fp+tmp4] ! (2_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC0,%f60 ! (1_0) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%o5],%f22 ! (0_0) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o0,TBL,%g1 ! (3_1) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (4_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f38,%f38 ! (0_0) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f24 ! (3_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (4_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update10 ! (4_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,DC1,%f40 ! (3_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f56,%f36 ! (3_1) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (4_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%g1+8],%f56 ! (3_1) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f54,K1,%f54 ! (4_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (4_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont10:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f22,%f38 ! (0_0) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (1_0) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp3],%g1 ! (1_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f40,%f62 ! (3_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,%f24,%f24 ! (3_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.tail
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .main_loop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.main_loop:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f40 ! (4_1) dy0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (4_1) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%o7]0x82,%f17 ! (4_1) hy0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f36,DA1,%f36 ! (3_2) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f58,%f58 ! (4_2) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridey,%i5 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f24,[%fp+tmp0] ! (3_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f44 ! (1_1) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f38,%f56 ! (0_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %g1,8,%g5 ! (1_1) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update11 ! (4_1) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f20,DA0,%f54 ! (4_2) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzero %f52
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont11:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f36,%f62 ! (3_2) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %g5,_0x1ff0,%g5 ! (1_1) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%l3 ! (0_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f30,DC0,%f60 ! (2_1) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%g5+TBL],%f22 ! (1_1) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o3,TBL,%g1 ! (4_2) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i0 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f44,%f44 ! (1_1) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f48 ! (4_1) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%f8 ! (0_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f58,DC1,%f36 ! (4_2) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f56,K1,%f58 ! (0_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (0_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%g1+8],%f56 ! (4_2) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f54,%f54 ! (4_2) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i5+stridey]0x82,%l4 ! (0_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (0_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update12 ! (0_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (3_2) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont12:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f22,%f44 ! (1_1) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l7,stridez,%o7 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%l7] ! (3_2) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (2_1) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f36,%f36 ! (4_2) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,stridey,%o4 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp4],%g1 ! (2_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,%f48,%f20 ! (4_1) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f8,%f8,%f40 ! (0_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (0_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i5+stridey]0x82,%f17 ! (0_0) hy0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f54,DA1,%f62 ! (4_2) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f38,%f38 ! (0_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (0_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f20,[%fp+tmp1] ! (4_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f58 ! (2_1) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f44,%f56 ! (1_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %g1,8,%g1 ! (2_1) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update13 ! (0_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DA0,%f54 ! (0_1) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzero %f52
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont13:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f62,%f62 ! (4_2) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %g1,_0x1ff0,%g1 ! (2_1) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i0+stridex]0x82,%l3 ! (1_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f24,DC0,%f60 ! (3_1) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%g1],%f22 ! (2_1) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o5,TBL,%o0 ! (0_1) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f58,%f58 ! (2_1) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f34 ! (0_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridez,%i0 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%o4+stridey]0x82,%l4 ! (1_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f38,DC1,%f36 ! (0_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f56,K1,%f38 ! (1_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (1_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o0+8],%f56 ! (0_1) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f54,%f54 ! (0_1) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (1_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (1_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update14 ! (1_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (4_2) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont14:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f22,%f58 ! (2_1) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (1_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,stridey,%i5 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (3_1) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f36,%f36 ! (0_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (1_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp0],%o0 ! (3_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,%f34,%f0 ! (0_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f40 ! (1_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%o4+stridey]0x82,%f17 ! (1_0) y0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f54,DA1,%f62 ! (0_1) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f44,%f44 ! (1_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%o7] ! (4_2) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update15 ! (1_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f38 ! (3_1) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update15
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont15:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f58,%f54 ! (2_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %o0,8,%o0 ! (3_1) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp2] ! (0_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DA0,%f56 ! (1_1) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f62,%f62 ! (0_1) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o0,_0x1ff0,%o0 ! (3_1) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%l3 ! (2_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f20,DC0,%f60 ! (4_1) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%o0],%f22 ! (3_1) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g5,TBL,%o3 ! (1_1) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridez,%i3 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f38,%f38 ! (3_1) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f32 ! (1_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,stridey,%i2 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%i5]0x82,%l4 ! (2_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,DC1,%f44 ! (1_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f56,%f36 ! (1_1) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (2_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+8],%f56 ! (1_1) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f54,K1,%f54 ! (2_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (2_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (2_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i3,stridez,%o4 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (0_1) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f22,%f38 ! (3_1) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (2_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%i0] ! (0_1) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (4_1) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f44,%f62 ! (1_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update16 ! (2_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp1],%o3 ! (4_1) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,%f32,%f18 ! (1_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont16:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f44 ! (2_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (2_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%i5]0x82,%f17 ! (2_0) y0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f36,DA1,%f36 ! (1_1) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f58,%f54 ! (2_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%l7 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update17 ! (2_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f58 ! (4_1) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzero %f52
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont17:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f38,%f56 ! (3_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %o3,8,%o3 ! (4_1) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f18,[%fp+tmp3] ! (1_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f30,DA0,%f40 ! (2_1) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f36,%f62 ! (1_1) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o3,_0x1ff0,%o3 ! (4_1) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l7]0x82,%l3 ! (3_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f60 ! (0_0) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%o3],%f22 ! (4_1) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g1,TBL,%g1 ! (2_1) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i2,stridey,%o7 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f58,%f58 ! (4_1) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f30 ! (2_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%i2]0x82,%l4 ! (3_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l7,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f54,DC1,%f36 ! (2_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f56,K1,%f54 ! (3_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (3_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%g1+8],%f56 ! (2_1) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f40,%f40 ! (2_1) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l7]0x82,%f17 ! (3_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (3_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update18 ! (3_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (1_1) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont18:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f22,%f58 ! (4_1) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (3_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%i3] ! (1_1) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (0_0) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f36,%f36 ! (2_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,_0x7f3504f3 ! (3_0) hy ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp2],%g1 ! (0_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,%f30,%f30 ! (2_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f44 ! (3_0) dx0 = x0 * (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update19 ! (3_0) if ( hy >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%i2]0x82,%f17 ! (3_0) y0 = *py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f40,DA1,%f62 ! (2_1) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont19:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f38,%f40 ! (3_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %l3,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f30,[%fp+tmp4] ! (2_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f38 ! (0_0) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f58,%f54 ! (4_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %g1,8,%o5 ! (0_0) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%l3 ! (4_0) hx0 = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f24,DA0,%f56 ! (3_1) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f62,%f62 ! (2_1) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o5,_0x1ff0,%o5 ! (0_0) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,pn %icc,.update19a
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC0,%f60 ! (1_0) h0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont19a:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%o5],%f22 ! (0_0) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o0,TBL,%g1 ! (3_1) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l3,_0x7fffffff,%l3 ! (4_0) hx0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f38,%f38 ! (0_0) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f24 ! (3_0) dy0 = y0 * (double)y0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,_0x7f3504f3 ! (4_0) hx ? 0x7f3504f3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridey+%o7]0x82,%l4 ! (4_0) hy0 = *(int*)py;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,DC1,%f40 ! (3_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f56,%f36 ! (3_1) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update20 ! (4_0) if ( hx >= 0x7f3504f3 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%g1+8],%f56 ! (3_1) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f54,K1,%f54 ! (4_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f17 ! (4_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont20:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,5,counter ! counter -= 5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,stridez,%l7 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (2_1) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f22,%f38 ! (0_0) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (4_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%o4] ! (2_1) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f46 ! (1_0) h0 = vis_for(h0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp3],%g1 ! (1_0) iexp0 = ((int*)&db0)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f40,%f62 ! (3_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bpos,pt %icc,.main_loop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,%f24,%f24 ! (3_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add counter,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.tail:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f36,DA1,%f36 ! (3_2) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f58,%f58 ! (4_2) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f46,DC2,%f44 ! (1_1) h_hi0 = vis_fand(h0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f38,%f56 ! (0_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis srax %g1,8,%g5 ! (1_1) iexp0 >>= 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f20,DA0,%f54 ! (4_2) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f36,%f62 ! (3_2) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %g5,_0x1ff0,%g5 ! (1_1) di0 = iexp0 & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%g5+TBL],%f22 ! (1_1) dtmp0 = ((double*)((char*)div_arr + di0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o3,TBL,%g1 ! (4_2) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f46,%f44,%f44 ! (1_1) xx0 = h0 - h_hi0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f58,DC1,%f36 ! (4_2) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f56,K1,%f58 ! (0_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%g1+8],%f56 ! (4_2) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f54,%f54 ! (4_2) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (3_2) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f22,%f44 ! (1_1) xx0 *= dmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l7,stridez,%o7 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%l7] ! (3_2) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%o7,%l7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f36,%f36 ! (4_2) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f54,DA1,%f62 ! (4_2) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f38,%f38 ! (0_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f44,%f56 ! (1_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DA0,%f54 ! (0_1) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f62,%f62 ! (4_2) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o5,TBL,%o0 ! (0_1) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f38,DC1,%f36 ! (0_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f56,K1,%f38 ! (1_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o0+8],%f56 ! (0_1) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f54,%f54 ! (0_1) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridez,%i0 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (4_2) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f36,%f36 ! (0_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f54,DA1,%f62 ! (0_1) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f44,%f44 ! (1_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridez,%i3 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%o7] ! (4_2) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%i0,%l7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DA0,%f56 ! (1_1) db0 = vis_fand(db0,DA0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f62,%f62 ! (0_1) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g5,TBL,%o3 ! (1_1) si0 = (char*)sqrt_arr + di0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,DC1,%f44 ! (1_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f56,%f36 ! (1_1) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+8],%f56 ! (1_1) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i3,stridez,%o4 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (0_1) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%i0] ! (0_1) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%i3,%l7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f44,%f62 ! (1_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f36,DA1,%f36 ! (1_1) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f36,%f62 ! (1_1) res0 *= db0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f62,%f14 ! (1_1) ftmp0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f14,[%i3] ! (1_1) *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%o4,%l7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.spec1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %g0,[%l7] ! *pz = 0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l7,stridez,%l7 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i2,stridey,%i2 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter ! counter--
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.spec:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%i0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,%i0 ! hx ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pt %icc,2f ! if ( hx >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i2],%f8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,%i0 ! hy ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pt %icc,2f ! if ( hy >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f17,%f17,%f44 ! x * (double)x
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsmuld %f8,%f8,%f24 ! y * (double)y
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,%f24,%f24 ! x * (double)x + y * (double)y
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsqrtd %f24,%f24 ! hyp = sqrt(x * (double)x + y * (double)y);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fcmped %f24,DFMAX ! hyp ? DMAX
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fbug,a 1f ! if ( hyp > DMAX )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuls FMAX,FMAX,%f20 ! ftmp0 = FMAX * FMAX;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f24,%f20 ! ftmp0 = (float)hyp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f20,[%l7] ! *pz = ftmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l7,stridez,%l7 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i2,stridey,%i2 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter ! counter--
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fcmps %f17,%f8 ! exceptions
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l3,%i0 ! hx ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis be,a %icc,1f ! if ( hx == 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %i0,[%l7] ! *(int*)pz = 0x7f800000;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l4,%i0 ! hy ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis be,a %icc,1f ! if ( hy == 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %i0,[%l7] ! *(int*)pz = 0x7f800000;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuls %f17,%f8,%f8 ! x * y
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f8,[%l7] ! *pz = x * y;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l7,stridez,%l7 ! pz += stridez
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i2,stridey,%i2 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter ! counter--
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update0:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridey,%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i5,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i5,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o4,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update3:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o4,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update4:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i5,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update5:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i2,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i5,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update6:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i2,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update7:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i2,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update8:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,%o5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o5,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update9:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,%o5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o5,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update10:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmul8x16 SCALE,%f56,%f36 ! (3_1) db0 = vis_fmul8x16(SCALE, db0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,_0x7fffffff,%l4 ! (4_0) hy0 &= 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%g1+8],%f56 ! (3_1) dtmp0 = ((double*)si0)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f54,K1,%f54 ! (4_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridey,%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i5,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update11:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i5,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update12:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont12
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i0,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,stridey,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o4,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont12
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update13:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i0,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o4,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update14:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont14
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,stridey,%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i5,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont14
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update15:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont15
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i2,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i5,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont15
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update16:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,%f32,%f18 ! (1_0) db0 = dx0 + dy0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i2,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update17:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i2,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update18:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %l7,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update19:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f40,DA1,%f62 ! (2_1) db0 = vis_fpadd32(db0,DA1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont19
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %l7,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont19
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update19a:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont19a
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %l7,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont19a
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update20:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f54,K1,%f54 ! (4_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridey,%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %g1,[%fp+tmp_py]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.exit:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ret
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis restore
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis SET_SIZE(__vhypotf)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis