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 "__vrsqrt.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 0xbfe00000, 0x0000002f ! K1 =-5.00000000000005209867e-01;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x3fd80000, 0x00000058 ! K2 = 3.75000000000004884257e-01;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0xbfd3ffff, 0xff444bc8 ! K3 =-3.12499999317136886551e-01;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x3fd17fff, 0xff5006fe ! K4 = 2.73437499359815081532e-01;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0xbfcf80bb, 0xb33ef574 ! K5 =-2.46116125605037803130e-01;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x3fcce0af, 0xf8156949 ! K6 = 2.25606914648617522896e-01;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x001fffff, 0xffffffff ! DC0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x3fe00000, 0x00000000 ! DC1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x00002000, 0x00000000 ! DC2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x7fffc000, 0x00000000 ! DC3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x0007ffff, 0xffffffff ! DC4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x43200000, 0x00000000 ! D2ON51 = pow(2,51)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .word 0x3ff00000, 0x00000000 ! DONE = 1.0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define stridex %l5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define stridey %l7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define counter %l0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define TBL %l3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _0x7ff00000 %o0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define _0x00100000 %o1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC0 %f56
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC1 %f54
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC2 %f48
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DC3 %f46
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K6 %f42
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K5 %f20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K4 %f52
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K3 %f50
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K2 %f14
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define K1 %f12
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define DONE %f4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp_counter %g5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp_px %o5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp0 STACK_BIAS-0x40
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp1 STACK_BIAS-0x38
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp2 STACK_BIAS-0x30
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp3 STACK_BIAS-0x28
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp4 STACK_BIAS-0x20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp5 STACK_BIAS-0x18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp6 STACK_BIAS-0x10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis#define tmp7 STACK_BIAS-0x08
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! ((float*)&res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)&res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = DONE / res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)py)[0] = ((float*)&res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)py)[1] = ((float*)&res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! px += stridex;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! py += stridey;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! continue;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ax = hx & 0x7fffffff;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! lx = ((int*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( (ax | lx) == 0 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = DONE / res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)py)[0] = ((float*)&res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)py)[1] = ((float*)&res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! px += stridex;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! py += stridey;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! continue;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! else if ( hx >= 0 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! if ( hx < 0x00080000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx = *(int*)&res - (537 << 21);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! else
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = vis_fand(res,DC4);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res += D2ON51;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx = *(int*)&res - (537 << 21);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! else
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! {
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = sqrt(res);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)py)[0] = ((float*)&res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)py)[1] = ((float*)&res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! px += stridex;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! py += stridey;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! continue;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! }
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! lexp = iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dlexp = *(double*)&lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! hx &= -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)py)[0] = ((float*)&res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis! ((float*)py)[1] = ((float*)&res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ENTRY(__vrsqrt)
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_rsqrt,l3)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis wr %g0,0x82,%asi
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3],K1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7ff00000),%o0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i3,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x08],K2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00100000),%o1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i1,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x10],K3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll %i2,3,stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i0,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x18],K4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sll %i4,3,stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x20],K5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x28],K6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x30],DC0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x38],DC1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x40],DC2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x48],DC3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.begin:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov tmp_counter,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov tmp_px,%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis clr tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.begin1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble,pn %icc,.exit
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x60],DONE
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]%asi,%f0 ! (6_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x7ffffc00),%i0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+4]%asi,%f1 ! (6_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,1023,%i0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]%asi,%g1 ! (6_1) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+4]%asi,%l4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (6_1) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f8 ! (0_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (6_1) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f9 ! (0_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (6_1) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %g1,%i0,%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (6_1) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.spec0 ! (6_1) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (6_1) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (6_1) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.spec1 ! (6_1) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (6_1) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont_spec:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f8,DC0,%f16 ! (0_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (6_1) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%l4 ! (6_1) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (6_1) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (0_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (6_1) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,-16,%l4 ! (6_1) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l4,TBL,%l4 ! (6_1) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp1] ! (6_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l4],%f30 ! (6_1) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (0_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f0 ! (1_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (0_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (0_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (0_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f1 ! (1_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (0_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update0 ! (0_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f6 ! (6_1) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont0:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (0_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f30,%f10 ! (6_1) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (0_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update1 ! (0_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (0_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (1_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (0_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%l2 ! (0_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f44,%f6,%f6 ! (6_1) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (1_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (0_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l2,-16,%l2 ! (0_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l2,TBL,%l2 ! (0_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp2] ! (0_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f6,%f10,%f26 ! (6_1) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l2],%f10 ! (0_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (1_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f6 ! (2_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (1_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (1_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (1_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update2 ! (1_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f7 ! (2_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (0_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f10,%f10 ! (0_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (1_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update3 ! (1_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (1_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont3:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (1_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (2_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (1_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (1_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f26,%f62 ! (6_1) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%i2 ! (1_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f28,%f8,%f32 ! (0_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (2_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (1_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i2,-16,%i2 ! (1_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i2,TBL,%i2 ! (1_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp3] ! (1_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f10,%f32 ! (0_0) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2],%f10 ! (1_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (6_1) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (2_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f0 ! (3_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (2_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (2_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (2_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update4 ! (2_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f1 ! (3_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont4:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f26,%f40 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (1_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f10,%f10 ! (1_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (2_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update5 ! (2_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (2_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont5:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (2_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (3_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (2_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (2_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f32,%f62 ! (0_0) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%i4 ! (2_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f44,%f8,%f6 ! (1_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,K4,%f40 ! (6_1) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (3_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (2_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i4,-16,%i4 ! (2_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i4,TBL,%i4 ! (2_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp4] ! (2_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f6,%f10,%f38 ! (1_0) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i4],%f24 ! (2_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (0_0) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f40,%f26,%f34 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (3_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f8 ! (4_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (3_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (3_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (3_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update6 ! (3_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f9 ! (4_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont6:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f32,%f60 ! (0_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (3_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f22 ! (2_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f24,%f24 ! (2_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update7 ! (3_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (3_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f6 ! (6_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont7:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (3_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f8,DC0,%f16 ! (4_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (3_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (3_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f38,%f62 ! (1_0) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%i5 ! (3_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f28,%f22,%f28 ! (2_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f6,%f26,%f22 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f60,K4,%f60 ! (0_0) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (4_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (3_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i5,-16,%i5 ! (3_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,TBL,%i5 ! (3_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp5] ! (3_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f28,%f24,%f36 ! (2_0) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%i0 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i5],%f28 ! (3_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (1_0) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f22,K2,%f10 ! (6_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f32,%f34 ! (0_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (4_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i0]%asi,%f0 ! (5_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f24 ! (4_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (4_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (4_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update8 ! (4_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i0+4]%asi,%f1 ! (5_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont8:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f40 ! (3_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f38,%f62 ! (1_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f26,%f58 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (4_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (4_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f60 ! (0_0) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f28,%f28,%f28 ! (3_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update9 ! (4_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (4_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (5_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont9:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (4_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f24,DC2,%f18 ! (4_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f36,%f10 ! (2_0) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%l1 ! (4_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f44,%f40,%f44 ! (3_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f32,%f60 ! (0_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K4,%f6 ! (1_0) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i0]%asi,%g1 ! (5_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (4_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l1,-16,%l1 ! (4_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f58,K1,%f58 ! (6_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l1,TBL,%l1 ! (4_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp6] ! (4_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f28,%f40 ! (3_0) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l1],%f44 ! (4_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f10,K5,%f62 ! (2_0) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f6,%f38,%f34 ! (1_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (5_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f60,K2,%f60 ! (0_0) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (5_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (5_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]%asi,%f6 ! (6_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f26,%f26 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (5_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (5_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update10 ! (5_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+4]%asi,%f7 ! (6_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont10:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (4_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f36,%f62 ! (2_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f32,%f58 ! (0_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (5_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (5_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (1_0) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f26,%f26 ! (6_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update11 ! (5_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont11:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l4+8],%f60 ! (6_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f44,%f44 ! (4_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (5_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f40,%f22 ! (3_0) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%i3 ! (5_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f24,%f8,%f10 ! (4_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f38,%f24 ! (1_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis or %g0,%o4,%i0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.tail
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K4,%f34 ! (2_0) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .main_loop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,7,counter ! counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.main_loop:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (5_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i3,-16,%i3 ! (5_1) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]%asi,%g1 ! (6_1) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f58,K1,%f58 ! (0_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i3,TBL,%i3 ! (5_1) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (5_1) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp0] ! (5_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f26,%f60,%f8 ! (6_2) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f22,K5,%f62 ! (3_1) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i3],%f22 ! (5_1) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f44,%f60 ! (4_1) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f24,K2,%f26 ! (1_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridey,%i1 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l2],%f24 ! (0_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f36,%f34 ! (2_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f32,%f58 ! (0_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (6_1) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f0 ! (0_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (6_1) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f1 ! (0_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (6_1) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f22,%f22,%f10 ! (5_1) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f30,%f30 ! (6_2) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f40,%f32 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (6_1) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp1],%f62 ! (6_2) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (5_1) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f26,%f38,%f26 ! (1_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update12 ! (6_1) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (6_1) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (2_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont12:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f58,%f58 ! (0_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (6_1) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (6_1) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (0_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f62,%f2 ! (6_2) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update13 ! (6_1) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l2+8],%f30 ! (0_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (6_1) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont13:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f60,%f62 ! (4_1) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%l4 ! (6_1) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%i0] ! (6_2) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f28,%f8,%f6 ! (5_1) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f36,%f28 ! (2_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (6_1) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%i0+4] ! (6_2) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f32,K4,%f32 ! (3_1) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (0_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (6_1) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l4,-16,%l4 ! (6_1) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f26,K1,%f26 ! (1_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridey,%i0 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l4,TBL,%l4 ! (6_1) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp1] ! (6_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f58,%f30,%f8 ! (0_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f6,%f10,%f58 ! (5_1) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l4],%f30 ! (6_1) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (4_1) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f40,%f34 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (0_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2],%f4 ! (1_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f28,K2,%f32 ! (2_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f26,%f38,%f26 ! (1_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (0_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f6 ! (1_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (0_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f30,%f30 ! (6_1) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (0_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f7 ! (1_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f24,%f24 ! (0_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f60,%f38 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (0_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp2],%f62 ! (0_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (6_1) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f36,%f32 ! (2_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update14 ! (0_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (0_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (3_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont14:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f4,%f26,%f26 ! (1_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (0_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (0_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (1_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f62,%f2 ! (0_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update15 ! (0_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2+8],%f24 ! (1_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (0_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont15:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f58,%f62 ! (5_1) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%l2 ! (0_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%i1] ! (0_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f44,%f8,%f10 ! (6_1) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f40,%f44 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%i1+4] ! (0_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f38,K4,%f38 ! (4_1) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (1_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (0_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l2,-16,%l2 ! (0_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f32,K1,%f32 ! (2_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l2,TBL,%l2 ! (0_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp2] ! (0_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f26,%f24,%f8 ! (1_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f30,%f26 ! (6_1) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridey,%i1 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l2],%f30 ! (0_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (5_1) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f60,%f34 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (1_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i4],%f24 ! (2_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,K2,%f38 ! (3_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f36,%f32 ! (2_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (1_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f0 ! (2_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (1_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f30,%f30 ! (0_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (1_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f1 ! (2_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f4,%f4 ! (1_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f58,%f36 ! (5_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update16 ! (1_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp3],%f62 ! (1_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (0_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont16:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f40,%f38 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (1_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (1_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (4_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f32,%f32 ! (2_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update17 ! (1_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (1_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (2_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont17:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f4,%f62,%f2 ! (1_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (1_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i4+8],%f4 ! (2_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (1_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f26,%f62 ! (6_1) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%i2 ! (1_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%i0] ! (1_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f28,%f8,%f6 ! (0_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f60,%f28 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%i0+4] ! (1_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f36,K4,%f36 ! (5_1) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (2_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (1_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i2,-16,%i2 ! (1_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f38,K1,%f38 ! (3_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridey,%i0 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i2,TBL,%i2 ! (1_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp3] ! (1_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f32,%f4,%f8 ! (2_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f6,%f30,%f32 ! (0_0) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2],%f30 ! (1_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (6_1) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f58,%f34 ! (5_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (2_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i5],%f4 ! (3_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f28,K2,%f36 ! (4_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f40,%f38 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (2_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f6 ! (3_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (2_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f30,%f30 ! (1_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (2_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f7 ! (3_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f24,%f24 ! (2_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f26,%f40 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update18 ! (2_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp4],%f62 ! (2_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (1_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont18:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f60,%f36 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (2_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (2_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (5_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f4,%f38,%f38 ! (3_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update19 ! (2_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (2_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (3_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont19:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f62,%f2 ! (2_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (2_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i5+8],%f24 ! (3_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (2_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f32,%f62 ! (0_0) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%i4 ! (2_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%i1] ! (2_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f44,%f8,%f10 ! (1_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f58,%f44 ! (5_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%i1+4] ! (2_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,K4,%f40 ! (6_1) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (3_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (2_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i4,-16,%i4 ! (2_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f36,K1,%f36 ! (4_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i4,TBL,%i4 ! (2_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp4] ! (2_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f38,%f24,%f8 ! (3_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f30,%f38 ! (1_0) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridey,%i1 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i4],%f24 ! (2_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (0_0) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f40,%f26,%f34 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (3_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l1],%f30 ! (4_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,K2,%f40 ! (5_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f60,%f36 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (3_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%f0 ! (4_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (3_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f24,%f24 ! (2_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (3_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6+4]%asi,%f1 ! (4_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f4,%f8 ! (3_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f32,%f60 ! (0_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update20 ! (3_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp5],%f62 ! (3_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f4 ! (2_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont20:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f40,%f58,%f40 ! (5_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (3_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (3_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f10 ! (6_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f36,%f36 ! (4_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update21 ! (3_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (3_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (4_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont21:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f8,%f62,%f8 ! (3_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (3_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l1+8],%f34 ! (4_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (3_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f38,%f62 ! (1_0) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%i5 ! (3_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f8,[%i0] ! (3_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f28,%f4,%f28 ! (2_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f26,%f4 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f9,[%i0+4] ! (3_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f60,K4,%f60 ! (0_0) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%l6]%asi,%g1 ! (4_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (3_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %i5,-16,%i5 ! (3_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,K1,%f40 ! (5_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%i0 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i5,TBL,%i5 ! (3_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp5] ! (3_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f36,%f34,%f8 ! (4_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f28,%f24,%f36 ! (2_0) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridey,%l6 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i5],%f28 ! (3_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (1_0) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f4,K2,%f10 ! (6_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (4_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f32,%f34 ! (0_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f40,%f58,%f40 ! (5_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (4_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i0]%asi,%f6 ! (5_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f24 ! (4_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f28,%f28,%f28 ! (3_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (4_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i0+4]%asi,%f7 ! (5_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f30,%f30 ! (4_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (3_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update22 ! (4_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp6],%f18 ! (4_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f38,%f62 ! (1_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont22:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f26,%f58 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (4_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (4_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f60 ! (0_0) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f22,%f40,%f40 ! (5_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update23 ! (4_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (4_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (5_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont23:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f18,%f6 ! (4_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (4_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i3+8],%f34 ! (5_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f24,DC2,%f18 ! (4_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f36,%f30 ! (2_0) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%l1 ! (4_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%i1] ! (4_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f44,%f8,%f44 ! (3_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f32,%f60 ! (0_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sllx %o7,52,%o7 ! (4_0) iexp << 52;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f7,[%i1+4] ! (4_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K4,%f6 ! (1_0) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i0]%asi,%g1 ! (5_0) hx = *(int*)px;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %l1,-16,%l1 ! (4_0) hx = -16;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f58,K1,%f58 ! (6_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l1,TBL,%l1 ! (4_0) addr = (char*)arr + hx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridey,%i0 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis stx %o7,[%fp+tmp6] ! (4_0) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f40,%f34,%f8 ! (5_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f28,%f40 ! (3_0) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l1],%f44 ! (4_0) dtmp0 = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f30,K5,%f62 ! (2_0) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f6,%f38,%f34 ! (1_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (5_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l4],%f30 ! (6_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f60,K2,%f60 ! (0_0) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (5_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (5_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1]%asi,%f6 ! (6_0) ((float*)res)[0] = ((float*)px)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f26,%f26 ! (6_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f44,%f44,%f44 ! (4_0) dtmp0 = dexp_hi * dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x7ff00000 ! (5_0) hx ? 0x7ff00000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis lda [%i1+4]%asi,%f7 ! (6_0) ((float*)res)[1] = ((float*)px)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f22,%f22 ! (5_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (4_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,pn %icc,.update24 ! (5_0) if ( hx >= 0x7ff00000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp0],%f18 ! (5_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f36,%f62 ! (2_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont24:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f60,%f32,%f58 ! (0_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (5_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,_0x00100000 ! (5_0) hx ? 0x00100000
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (1_0) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f26,%f26 ! (6_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,pn %icc,.update25 ! (5_0) if ( hx < 0x00100000 )
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (5_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.cont25:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f22,%f18,%f2 ! (5_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,7,counter ! counter -= 7;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l4+8],%f60 ! (6_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (5_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f40,%f22 ! (3_0) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o2,8,%i3 ! (5_0) hx += 8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%l6] ! (5_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsubd %f24,%f8,%f10 ! (4_0) xx = res - res_c;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f38,%f24 ! (1_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%l6+4] ! (5_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bpos,pt %icc,.main_loop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K4,%f34 ! (2_0) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add counter,7,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.tail:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (5_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i0,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f58,K1,%f58 ! (0_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f26,%f60,%f8 ! (6_2) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f22,K5,%f62 ! (3_1) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f10,%f44,%f60 ! (4_1) xx *= dtmp0;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f24,K2,%f26 ! (1_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l2],%f24 ! (0_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f36,%f34 ! (2_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f58,%f32,%f58 ! (0_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridey,%i1 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f30,%f30 ! (6_2) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f40,%f32 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp1],%f62 ! (6_2) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f26,%f38,%f26 ! (1_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (2_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f58,%f58 ! (0_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f62,%f2 ! (6_2) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l2+8],%f30 ! (0_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld K6,%f60,%f62 ! (4_1) res = K6 * xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%i0] ! (6_2) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f36,%f28 ! (2_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%i0+4] ! (6_2) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f32,K4,%f32 ! (3_1) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i1,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f26,K1,%f26 ! (1_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f58,%f30,%f8 ! (0_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f62,K5,%f62 ! (4_1) res += K5;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f40,%f34 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridey,%i0 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2],%f22 ! (1_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f28,K2,%f32 ! (2_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f26,%f38,%f26 ! (1_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f24,%f24 ! (0_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f60,%f38 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp2],%f62 ! (0_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f36,%f32 ! (2_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (3_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f22,%f26,%f26 ! (1_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f62,%f2 ! (0_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i2+8],%f24 ! (1_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%i1] ! (0_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f40,%f44 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%i1+4] ! (0_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f38,K4,%f38 ! (4_1) res += K4;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i0,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f32,K1,%f32 ! (2_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f26,%f24,%f8 ! (1_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridey,%i1 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f60,%f34 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i4],%f24 ! (2_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f44,K2,%f38 ! (3_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f32,%f36,%f32 ! (2_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f22,%f22 ! (1_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp3],%f62 ! (1_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f40,%f38 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (4_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f32,%f32 ! (2_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f22,%f62,%f2 ! (1_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i4+8],%f22 ! (2_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%i0] ! (1_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f34,%f60,%f28 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%i0+4] ! (1_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i1,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f38,K1,%f38 ! (3_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f32,%f22,%f8 ! (2_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridey,%i0 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i5],%f22 ! (3_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f28,K2,%f36 ! (4_1) res += K2;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f38,%f40,%f38 ! (3_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f24,%f24 ! (2_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp4],%f62 ! (2_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f60,%f36 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f22,%f38,%f38 ! (3_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f24,%f62,%f2 ! (2_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%i5+8],%f24 ! (3_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f2,[%i1] ! (2_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f3,[%i1+4] ! (2_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i0,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f36,K1,%f36 ! (4_1) res += K1;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f38,%f24,%f8 ! (3_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i0,stridey,%i1 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%l6 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l1],%f30 ! (4_1) dexp_hi = ((double*)addr)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f36,%f60,%f36 ! (4_1) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f22,%f8 ! (3_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp5],%f62 ! (3_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f36,%f36 ! (4_1) res = dexp_hi * res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f8,%f62,%f8 ! (3_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%l1+8],%f34 ! (4_1) dexp_lo = ((double*)addr)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f8,[%i0] ! (3_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f9,[%i0+4] ! (3_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis subcc counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bneg,a .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i1,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f36,%f34,%f8 ! (4_1) res += dexp_lo;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %l6,stridex,%i0 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridey,%l6 ! px += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f30,%f30 ! (4_1) res += dexp_hi;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%fp+tmp6],%f18 ! (4_1) dlexp = *(double*)lexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f30,%f18,%f6 ! (4_1) res *= dlexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%i1] ! (4_1) ((float*)py)[0] = ((float*)res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f7,[%i1+4] ! (4_1) ((float*)py)[1] = ((float*)res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridey,%o4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.spec0:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdivd DONE,%f0,%f0 ! res = DONE / res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%o4] ! ((float*)py)[0] = ((float*)&res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f1,[%o4+4] ! ((float*)py)[1] = ((float*)&res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,stridey,%o4 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.spec1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %i2,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fdivd DONE,%f0,%f0 ! res = DONE / res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fsqrtd %f0,%f0 ! res = sqrt(res);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp0]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp0],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (6_1) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (6_1) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (6_1) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (6_1) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont_spec
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (6_1) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,%f18,%f0 ! res = vis_fand(res,DC4);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f28
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f0,%f28,%f0 ! res += D2ON51;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp0]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp0],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (6_1) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (6_1) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (6_1) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (6_1) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont_spec
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (6_1) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %i1,stridex,%i1 ! px += stridex
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%o4] ! ((float*)py)[0] = ((float*)&res)[0];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f1,[%o4+4] ! ((float*)py)[1] = ((float*)&res)[1];
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o4,stridey,%o4 ! py += stridey
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .begin1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update0:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i1+4],%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i2,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f8,%f8 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f8,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f8,DC0,%f16 ! (0_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (0_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (0_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (0_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (0_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (0_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (0_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f8,%f18,%f8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f8,%f8 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f18,%f8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f8,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f8,DC0,%f16 ! (0_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (0_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (0_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (0_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (0_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (0_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (0_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,2,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update3:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i1+4],%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i2,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (1_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (1_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (1_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (1_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (1_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,%f18,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f0,%f18,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (1_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (1_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (1_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (1_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (1_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,2,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update4:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,3,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update5:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i1+4],%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i3,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f6,%f6 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (2_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (2_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (2_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (2_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (2_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,%f18,%f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f6,%f6 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f6,%f18,%f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (2_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (2_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (2_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (2_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f28 ! (2_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,3,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update6:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,4,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update7:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f6 ! (6_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i1+4],%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i3,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (3_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (3_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (3_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (3_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (3_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,%f18,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f0,%f18,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (3_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (3_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (3_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (3_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f16,DC1,%f44 ! (3_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,4,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update8:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %l6,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update9:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%l6+4],%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (5_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i3,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f8,%f8 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f8,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f8,DC0,%f24 ! (4_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (4_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (4_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (4_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (4_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f24,DC1,%f24 ! (4_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f8,%f18,%f8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f8,%f8 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f8,%f18,%f8
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f8,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f8,DC0,%f24 ! (4_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (4_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (4_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (4_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (4_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f24,DC1,%f24 ! (4_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %l6,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont9
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update10:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i0,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,6,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update11:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i0+4],%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i3,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f28 ! (5_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (5_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (5_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (5_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (5_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f28,DC1,%f28 ! (5_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,%f18,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f0,%f18,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f28 ! (5_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (5_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (5_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (5_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (5_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f28,DC1,%f28 ! (5_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov %i0,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,6,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update12:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont12
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (2_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,0,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont12
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 0,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update13:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%l4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (6_1) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%l4+4],%l4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%l4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%l4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%l4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f62
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f6,%f6 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f44 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (6_1) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (6_1) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (6_1) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f44,DC1,%f44 ! (6_1) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (6_1) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (6_1) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,%f62,%f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f6,%f6 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f62
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f6,%f62,%f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f44 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (6_1) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (6_1) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f44,DC1,%f44 ! (6_1) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (6_1) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (6_1) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f44,DC2,%f18 ! (6_1) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,0,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont13
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 0,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update14:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont14
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f34,K3,%f34 ! (3_1) res += K3;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont14
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update15:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%l2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont15
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (0_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%l2+4],%l2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%l2,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%l2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%l2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f62
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f18 ! (0_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (0_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (0_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f18,DC1,%f28 ! (0_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (0_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (0_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (0_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont15
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (0_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,%f62,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f62
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f0,%f62,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f18 ! (0_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (0_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (0_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f18,DC1,%f28 ! (0_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (0_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (0_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis add %o7,1534,%o7 ! (0_0) iexp += 0x5fe;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont15
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fpadd32 %f28,DC2,%f18 ! (0_0) res_c = vis_fpadd32(res,DC2);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,1,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont15
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 1,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update16:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (0_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,2,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update17:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (2_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i2+4],%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i2,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f6,%f6 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f44 ! (1_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (1_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (1_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (1_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (1_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f44,DC1,%f44 ! (1_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,%f2,%f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f6,%f6 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f6,%f2,%f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f44 ! (1_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (1_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (1_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (1_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (1_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f44,DC1,%f44 ! (1_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,2,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont17
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 2,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update18:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f8 ! (1_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,3,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont18
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update19:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont19
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (3_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i4+4],%i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i4,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f28 ! (2_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (2_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (2_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (2_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (2_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont19
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f28,DC1,%f28 ! (2_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,%f2,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f2
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f0,%f2,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f28 ! (2_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (2_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (2_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (2_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (2_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont19
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f28,DC1,%f28 ! (2_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,3,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont19
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 3,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update20:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f18,DC3,%f4 ! (2_0) res_c = vis_fand(res_c,DC3);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,4,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont20
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update21:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,4
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f16 ! (4_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i5+4],%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i5,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f34
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f6,%f6 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f44 ! (3_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (3_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (3_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (3_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (3_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f44,DC1,%f44 ! (3_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,%f34,%f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f6,%f6 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f34
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f6,%f34,%f6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f6,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f44 ! (3_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (3_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (3_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (3_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (3_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f44,DC1,%f44 ! (3_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %l6,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,4,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont21
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 4,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update22:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont22
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f38,%f62 ! (1_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i0,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont22
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update23:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i0,stridex,%l1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,5
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont23
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (5_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%l1+4],%l1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%l1,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%l1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%l1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f34
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f24 ! (4_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (4_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (4_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (4_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (4_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont23
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f24,DC1,%f24 ! (4_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,%f34,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f0,%f0 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f34
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f0,%f34,%f0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f0,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f0,DC0,%f24 ! (4_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (4_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (4_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (4_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (4_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont23
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f24,DC1,%f24 ! (4_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i0,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,5,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont23
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 5,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update24:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont24
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fmuld %f62,%f36,%f62 ! (2_0) res *= xx;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,6,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont24
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis .align 16
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.update25:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp counter,6
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ble .cont25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f6,DC0,%f16 ! (6_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i3+4],%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bl 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis orcc %g1,%i3,%g0
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bz 1f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis nop
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i3],%f10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%i3+4],%f11
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sethi %hi(0x00080000),%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis cmp %g1,%i3
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis bge,a 2f
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x50],%f60
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f10,%f10 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f10,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f10,DC0,%f28 ! (5_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (5_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (5_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (5_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (5_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f28,DC1,%f28 ! (5_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis2:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f10,%f60,%f10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fxtod %f10,%f10 ! res = *(long long*)&res;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ldd [%o3+0x58],%f60
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis faddd %f10,%f60,%f10
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis st %f10,[%fp+tmp7]
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis fand %f10,DC0,%f28 ! (5_0) res = vis_fand(res,DC0);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ld [%fp+tmp7],%g1
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,21,%o7 ! (5_0) iexp = hx >> 21;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sra %g1,10,%o2 ! (5_0) hx >>= 10;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %o7,537,%o7
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis and %o2,2040,%o2 ! (5_0) hx &= 0x7f8;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %g0,%o7,%o7 ! (5_0) iexp = -iexp;
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis for %f28,DC1,%f28 ! (5_0) res = vis_for(res,DC1);
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis1:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub %i1,stridex,tmp_px
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis sub counter,6,tmp_counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ba .cont25
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis mov 6,counter
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis.exit:
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis ret
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis restore
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis SET_SIZE(__vrsqrt)
25c28e83beb90e7c80452a7c818c5e6f73a07dc8Piotr Jasiukajtis