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 "__vsqrtf_ultra3.S"
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#include "libm.h"
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .weak __vsqrtf
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .type __vsqrtf,#function
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis __vsqrtf = __vsqrtf_ultra3
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
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC0 %f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC1 %f4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC2 %f2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K2 %f38
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K1 %f36
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define TBL %l2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define stridex %l3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define stridey %l4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _0x1ff0 %l5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define counter %l6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _0x00800000 %l7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _0x7f800000 %o0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp_px STACK_BIAS-0x40
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp_counter STACK_BIAS-0x38
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp0 STACK_BIAS-0x30
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp1 STACK_BIAS-0x28
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp2 STACK_BIAS-0x20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp3 STACK_BIAS-0x18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp4 STACK_BIAS-0x10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! sizeof temp storage - must be a multiple of 16 for V9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmps 0x40
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! !!!!! algorithm !!!!!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! px += stridex;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! *py = sqrtf(x0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! py += stridey;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! continue;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! *py = sqrtf(x0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! py += stridey;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! continue;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dtmp0 = ((double*)((char*)TBL + 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! dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! py += stridey;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ENTRY(__vsqrtf_ultra3)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis save %sp,-SA(MINFRAME)-tmps,%sp
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis PIC_SETUP(l7)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis PIC_SET(l7,.CONST_TBL,o2)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis PIC_SET(l7,__vlibm_TBL_sqrtf,l2)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %i0,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll %i2,2,stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,0xff8,%l5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll %l5,1,_0x1ff0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o2],K1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll %i4,2,stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o2+8],K2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%i3,%g5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o2+16],DC0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%o0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o2+24],DC1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00800000),%l7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o2+32],DC2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.begin:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp_counter],counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldx [%fp+tmp_px],%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %g0,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.begin1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble,pn %icc,.exit
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%o2 ! (2_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%i1,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f25 ! (2_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x7f800000 ! (2_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.spec ! (2_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x00800000 ! (2_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.spec ! (2_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f25,%f56 ! (2_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o7]0x82,%o1 ! (3_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,24,%l1 ! (2_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l1,960,%l0 ! (2_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o7]0x82,%f0 ! (3_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f56,DC0,%f60 ! (2_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o1,_0x7f800000 ! (3_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update0 ! (3_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont0:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %l0,52,%o3 ! (2_0) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,11,%i2 ! (2_0) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o3,[%fp+tmp0] ! (2_0) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f40 ! (2_0) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o1,_0x00800000 ! (3_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update1 ! (3_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f0,%f48 ! (3_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i2,_0x1ff0,%o3 ! (2_0) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%o2 ! (4_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o3,TBL,%i2 ! (2_0) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f40,DC2,%f46 ! (2_0) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o1,24,%o4 ! (3_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f13 ! (4_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC0,%f58 ! (3_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,960,%i0 ! (3_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x7f800000 ! (4_1) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update2 ! (4_1) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f40,%f46,%f44 ! (2_1) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %i0,52,%g1 ! (3_1) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2],%f40 ! (2_1) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o1,11,%l0 ! (3_1) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %g1,[%fp+tmp1] ! (3_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f58,DC1,%f48 ! (3_1) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x00800000 ! (4_1) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update3 ! (4_1) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont3:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f13,%f50 ! (4_1) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f40,%f46 ! (2_1) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l0,_0x1ff0,%i0 ! (3_1) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%l1 ! (0_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,TBL,%l0 ! (3_1) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC2,%f62 ! (3_1) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,24,%o7 ! (4_1) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%o4 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,960,%o7 ! (4_1) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%f17 ! (0_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f50,DC0,%f54 ! (4_1) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f46,%f52 ! (2_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l1,_0x7f800000 ! (0_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update4 ! (0_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f48,%f62,%f42 ! (3_1) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont4:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o1 ! (4_1) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i0+TBL],%f40 ! (3_1) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,11,%i5 ! (4_1) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o1,[%fp+tmp2] ! (4_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f54,DC1,%f34 ! (4_1) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l1,_0x00800000 ! (0_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update5 ! (0_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont5:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f17,%f56 ! (0_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f42,%f40,%f42 ! (3_1) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o4]0x82,%i0 ! (1_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f52,K1,%f52 ! (2_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %l1,24,%g1 ! (0_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i5,_0x1ff0,%i5 ! (4_1) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f34,DC2,%f62 ! (4_1) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g1,960,%o5 ! (0_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,TBL,%i3 ! (4_1) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o4]0x82,%f21 ! (1_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f56,DC0,%f32 ! (0_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f42,%f50 ! (3_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %i0,_0x7f800000 ! (1_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update6 ! (1_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f34,%f62,%f54 ! (4_1) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont6:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f52,%f46,%f52 ! (2_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o5,52,%o7 ! (0_0) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%i5],%f62 ! (4_1) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %l1,11,%i4 ! (0_0) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp3] ! (0_0) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f32,DC1,%f48 ! (0_0) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %i0,_0x00800000 ! (1_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update7 ! (1_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont7:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f21,%f56 ! (1_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f62,%f46 ! (4_1) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i4,_0x1ff0,%g1 ! (0_0) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%o2 ! (2_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f50,K1,%f62 ! (3_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g1,TBL,%i5 ! (0_0) (double*)((char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC2,%f32 ! (0_0) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %i0,24,%o4 ! (1_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2+8],%f60 ! (2_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f52,DC1,%f58 ! (2_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%o7 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,960,%i2 ! (1_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%f25 ! (2_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f56,DC0,%f34 ! (1_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f46,%f50 ! (4_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x7f800000 ! (2_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update8 ! (2_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f48,%f32,%f52 ! (0_0) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont8:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f42,%f54 ! (3_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %i2,52,%o4 ! (1_0) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%g1],%f32 ! (0_0) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f58,%f60 ! (2_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %i0,11,%g1 ! (1_0) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o4,[%fp+tmp4] ! (1_0) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f34,DC1,%f48 ! (1_0) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x00800000 ! (2_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update9 ! (2_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp0],%f40 ! (2_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f25,%f56 ! (2_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont9:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f52,%f32,%f42 ! (0_0) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %g1,_0x1ff0,%o5 ! (1_0) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o7]0x82,%o1 ! (3_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f50,K1,%f34 ! (4_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o5,TBL,%i4 ! (1_0) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC2,%f62 ! (1_0) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f40,%f32 ! (2_1) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,24,%l1 ! (2_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l0+8],%f40 ! (3_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f54,DC1,%f58 ! (3_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l1,960,%l0 ! (2_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o7]0x82,%f0 ! (3_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f56,DC0,%f60 ! (2_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f42,%f50 ! (0_0) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o1,_0x7f800000 ! (3_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update10 ! (3_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f48,%f62,%f54 ! (1_0) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont10:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f46,%f52 ! (4_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %l0,52,%o3 ! (2_0) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%o5],%f56 ! (1_0) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f40,%f58,%f34 ! (3_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,11,%i2 ! (2_0) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o3,[%fp+tmp0] ! (2_0) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f40 ! (2_0) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o1,_0x00800000 ! (3_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update11 ! (3_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp1],%f62 ! (3_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f0,%f48 ! (3_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont11:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f56,%f30 ! (1_0) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i2,_0x1ff0,%o3 ! (2_0) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%o2 ! (4_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f50,K1,%f56 ! (0_0) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o3,TBL,%i2 ! (2_0) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f40,DC2,%f46 ! (2_0) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f62,%f28 ! (3_1) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o1,24,%o4 ! (3_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i3+8],%f50 ! (4_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f52,DC1,%f54 ! (4_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f13 ! (4_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC0,%f58 ! (3_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%g5,%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.tail
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,960,%g5 ! (3_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .main_loop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,counter ! counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.main_loop:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f30,%f60 ! (1_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x7f800000 ! (4_1) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update12 ! (4_1) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f40,%f46,%f44 ! (2_1) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont12:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f42,%f52 ! (0_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %g5,52,%g5 ! (3_1) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2],%f40 ! (2_1) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f32,%f15 ! (2_2) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f50,%f54,%f42 ! (4_2) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o1,11,%l0 ! (3_1) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %g5,[%fp+tmp1] ! (3_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f58,DC1,%f48 ! (3_1) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x00800000 ! (4_1) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update13 ! (4_1) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp2],%f56 ! (4_2) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f13,%f50 ! (4_1) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont13:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f40,%f46 ! (2_1) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l0,_0x1ff0,%i0 ! (3_1) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%l1 ! (0_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f60,K1,%f32 ! (1_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,TBL,%l0 ! (3_1) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i3,stridey,%o3 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f15,[%i3] ! (2_2) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC2,%f62 ! (3_1) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f42,%f56,%f44 ! (4_2) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,24,%o7 ! (4_1) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i5+8],%f58 ! (0_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f52,DC1,%f34 ! (0_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%o4 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,960,%o7 ! (4_1) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%f17 ! (0_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f50,DC0,%f54 ! (4_1) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f46,%f52 ! (2_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l1,_0x7f800000 ! (0_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update14 ! (0_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f48,%f62,%f42 ! (3_1) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont14:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f30,%f48 ! (1_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o1 ! (4_1) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i0+TBL],%f40 ! (3_1) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f28,%f19 ! (3_2) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f34,%f32 ! (0_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,11,%i5 ! (4_1) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o1,[%fp+tmp2] ! (4_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f54,DC1,%f34 ! (4_1) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %l1,_0x00800000 ! (0_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update15 ! (0_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp3],%f60 ! (0_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f17,%f56 ! (0_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont15:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f42,%f40,%f42 ! (3_1) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o3,stridey,%g5 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o4]0x82,%i0 ! (1_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f52,K1,%f52 ! (2_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %l1,24,%g1 ! (0_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i5,_0x1ff0,%i5 ! (4_1) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f19,[%o3] ! (3_2) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f34,DC2,%f62 ! (4_1) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f60,%f40 ! (0_1) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i4+8],%f60 ! (1_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f48,DC1,%f58 ! (1_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g1,960,%o5 ! (0_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,TBL,%i3 ! (4_1) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o4]0x82,%f21 ! (1_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f56,DC0,%f32 ! (0_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f42,%f50 ! (3_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %i0,_0x7f800000 ! (1_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update16 ! (1_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f34,%f62,%f54 ! (4_1) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont16:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f52,%f46,%f52 ! (2_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o5,52,%o7 ! (0_0) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%i5],%f62 ! (4_1) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f44,%f23 ! (4_2) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f58,%f44 ! (1_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %l1,11,%i4 ! (0_0) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp3] ! (0_0) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f32,DC1,%f48 ! (0_0) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %i0,_0x00800000 ! (1_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update17 ! (1_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp4],%f34 ! (1_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f21,%f56 ! (1_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont17:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f62,%f46 ! (4_1) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i4,_0x1ff0,%g1 ! (0_0) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%o2 ! (2_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f50,K1,%f62 ! (3_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g1,TBL,%i5 ! (0_0) (double*)((char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g5,stridey,%g5 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f23,[stridey+%o3] ! (4_2) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC2,%f32 ! (0_0) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f34,%f44 ! (1_1) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %i0,24,%o4 ! (1_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2+8],%f60 ! (2_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f52,DC1,%f58 ! (2_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%o7 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,960,%i2 ! (1_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%f25 ! (2_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f56,DC0,%f34 ! (1_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f46,%f50 ! (4_1) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x7f800000 ! (2_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update18 ! (2_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f48,%f32,%f52 ! (0_0) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont18:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f42,%f54 ! (3_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %i2,52,%o4 ! (1_0) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%g1],%f32 ! (0_0) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f40,%f27 ! (0_1) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f58,%f60 ! (2_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %i0,11,%g1 ! (1_0) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o4,[%fp+tmp4] ! (1_0) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f34,DC1,%f48 ! (1_0) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o2,_0x00800000 ! (2_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update19 ! (2_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp0],%f40 ! (2_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f25,%f56 ! (2_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont19:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f52,%f32,%f42 ! (0_0) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %g1,_0x1ff0,%o5 ! (1_0) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o7]0x82,%o1 ! (3_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f50,K1,%f34 ! (4_1) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o5,TBL,%i4 ! (1_0) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g5,stridey,%g1 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f27,[%g5] ! (0_1) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC2,%f62 ! (1_0) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f40,%f32 ! (2_1) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,24,%l1 ! (2_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l0+8],%f40 ! (3_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f54,DC1,%f58 ! (3_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l1,960,%l0 ! (2_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [stridex+%o7]0x82,%f0 ! (3_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f56,DC0,%f60 ! (2_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K2,%f42,%f50 ! (0_0) res0 = K2 * xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o1,_0x7f800000 ! (3_0) ax ? 0x7f800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update20 ! (3_0) if( ax >= 0x7f800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f48,%f62,%f54 ! (1_0) xx0 = (db0 - hi0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont20:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f46,%f52 ! (4_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %l0,52,%o3 ! (2_0) lexp0 = (long long)iexp0 << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [TBL+%o5],%f56 ! (1_0) dtmp0 = ((double*)((char*)TBL + si0))[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f44,%f8 ! (1_1) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f40,%f58,%f34 ! (3_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o2,11,%i2 ! (2_0) ax >>= 11;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o3,[%fp+tmp0] ! (2_0) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f60,DC1,%f40 ! (2_0) db0 = vis_for(db0,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %o1,_0x00800000 ! (3_0) ax ? 0x00800000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update21 ! (3_0) if( ax < 0x00800000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp1],%f62 ! (3_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fstod %f0,%f48 ! (3_0) db0 = (double)x0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont21:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f54,%f56,%f30 ! (1_0) xx0 *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i2,_0x1ff0,%o3 ! (2_0) si0 = ax & 0x1ff0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+stridex]0x82,%o2 ! (4_0) ax = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f50,K1,%f56 ! (0_0) res0 += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o3,TBL,%i2 ! (2_0) (char*)TBL + si0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f8,[stridey+%g5] ! (1_1) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f40,DC2,%f46 ! (2_0) hi0 = vis_fand(db0,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f62,%f28 ! (3_1) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %o1,24,%o4 ! (3_0) iexp0 = ax >> 24;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i3+8],%f50 ! (4_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f52,DC1,%f54 ! (4_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g1,stridey,%i3 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,5,counter ! counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]0x82,%f13 ! (4_0) x0 = *px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f48,DC0,%f58 ! (3_0) db0 = vis_fand(db0,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bpos,pt %icc,.main_loop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,960,%g5 ! (3_0) iexp0 += 0x3c0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add counter,5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.tail:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%i3,%g5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f56,%f42,%f52 ! (0_1) res0 *= xx0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f32,%f15 ! (2_2) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f50,%f54,%f42 ! (4_2) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp2],%f56 ! (4_2) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i3,stridey,%o3 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f15,[%i3] ! (2_2) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%o3,%g5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f42,%f56,%f44 ! (4_2) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i5+8],%f58 ! (0_1) dtmp0 = ((double*)((char*)TBL + si0))[1]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f52,DC1,%f34 ! (0_1) res0 += DC1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f28,%f19 ! (3_2) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f34,%f32 ! (0_1) res0 = dtmp0 * res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp3],%f60 ! (0_1) dtmp1 = *((double*)&lexp0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o3,stridey,%g5 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f19,[%o3] ! (3_2) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f60,%f40 ! (0_1) res0 *= dtmp1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f44,%f23 ! (4_2) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g5,stridey,%g5 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f23,[stridey+%o3] ! (4_2) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdtos %f40,%f27 ! (0_1) fres0 = (float)res0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f27,[%g5] ! (0_1) *py = fres0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g5,stridey,%g5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.spec:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsqrts %f25,%f25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f25,[%g5]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %g5,stridey,%g5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update0:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%o1
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 %f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %o1
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 %f13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%o2
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 %f13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %o2
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 %o4,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%l1
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 stx %o4,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %l1
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 %f21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%i0
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 %f21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %i0
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 %f25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%o2
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 %f25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %o2
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 cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%o1
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,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %o1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update12:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont12
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%o2
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 %f13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %o2
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 %o4,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%l1
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 stx %o4,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %l1
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 cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%i0
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 %f21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %i0
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 %f25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%o2
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 cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont19
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %o2
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.update20:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7f800000),%o1
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 .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update21:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fzeros %f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %i1,[%fp+tmp_px]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr %o1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st counter,[%fp+tmp_counter]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.exit:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ret
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis restore
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis SET_SIZE(__vsqrtf_ultra3)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis