1*25c28e83SPiotr Jasiukajtis/* 2*25c28e83SPiotr Jasiukajtis * CDDL HEADER START 3*25c28e83SPiotr Jasiukajtis * 4*25c28e83SPiotr Jasiukajtis * The contents of this file are subject to the terms of the 5*25c28e83SPiotr Jasiukajtis * Common Development and Distribution License (the "License"). 6*25c28e83SPiotr Jasiukajtis * You may not use this file except in compliance with the License. 7*25c28e83SPiotr Jasiukajtis * 8*25c28e83SPiotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*25c28e83SPiotr Jasiukajtis * or http://www.opensolaris.org/os/licensing. 10*25c28e83SPiotr Jasiukajtis * See the License for the specific language governing permissions 11*25c28e83SPiotr Jasiukajtis * and limitations under the License. 12*25c28e83SPiotr Jasiukajtis * 13*25c28e83SPiotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each 14*25c28e83SPiotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*25c28e83SPiotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the 16*25c28e83SPiotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying 17*25c28e83SPiotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner] 18*25c28e83SPiotr Jasiukajtis * 19*25c28e83SPiotr Jasiukajtis * CDDL HEADER END 20*25c28e83SPiotr Jasiukajtis */ 21*25c28e83SPiotr Jasiukajtis/* 22*25c28e83SPiotr Jasiukajtis * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 23*25c28e83SPiotr Jasiukajtis */ 24*25c28e83SPiotr Jasiukajtis/* 25*25c28e83SPiotr Jasiukajtis * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 26*25c28e83SPiotr Jasiukajtis * Use is subject to license terms. 27*25c28e83SPiotr Jasiukajtis */ 28*25c28e83SPiotr Jasiukajtis 29*25c28e83SPiotr Jasiukajtis .file "__vsin.S" 30*25c28e83SPiotr Jasiukajtis 31*25c28e83SPiotr Jasiukajtis#include "libm.h" 32*25c28e83SPiotr Jasiukajtis 33*25c28e83SPiotr Jasiukajtis RO_DATA 34*25c28e83SPiotr Jasiukajtis .align 64 35*25c28e83SPiotr Jasiukajtisconstants: 36*25c28e83SPiotr Jasiukajtis .word 0x3ec718e3,0xa6972785 37*25c28e83SPiotr Jasiukajtis .word 0x3ef9fd39,0x94293940 38*25c28e83SPiotr Jasiukajtis .word 0xbf2a019f,0x75ee4be1 39*25c28e83SPiotr Jasiukajtis .word 0xbf56c16b,0xba552569 40*25c28e83SPiotr Jasiukajtis .word 0x3f811111,0x1108c703 41*25c28e83SPiotr Jasiukajtis .word 0x3fa55555,0x554f5b35 42*25c28e83SPiotr Jasiukajtis .word 0xbfc55555,0x555554d0 43*25c28e83SPiotr Jasiukajtis .word 0xbfdfffff,0xffffff85 44*25c28e83SPiotr Jasiukajtis .word 0x3ff00000,0x00000000 45*25c28e83SPiotr Jasiukajtis .word 0xbfc55555,0x5551fc28 46*25c28e83SPiotr Jasiukajtis .word 0x3f811107,0x62eacc9d 47*25c28e83SPiotr Jasiukajtis .word 0xbfdfffff,0xffff6328 48*25c28e83SPiotr Jasiukajtis .word 0x3fa55551,0x5f7acf0c 49*25c28e83SPiotr Jasiukajtis .word 0x3fe45f30,0x6dc9c883 50*25c28e83SPiotr Jasiukajtis .word 0x43380000,0x00000000 51*25c28e83SPiotr Jasiukajtis .word 0x3ff921fb,0x54400000 52*25c28e83SPiotr Jasiukajtis .word 0x3dd0b461,0x1a600000 53*25c28e83SPiotr Jasiukajtis .word 0x3ba3198a,0x2e000000 54*25c28e83SPiotr Jasiukajtis .word 0x397b839a,0x252049c1 55*25c28e83SPiotr Jasiukajtis .word 0x80000000,0x00004000 56*25c28e83SPiotr Jasiukajtis .word 0xffff8000,0x00000000 ! N.B.: low-order words used 57*25c28e83SPiotr Jasiukajtis .word 0x3fc90000,0x80000000 ! for sign bit hacking; see 58*25c28e83SPiotr Jasiukajtis .word 0x3fc40000,0x00000000 ! references to "thresh" below 59*25c28e83SPiotr Jasiukajtis 60*25c28e83SPiotr Jasiukajtis#define p4 0x0 61*25c28e83SPiotr Jasiukajtis#define q4 0x08 62*25c28e83SPiotr Jasiukajtis#define p3 0x10 63*25c28e83SPiotr Jasiukajtis#define q3 0x18 64*25c28e83SPiotr Jasiukajtis#define p2 0x20 65*25c28e83SPiotr Jasiukajtis#define q2 0x28 66*25c28e83SPiotr Jasiukajtis#define p1 0x30 67*25c28e83SPiotr Jasiukajtis#define q1 0x38 68*25c28e83SPiotr Jasiukajtis#define one 0x40 69*25c28e83SPiotr Jasiukajtis#define pp1 0x48 70*25c28e83SPiotr Jasiukajtis#define pp2 0x50 71*25c28e83SPiotr Jasiukajtis#define qq1 0x58 72*25c28e83SPiotr Jasiukajtis#define qq2 0x60 73*25c28e83SPiotr Jasiukajtis#define invpio2 0x68 74*25c28e83SPiotr Jasiukajtis#define round 0x70 75*25c28e83SPiotr Jasiukajtis#define pio2_1 0x78 76*25c28e83SPiotr Jasiukajtis#define pio2_2 0x80 77*25c28e83SPiotr Jasiukajtis#define pio2_3 0x88 78*25c28e83SPiotr Jasiukajtis#define pio2_3t 0x90 79*25c28e83SPiotr Jasiukajtis#define f30val 0x98 80*25c28e83SPiotr Jasiukajtis#define mask 0xa0 81*25c28e83SPiotr Jasiukajtis#define thresh 0xa8 82*25c28e83SPiotr Jasiukajtis 83*25c28e83SPiotr Jasiukajtis! local storage indices 84*25c28e83SPiotr Jasiukajtis 85*25c28e83SPiotr Jasiukajtis#define xsave STACK_BIAS-0x8 86*25c28e83SPiotr Jasiukajtis#define ysave STACK_BIAS-0x10 87*25c28e83SPiotr Jasiukajtis#define nsave STACK_BIAS-0x14 88*25c28e83SPiotr Jasiukajtis#define sxsave STACK_BIAS-0x18 89*25c28e83SPiotr Jasiukajtis#define sysave STACK_BIAS-0x1c 90*25c28e83SPiotr Jasiukajtis#define biguns STACK_BIAS-0x20 91*25c28e83SPiotr Jasiukajtis#define n2 STACK_BIAS-0x24 92*25c28e83SPiotr Jasiukajtis#define n1 STACK_BIAS-0x28 93*25c28e83SPiotr Jasiukajtis#define n0 STACK_BIAS-0x2c 94*25c28e83SPiotr Jasiukajtis#define x2_1 STACK_BIAS-0x40 95*25c28e83SPiotr Jasiukajtis#define x1_1 STACK_BIAS-0x50 96*25c28e83SPiotr Jasiukajtis#define x0_1 STACK_BIAS-0x60 97*25c28e83SPiotr Jasiukajtis#define y2_0 STACK_BIAS-0x70 98*25c28e83SPiotr Jasiukajtis#define y1_0 STACK_BIAS-0x80 99*25c28e83SPiotr Jasiukajtis#define y0_0 STACK_BIAS-0x90 100*25c28e83SPiotr Jasiukajtis! sizeof temp storage - must be a multiple of 16 for V9 101*25c28e83SPiotr Jasiukajtis#define tmps 0x90 102*25c28e83SPiotr Jasiukajtis 103*25c28e83SPiotr Jasiukajtis!-------------------------------------------------------------- 104*25c28e83SPiotr Jasiukajtis! Some defines to keep code more readable 105*25c28e83SPiotr Jasiukajtis#define LIM_l6 %l6 106*25c28e83SPiotr Jasiukajtis! in primary range, contains |x| upper limit when cos(x)=1. 107*25c28e83SPiotr Jasiukajtis! in transferring to medium range, denotes what loop was active. 108*25c28e83SPiotr Jasiukajtis!-------------------------------------------------------------- 109*25c28e83SPiotr Jasiukajtis 110*25c28e83SPiotr Jasiukajtis ENTRY(__vsin) 111*25c28e83SPiotr Jasiukajtis save %sp,-SA(MINFRAME)-tmps,%sp 112*25c28e83SPiotr Jasiukajtis PIC_SETUP(g5) 113*25c28e83SPiotr Jasiukajtis PIC_SET(g5,__vlibm_TBL_sincos_hi,l3) 114*25c28e83SPiotr Jasiukajtis PIC_SET(g5,__vlibm_TBL_sincos_lo,l4) 115*25c28e83SPiotr Jasiukajtis PIC_SET(g5,constants,l5) 116*25c28e83SPiotr Jasiukajtis mov %l5,%g1 117*25c28e83SPiotr Jasiukajtis wr %g0,0x82,%asi ! set %asi for non-faulting loads 118*25c28e83SPiotr Jasiukajtis 119*25c28e83SPiotr Jasiukajtis! ========== primary range ========== 120*25c28e83SPiotr Jasiukajtis 121*25c28e83SPiotr Jasiukajtis! register use 122*25c28e83SPiotr Jasiukajtis 123*25c28e83SPiotr Jasiukajtis! i0 n 124*25c28e83SPiotr Jasiukajtis! i1 x 125*25c28e83SPiotr Jasiukajtis! i2 stridex 126*25c28e83SPiotr Jasiukajtis! i3 y 127*25c28e83SPiotr Jasiukajtis! i4 stridey 128*25c28e83SPiotr Jasiukajtis! i5 0x80000000 129*25c28e83SPiotr Jasiukajtis 130*25c28e83SPiotr Jasiukajtis! l0 hx0 131*25c28e83SPiotr Jasiukajtis! l1 hx1 132*25c28e83SPiotr Jasiukajtis! l2 hx2 133*25c28e83SPiotr Jasiukajtis! l3 __vlibm_TBL_sincos_hi 134*25c28e83SPiotr Jasiukajtis! l4 __vlibm_TBL_sincos_lo 135*25c28e83SPiotr Jasiukajtis! l5 0x3fc90000 136*25c28e83SPiotr Jasiukajtis! l6 0x3e400000 137*25c28e83SPiotr Jasiukajtis! l7 0x3fe921fb 138*25c28e83SPiotr Jasiukajtis 139*25c28e83SPiotr Jasiukajtis! the following are 64-bit registers in both V8+ and V9 140*25c28e83SPiotr Jasiukajtis 141*25c28e83SPiotr Jasiukajtis! g1 scratch 142*25c28e83SPiotr Jasiukajtis! g5 143*25c28e83SPiotr Jasiukajtis 144*25c28e83SPiotr Jasiukajtis! o0 py0 145*25c28e83SPiotr Jasiukajtis! o1 py1 146*25c28e83SPiotr Jasiukajtis! o2 py2 147*25c28e83SPiotr Jasiukajtis! o3 oy0 148*25c28e83SPiotr Jasiukajtis! o4 oy1 149*25c28e83SPiotr Jasiukajtis! o5 oy2 150*25c28e83SPiotr Jasiukajtis! o7 scratch 151*25c28e83SPiotr Jasiukajtis 152*25c28e83SPiotr Jasiukajtis! f0 x0 153*25c28e83SPiotr Jasiukajtis! f2 154*25c28e83SPiotr Jasiukajtis! f4 155*25c28e83SPiotr Jasiukajtis! f6 156*25c28e83SPiotr Jasiukajtis! f8 scratch for table base 157*25c28e83SPiotr Jasiukajtis! f9 signbit0 158*25c28e83SPiotr Jasiukajtis! f10 x1 159*25c28e83SPiotr Jasiukajtis! f12 160*25c28e83SPiotr Jasiukajtis! f14 161*25c28e83SPiotr Jasiukajtis! f16 162*25c28e83SPiotr Jasiukajtis! f18 scratch for table base 163*25c28e83SPiotr Jasiukajtis! f19 signbit1 164*25c28e83SPiotr Jasiukajtis! f20 x2 165*25c28e83SPiotr Jasiukajtis! f22 166*25c28e83SPiotr Jasiukajtis! f24 167*25c28e83SPiotr Jasiukajtis! f26 168*25c28e83SPiotr Jasiukajtis! f28 scratch for table base 169*25c28e83SPiotr Jasiukajtis! f29 signbit2 170*25c28e83SPiotr Jasiukajtis! f30 0x80000000 171*25c28e83SPiotr Jasiukajtis! f31 0x4000 172*25c28e83SPiotr Jasiukajtis! f32 173*25c28e83SPiotr Jasiukajtis! f34 174*25c28e83SPiotr Jasiukajtis! f36 175*25c28e83SPiotr Jasiukajtis! f38 176*25c28e83SPiotr Jasiukajtis! f40 177*25c28e83SPiotr Jasiukajtis! f42 178*25c28e83SPiotr Jasiukajtis! f44 0xffff800000000000 179*25c28e83SPiotr Jasiukajtis! f46 p1 180*25c28e83SPiotr Jasiukajtis! f48 p2 181*25c28e83SPiotr Jasiukajtis! f50 p3 182*25c28e83SPiotr Jasiukajtis! f52 p4 183*25c28e83SPiotr Jasiukajtis! f54 one 184*25c28e83SPiotr Jasiukajtis! f56 pp1 185*25c28e83SPiotr Jasiukajtis! f58 pp2 186*25c28e83SPiotr Jasiukajtis! f60 qq1 187*25c28e83SPiotr Jasiukajtis! f62 qq2 188*25c28e83SPiotr Jasiukajtis 189*25c28e83SPiotr Jasiukajtis#ifdef __sparcv9 190*25c28e83SPiotr Jasiukajtis stx %i1,[%fp+xsave] ! save arguments 191*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+ysave] 192*25c28e83SPiotr Jasiukajtis#else 193*25c28e83SPiotr Jasiukajtis st %i1,[%fp+xsave] ! save arguments 194*25c28e83SPiotr Jasiukajtis st %i3,[%fp+ysave] 195*25c28e83SPiotr Jasiukajtis#endif 196*25c28e83SPiotr Jasiukajtis st %i0,[%fp+nsave] 197*25c28e83SPiotr Jasiukajtis st %i2,[%fp+sxsave] 198*25c28e83SPiotr Jasiukajtis st %i4,[%fp+sysave] 199*25c28e83SPiotr Jasiukajtis sethi %hi(0x80000000),%i5 ! load/set up constants 200*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc90000),%l5 201*25c28e83SPiotr Jasiukajtis sethi %hi(0x3e400000),LIM_l6 202*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fe921fb),%l7 203*25c28e83SPiotr Jasiukajtis or %l7,%lo(0x3fe921fb),%l7 204*25c28e83SPiotr Jasiukajtis ldd [%g1+f30val],%f30 205*25c28e83SPiotr Jasiukajtis ldd [%g1+mask],%f44 206*25c28e83SPiotr Jasiukajtis ldd [%g1+p1],%f46 207*25c28e83SPiotr Jasiukajtis ldd [%g1+p2],%f48 208*25c28e83SPiotr Jasiukajtis ldd [%g1+p3],%f50 209*25c28e83SPiotr Jasiukajtis ldd [%g1+p4],%f52 210*25c28e83SPiotr Jasiukajtis ldd [%g1+one],%f54 211*25c28e83SPiotr Jasiukajtis ldd [%g1+pp1],%f56 212*25c28e83SPiotr Jasiukajtis ldd [%g1+pp2],%f58 213*25c28e83SPiotr Jasiukajtis ldd [%g1+qq1],%f60 214*25c28e83SPiotr Jasiukajtis ldd [%g1+qq2],%f62 215*25c28e83SPiotr Jasiukajtis sll %i2,3,%i2 ! scale strides 216*25c28e83SPiotr Jasiukajtis sll %i4,3,%i4 217*25c28e83SPiotr Jasiukajtis add %fp,x0_1,%o3 ! precondition loop 218*25c28e83SPiotr Jasiukajtis add %fp,x0_1,%o4 219*25c28e83SPiotr Jasiukajtis add %fp,x0_1,%o5 220*25c28e83SPiotr Jasiukajtis ld [%i1],%l0 ! hx = *x 221*25c28e83SPiotr Jasiukajtis ld [%i1],%f0 222*25c28e83SPiotr Jasiukajtis ld [%i1+4],%f1 223*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 224*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 225*25c28e83SPiotr Jasiukajtis 226*25c28e83SPiotr Jasiukajtis ba,pt %icc,.loop0 227*25c28e83SPiotr Jasiukajtis! delay slot 228*25c28e83SPiotr Jasiukajtis nop 229*25c28e83SPiotr Jasiukajtis 230*25c28e83SPiotr Jasiukajtis .align 32 231*25c28e83SPiotr Jasiukajtis.loop0: 232*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l1 ! preload next argument 233*25c28e83SPiotr Jasiukajtis sub %l0,LIM_l6,%g1 234*25c28e83SPiotr Jasiukajtis sub %l7,%l0,%o7 235*25c28e83SPiotr Jasiukajtis fands %f0,%f30,%f9 ! save signbit 236*25c28e83SPiotr Jasiukajtis 237*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f10 238*25c28e83SPiotr Jasiukajtis orcc %o7,%g1,%g0 239*25c28e83SPiotr Jasiukajtis mov %i3,%o0 ! py0 = y 240*25c28e83SPiotr Jasiukajtis bl,pn %icc,.range0 ! if hx < 0x3e400000 or > 0x3fe921fb 241*25c28e83SPiotr Jasiukajtis 242*25c28e83SPiotr Jasiukajtis! delay slot 243*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f11 244*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 245*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 246*25c28e83SPiotr Jasiukajtis ble,pn %icc,.endloop1 247*25c28e83SPiotr Jasiukajtis 248*25c28e83SPiotr Jasiukajtis! delay slot 249*25c28e83SPiotr Jasiukajtis andn %l1,%i5,%l1 250*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 251*25c28e83SPiotr Jasiukajtis fabsd %f0,%f0 252*25c28e83SPiotr Jasiukajtis fmuld %f54,%f54,%f54 ! one*one; a nop for alignment only 253*25c28e83SPiotr Jasiukajtis 254*25c28e83SPiotr Jasiukajtis.loop1: 255*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l2 ! preload next argument 256*25c28e83SPiotr Jasiukajtis sub %l1,LIM_l6,%g1 257*25c28e83SPiotr Jasiukajtis sub %l7,%l1,%o7 258*25c28e83SPiotr Jasiukajtis fands %f10,%f30,%f19 ! save signbit 259*25c28e83SPiotr Jasiukajtis 260*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f20 261*25c28e83SPiotr Jasiukajtis orcc %o7,%g1,%g0 262*25c28e83SPiotr Jasiukajtis mov %i3,%o1 ! py1 = y 263*25c28e83SPiotr Jasiukajtis bl,pn %icc,.range1 ! if hx < 0x3e400000 or > 0x3fe921fb 264*25c28e83SPiotr Jasiukajtis 265*25c28e83SPiotr Jasiukajtis! delay slot 266*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f21 267*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 268*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 269*25c28e83SPiotr Jasiukajtis ble,pn %icc,.endloop2 270*25c28e83SPiotr Jasiukajtis 271*25c28e83SPiotr Jasiukajtis! delay slot 272*25c28e83SPiotr Jasiukajtis andn %l2,%i5,%l2 273*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 274*25c28e83SPiotr Jasiukajtis fabsd %f10,%f10 275*25c28e83SPiotr Jasiukajtis fmuld %f54,%f54,%f54 ! one*one; a nop for alignment only 276*25c28e83SPiotr Jasiukajtis 277*25c28e83SPiotr Jasiukajtis.loop2: 278*25c28e83SPiotr Jasiukajtis st %f6,[%o3] 279*25c28e83SPiotr Jasiukajtis sub %l2,LIM_l6,%g1 280*25c28e83SPiotr Jasiukajtis sub %l7,%l2,%o7 281*25c28e83SPiotr Jasiukajtis fands %f20,%f30,%f29 ! save signbit 282*25c28e83SPiotr Jasiukajtis 283*25c28e83SPiotr Jasiukajtis st %f7,[%o3+4] 284*25c28e83SPiotr Jasiukajtis orcc %g1,%o7,%g0 285*25c28e83SPiotr Jasiukajtis mov %i3,%o2 ! py2 = y 286*25c28e83SPiotr Jasiukajtis bl,pn %icc,.range2 ! if hx < 0x3e400000 or > 0x3fe921fb 287*25c28e83SPiotr Jasiukajtis 288*25c28e83SPiotr Jasiukajtis! delay slot 289*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 290*25c28e83SPiotr Jasiukajtis cmp %l0,%l5 291*25c28e83SPiotr Jasiukajtis fabsd %f20,%f20 292*25c28e83SPiotr Jasiukajtis bl,pn %icc,.case4 293*25c28e83SPiotr Jasiukajtis 294*25c28e83SPiotr Jasiukajtis! delay slot 295*25c28e83SPiotr Jasiukajtis st %f16,[%o4] 296*25c28e83SPiotr Jasiukajtis cmp %l1,%l5 297*25c28e83SPiotr Jasiukajtis fpadd32s %f0,%f31,%f8 298*25c28e83SPiotr Jasiukajtis bl,pn %icc,.case2 299*25c28e83SPiotr Jasiukajtis 300*25c28e83SPiotr Jasiukajtis! delay slot 301*25c28e83SPiotr Jasiukajtis st %f17,[%o4+4] 302*25c28e83SPiotr Jasiukajtis cmp %l2,%l5 303*25c28e83SPiotr Jasiukajtis fpadd32s %f10,%f31,%f18 304*25c28e83SPiotr Jasiukajtis bl,pn %icc,.case1 305*25c28e83SPiotr Jasiukajtis 306*25c28e83SPiotr Jasiukajtis! delay slot 307*25c28e83SPiotr Jasiukajtis st %f26,[%o5] 308*25c28e83SPiotr Jasiukajtis mov %o0,%o3 309*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 310*25c28e83SPiotr Jasiukajtis fpadd32s %f20,%f31,%f28 311*25c28e83SPiotr Jasiukajtis 312*25c28e83SPiotr Jasiukajtis st %f27,[%o5+4] 313*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f2 314*25c28e83SPiotr Jasiukajtis mov %o1,%o4 315*25c28e83SPiotr Jasiukajtis 316*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f12 317*25c28e83SPiotr Jasiukajtis mov %o2,%o5 318*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 319*25c28e83SPiotr Jasiukajtis 320*25c28e83SPiotr Jasiukajtis fand %f28,%f44,%f22 321*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 322*25c28e83SPiotr Jasiukajtis sub %l2,%o7,%l2 323*25c28e83SPiotr Jasiukajtis 324*25c28e83SPiotr Jasiukajtis fsubd %f0,%f2,%f0 325*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 326*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 327*25c28e83SPiotr Jasiukajtis 328*25c28e83SPiotr Jasiukajtis fsubd %f10,%f12,%f10 329*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 330*25c28e83SPiotr Jasiukajtis 331*25c28e83SPiotr Jasiukajtis fsubd %f20,%f22,%f20 332*25c28e83SPiotr Jasiukajtis srl %l2,10,%l2 333*25c28e83SPiotr Jasiukajtis 334*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 335*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 336*25c28e83SPiotr Jasiukajtis 337*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 338*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 339*25c28e83SPiotr Jasiukajtis 340*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 341*25c28e83SPiotr Jasiukajtis andn %l2,0x1f,%l2 342*25c28e83SPiotr Jasiukajtis 343*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 344*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 345*25c28e83SPiotr Jasiukajtis 346*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 347*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f36 348*25c28e83SPiotr Jasiukajtis 349*25c28e83SPiotr Jasiukajtis fmuld %f22,%f58,%f26 350*25c28e83SPiotr Jasiukajtis ldd [%l3+%l2],%f40 351*25c28e83SPiotr Jasiukajtis 352*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 353*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 354*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f34 355*25c28e83SPiotr Jasiukajtis 356*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 357*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 358*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f38 359*25c28e83SPiotr Jasiukajtis 360*25c28e83SPiotr Jasiukajtis faddd %f26,%f56,%f26 361*25c28e83SPiotr Jasiukajtis fmuld %f22,%f62,%f24 362*25c28e83SPiotr Jasiukajtis ldd [%g1+%l2],%f42 363*25c28e83SPiotr Jasiukajtis 364*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 365*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 366*25c28e83SPiotr Jasiukajtis 367*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 368*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 369*25c28e83SPiotr Jasiukajtis 370*25c28e83SPiotr Jasiukajtis fmuld %f22,%f26,%f26 371*25c28e83SPiotr Jasiukajtis faddd %f24,%f60,%f24 372*25c28e83SPiotr Jasiukajtis 373*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 374*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 375*25c28e83SPiotr Jasiukajtis 376*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 377*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 378*25c28e83SPiotr Jasiukajtis 379*25c28e83SPiotr Jasiukajtis faddd %f26,%f54,%f26 380*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 381*25c28e83SPiotr Jasiukajtis 382*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 383*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f2 384*25c28e83SPiotr Jasiukajtis 385*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 386*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f12 387*25c28e83SPiotr Jasiukajtis 388*25c28e83SPiotr Jasiukajtis fmuld %f20,%f26,%f26 389*25c28e83SPiotr Jasiukajtis ldd [%l4+%l2],%f22 390*25c28e83SPiotr Jasiukajtis 391*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 392*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 393*25c28e83SPiotr Jasiukajtis 394*25c28e83SPiotr Jasiukajtis fmuld %f14,%f36,%f14 395*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 396*25c28e83SPiotr Jasiukajtis 397*25c28e83SPiotr Jasiukajtis fmuld %f24,%f40,%f24 398*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 399*25c28e83SPiotr Jasiukajtis 400*25c28e83SPiotr Jasiukajtis fmuld %f6,%f34,%f6 401*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 402*25c28e83SPiotr Jasiukajtis 403*25c28e83SPiotr Jasiukajtis fmuld %f16,%f38,%f16 404*25c28e83SPiotr Jasiukajtis 405*25c28e83SPiotr Jasiukajtis fmuld %f26,%f42,%f26 406*25c28e83SPiotr Jasiukajtis 407*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 408*25c28e83SPiotr Jasiukajtis 409*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 410*25c28e83SPiotr Jasiukajtis 411*25c28e83SPiotr Jasiukajtis faddd %f26,%f24,%f26 412*25c28e83SPiotr Jasiukajtis 413*25c28e83SPiotr Jasiukajtis faddd %f6,%f2,%f6 414*25c28e83SPiotr Jasiukajtis 415*25c28e83SPiotr Jasiukajtis faddd %f16,%f12,%f16 416*25c28e83SPiotr Jasiukajtis 417*25c28e83SPiotr Jasiukajtis faddd %f26,%f22,%f26 418*25c28e83SPiotr Jasiukajtis 419*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 420*25c28e83SPiotr Jasiukajtis 421*25c28e83SPiotr Jasiukajtis faddd %f16,%f36,%f16 422*25c28e83SPiotr Jasiukajtis 423*25c28e83SPiotr Jasiukajtis faddd %f26,%f40,%f26 424*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 425*25c28e83SPiotr Jasiukajtis 426*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 427*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 428*25c28e83SPiotr Jasiukajtis 429*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 430*25c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 431*25c28e83SPiotr Jasiukajtis 432*25c28e83SPiotr Jasiukajtis! delay slot 433*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 434*25c28e83SPiotr Jasiukajtis 435*25c28e83SPiotr Jasiukajtis ba,pt %icc,.endloop0 436*25c28e83SPiotr Jasiukajtis! delay slot 437*25c28e83SPiotr Jasiukajtis nop 438*25c28e83SPiotr Jasiukajtis 439*25c28e83SPiotr Jasiukajtis .align 32 440*25c28e83SPiotr Jasiukajtis.case1: 441*25c28e83SPiotr Jasiukajtis st %f27,[%o5+4] 442*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 443*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 444*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f2 445*25c28e83SPiotr Jasiukajtis 446*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 447*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 448*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f12 449*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 450*25c28e83SPiotr Jasiukajtis 451*25c28e83SPiotr Jasiukajtis fsubd %f0,%f2,%f0 452*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 453*25c28e83SPiotr Jasiukajtis mov %o0,%o3 454*25c28e83SPiotr Jasiukajtis 455*25c28e83SPiotr Jasiukajtis fsubd %f10,%f12,%f10 456*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 457*25c28e83SPiotr Jasiukajtis mov %o1,%o4 458*25c28e83SPiotr Jasiukajtis 459*25c28e83SPiotr Jasiukajtis fmuld %f22,%f52,%f24 460*25c28e83SPiotr Jasiukajtis mov %o2,%o5 461*25c28e83SPiotr Jasiukajtis 462*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 463*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 464*25c28e83SPiotr Jasiukajtis 465*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 466*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 467*25c28e83SPiotr Jasiukajtis 468*25c28e83SPiotr Jasiukajtis faddd %f24,%f50,%f24 469*25c28e83SPiotr Jasiukajtis 470*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 471*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 472*25c28e83SPiotr Jasiukajtis 473*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 474*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f36 475*25c28e83SPiotr Jasiukajtis 476*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 477*25c28e83SPiotr Jasiukajtis 478*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 479*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 480*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f34 481*25c28e83SPiotr Jasiukajtis 482*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 483*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 484*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f38 485*25c28e83SPiotr Jasiukajtis 486*25c28e83SPiotr Jasiukajtis faddd %f24,%f48,%f24 487*25c28e83SPiotr Jasiukajtis 488*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 489*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 490*25c28e83SPiotr Jasiukajtis 491*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 492*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 493*25c28e83SPiotr Jasiukajtis 494*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 495*25c28e83SPiotr Jasiukajtis 496*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 497*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 498*25c28e83SPiotr Jasiukajtis 499*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 500*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 501*25c28e83SPiotr Jasiukajtis 502*25c28e83SPiotr Jasiukajtis faddd %f24,%f46,%f24 503*25c28e83SPiotr Jasiukajtis 504*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 505*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f2 506*25c28e83SPiotr Jasiukajtis 507*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 508*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f12 509*25c28e83SPiotr Jasiukajtis 510*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 511*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 512*25c28e83SPiotr Jasiukajtis 513*25c28e83SPiotr Jasiukajtis fmuld %f14,%f36,%f14 514*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 515*25c28e83SPiotr Jasiukajtis 516*25c28e83SPiotr Jasiukajtis fmuld %f6,%f34,%f6 517*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 518*25c28e83SPiotr Jasiukajtis 519*25c28e83SPiotr Jasiukajtis fmuld %f16,%f38,%f16 520*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 521*25c28e83SPiotr Jasiukajtis 522*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 523*25c28e83SPiotr Jasiukajtis 524*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 525*25c28e83SPiotr Jasiukajtis 526*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 527*25c28e83SPiotr Jasiukajtis 528*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 529*25c28e83SPiotr Jasiukajtis 530*25c28e83SPiotr Jasiukajtis faddd %f6,%f2,%f6 531*25c28e83SPiotr Jasiukajtis 532*25c28e83SPiotr Jasiukajtis faddd %f16,%f12,%f16 533*25c28e83SPiotr Jasiukajtis 534*25c28e83SPiotr Jasiukajtis faddd %f20,%f24,%f26 535*25c28e83SPiotr Jasiukajtis 536*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 537*25c28e83SPiotr Jasiukajtis 538*25c28e83SPiotr Jasiukajtis faddd %f16,%f36,%f16 539*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 540*25c28e83SPiotr Jasiukajtis 541*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 542*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 543*25c28e83SPiotr Jasiukajtis 544*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 545*25c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 546*25c28e83SPiotr Jasiukajtis 547*25c28e83SPiotr Jasiukajtis! delay slot 548*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 549*25c28e83SPiotr Jasiukajtis 550*25c28e83SPiotr Jasiukajtis ba,pt %icc,.endloop0 551*25c28e83SPiotr Jasiukajtis! delay slot 552*25c28e83SPiotr Jasiukajtis nop 553*25c28e83SPiotr Jasiukajtis 554*25c28e83SPiotr Jasiukajtis .align 32 555*25c28e83SPiotr Jasiukajtis.case2: 556*25c28e83SPiotr Jasiukajtis st %f26,[%o5] 557*25c28e83SPiotr Jasiukajtis cmp %l2,%l5 558*25c28e83SPiotr Jasiukajtis fpadd32s %f20,%f31,%f28 559*25c28e83SPiotr Jasiukajtis bl,pn %icc,.case3 560*25c28e83SPiotr Jasiukajtis 561*25c28e83SPiotr Jasiukajtis! delay slot 562*25c28e83SPiotr Jasiukajtis st %f27,[%o5+4] 563*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 564*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 565*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f2 566*25c28e83SPiotr Jasiukajtis 567*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 568*25c28e83SPiotr Jasiukajtis sub %l2,%o7,%l2 569*25c28e83SPiotr Jasiukajtis fand %f28,%f44,%f22 570*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 571*25c28e83SPiotr Jasiukajtis 572*25c28e83SPiotr Jasiukajtis fsubd %f0,%f2,%f0 573*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 574*25c28e83SPiotr Jasiukajtis mov %o0,%o3 575*25c28e83SPiotr Jasiukajtis 576*25c28e83SPiotr Jasiukajtis fsubd %f20,%f22,%f20 577*25c28e83SPiotr Jasiukajtis srl %l2,10,%l2 578*25c28e83SPiotr Jasiukajtis mov %o2,%o5 579*25c28e83SPiotr Jasiukajtis 580*25c28e83SPiotr Jasiukajtis fmuld %f12,%f52,%f14 581*25c28e83SPiotr Jasiukajtis mov %o1,%o4 582*25c28e83SPiotr Jasiukajtis 583*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 584*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 585*25c28e83SPiotr Jasiukajtis 586*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 587*25c28e83SPiotr Jasiukajtis andn %l2,0x1f,%l2 588*25c28e83SPiotr Jasiukajtis 589*25c28e83SPiotr Jasiukajtis faddd %f14,%f50,%f14 590*25c28e83SPiotr Jasiukajtis 591*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 592*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 593*25c28e83SPiotr Jasiukajtis 594*25c28e83SPiotr Jasiukajtis fmuld %f22,%f58,%f26 595*25c28e83SPiotr Jasiukajtis ldd [%l3+%l2],%f40 596*25c28e83SPiotr Jasiukajtis 597*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 598*25c28e83SPiotr Jasiukajtis 599*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 600*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 601*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f34 602*25c28e83SPiotr Jasiukajtis 603*25c28e83SPiotr Jasiukajtis faddd %f26,%f56,%f26 604*25c28e83SPiotr Jasiukajtis fmuld %f22,%f62,%f24 605*25c28e83SPiotr Jasiukajtis ldd [%g1+%l2],%f42 606*25c28e83SPiotr Jasiukajtis 607*25c28e83SPiotr Jasiukajtis faddd %f14,%f48,%f14 608*25c28e83SPiotr Jasiukajtis 609*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 610*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 611*25c28e83SPiotr Jasiukajtis 612*25c28e83SPiotr Jasiukajtis fmuld %f22,%f26,%f26 613*25c28e83SPiotr Jasiukajtis faddd %f24,%f60,%f24 614*25c28e83SPiotr Jasiukajtis 615*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 616*25c28e83SPiotr Jasiukajtis 617*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 618*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 619*25c28e83SPiotr Jasiukajtis 620*25c28e83SPiotr Jasiukajtis faddd %f26,%f54,%f26 621*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 622*25c28e83SPiotr Jasiukajtis 623*25c28e83SPiotr Jasiukajtis faddd %f14,%f46,%f14 624*25c28e83SPiotr Jasiukajtis 625*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 626*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f2 627*25c28e83SPiotr Jasiukajtis 628*25c28e83SPiotr Jasiukajtis fmuld %f20,%f26,%f26 629*25c28e83SPiotr Jasiukajtis ldd [%l4+%l2],%f22 630*25c28e83SPiotr Jasiukajtis 631*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 632*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 633*25c28e83SPiotr Jasiukajtis 634*25c28e83SPiotr Jasiukajtis fmuld %f24,%f40,%f24 635*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 636*25c28e83SPiotr Jasiukajtis 637*25c28e83SPiotr Jasiukajtis fmuld %f6,%f34,%f6 638*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 639*25c28e83SPiotr Jasiukajtis 640*25c28e83SPiotr Jasiukajtis fmuld %f26,%f42,%f26 641*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 642*25c28e83SPiotr Jasiukajtis 643*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 644*25c28e83SPiotr Jasiukajtis 645*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 646*25c28e83SPiotr Jasiukajtis 647*25c28e83SPiotr Jasiukajtis faddd %f26,%f24,%f26 648*25c28e83SPiotr Jasiukajtis 649*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 650*25c28e83SPiotr Jasiukajtis 651*25c28e83SPiotr Jasiukajtis faddd %f6,%f2,%f6 652*25c28e83SPiotr Jasiukajtis 653*25c28e83SPiotr Jasiukajtis faddd %f26,%f22,%f26 654*25c28e83SPiotr Jasiukajtis 655*25c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f16 656*25c28e83SPiotr Jasiukajtis 657*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 658*25c28e83SPiotr Jasiukajtis 659*25c28e83SPiotr Jasiukajtis faddd %f26,%f40,%f26 660*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 661*25c28e83SPiotr Jasiukajtis 662*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 663*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 664*25c28e83SPiotr Jasiukajtis 665*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 666*25c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 667*25c28e83SPiotr Jasiukajtis 668*25c28e83SPiotr Jasiukajtis! delay slot 669*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 670*25c28e83SPiotr Jasiukajtis 671*25c28e83SPiotr Jasiukajtis ba,pt %icc,.endloop0 672*25c28e83SPiotr Jasiukajtis! delay slot 673*25c28e83SPiotr Jasiukajtis nop 674*25c28e83SPiotr Jasiukajtis 675*25c28e83SPiotr Jasiukajtis .align 32 676*25c28e83SPiotr Jasiukajtis.case3: 677*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 678*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 679*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f2 680*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 681*25c28e83SPiotr Jasiukajtis 682*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 683*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 684*25c28e83SPiotr Jasiukajtis 685*25c28e83SPiotr Jasiukajtis fsubd %f0,%f2,%f0 686*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 687*25c28e83SPiotr Jasiukajtis mov %o0,%o3 688*25c28e83SPiotr Jasiukajtis 689*25c28e83SPiotr Jasiukajtis fmuld %f12,%f52,%f14 690*25c28e83SPiotr Jasiukajtis mov %o1,%o4 691*25c28e83SPiotr Jasiukajtis 692*25c28e83SPiotr Jasiukajtis fmuld %f22,%f52,%f24 693*25c28e83SPiotr Jasiukajtis mov %o2,%o5 694*25c28e83SPiotr Jasiukajtis 695*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 696*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 697*25c28e83SPiotr Jasiukajtis 698*25c28e83SPiotr Jasiukajtis faddd %f14,%f50,%f14 699*25c28e83SPiotr Jasiukajtis 700*25c28e83SPiotr Jasiukajtis faddd %f24,%f50,%f24 701*25c28e83SPiotr Jasiukajtis 702*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 703*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 704*25c28e83SPiotr Jasiukajtis 705*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 706*25c28e83SPiotr Jasiukajtis 707*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 708*25c28e83SPiotr Jasiukajtis 709*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 710*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 711*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f34 712*25c28e83SPiotr Jasiukajtis 713*25c28e83SPiotr Jasiukajtis faddd %f14,%f48,%f14 714*25c28e83SPiotr Jasiukajtis 715*25c28e83SPiotr Jasiukajtis faddd %f24,%f48,%f24 716*25c28e83SPiotr Jasiukajtis 717*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 718*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 719*25c28e83SPiotr Jasiukajtis 720*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 721*25c28e83SPiotr Jasiukajtis 722*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 723*25c28e83SPiotr Jasiukajtis 724*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 725*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 726*25c28e83SPiotr Jasiukajtis 727*25c28e83SPiotr Jasiukajtis faddd %f14,%f46,%f14 728*25c28e83SPiotr Jasiukajtis 729*25c28e83SPiotr Jasiukajtis faddd %f24,%f46,%f24 730*25c28e83SPiotr Jasiukajtis 731*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 732*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f2 733*25c28e83SPiotr Jasiukajtis 734*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 735*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 736*25c28e83SPiotr Jasiukajtis 737*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 738*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 739*25c28e83SPiotr Jasiukajtis 740*25c28e83SPiotr Jasiukajtis fmuld %f6,%f34,%f6 741*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 742*25c28e83SPiotr Jasiukajtis 743*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 744*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 745*25c28e83SPiotr Jasiukajtis 746*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 747*25c28e83SPiotr Jasiukajtis 748*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 749*25c28e83SPiotr Jasiukajtis 750*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 751*25c28e83SPiotr Jasiukajtis 752*25c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f16 753*25c28e83SPiotr Jasiukajtis 754*25c28e83SPiotr Jasiukajtis faddd %f6,%f2,%f6 755*25c28e83SPiotr Jasiukajtis 756*25c28e83SPiotr Jasiukajtis faddd %f20,%f24,%f26 757*25c28e83SPiotr Jasiukajtis 758*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 759*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 760*25c28e83SPiotr Jasiukajtis 761*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 762*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 763*25c28e83SPiotr Jasiukajtis 764*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 765*25c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 766*25c28e83SPiotr Jasiukajtis 767*25c28e83SPiotr Jasiukajtis! delay slot 768*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 769*25c28e83SPiotr Jasiukajtis 770*25c28e83SPiotr Jasiukajtis ba,pt %icc,.endloop0 771*25c28e83SPiotr Jasiukajtis! delay slot 772*25c28e83SPiotr Jasiukajtis nop 773*25c28e83SPiotr Jasiukajtis 774*25c28e83SPiotr Jasiukajtis .align 32 775*25c28e83SPiotr Jasiukajtis.case4: 776*25c28e83SPiotr Jasiukajtis st %f17,[%o4+4] 777*25c28e83SPiotr Jasiukajtis cmp %l1,%l5 778*25c28e83SPiotr Jasiukajtis fpadd32s %f10,%f31,%f18 779*25c28e83SPiotr Jasiukajtis bl,pn %icc,.case6 780*25c28e83SPiotr Jasiukajtis 781*25c28e83SPiotr Jasiukajtis! delay slot 782*25c28e83SPiotr Jasiukajtis st %f26,[%o5] 783*25c28e83SPiotr Jasiukajtis cmp %l2,%l5 784*25c28e83SPiotr Jasiukajtis fpadd32s %f20,%f31,%f28 785*25c28e83SPiotr Jasiukajtis bl,pn %icc,.case5 786*25c28e83SPiotr Jasiukajtis 787*25c28e83SPiotr Jasiukajtis! delay slot 788*25c28e83SPiotr Jasiukajtis st %f27,[%o5+4] 789*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 790*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 791*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f12 792*25c28e83SPiotr Jasiukajtis 793*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 794*25c28e83SPiotr Jasiukajtis sub %l2,%o7,%l2 795*25c28e83SPiotr Jasiukajtis fand %f28,%f44,%f22 796*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 797*25c28e83SPiotr Jasiukajtis 798*25c28e83SPiotr Jasiukajtis fsubd %f10,%f12,%f10 799*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 800*25c28e83SPiotr Jasiukajtis mov %o1,%o4 801*25c28e83SPiotr Jasiukajtis 802*25c28e83SPiotr Jasiukajtis fsubd %f20,%f22,%f20 803*25c28e83SPiotr Jasiukajtis srl %l2,10,%l2 804*25c28e83SPiotr Jasiukajtis mov %o2,%o5 805*25c28e83SPiotr Jasiukajtis 806*25c28e83SPiotr Jasiukajtis fmovd %f0,%f6 807*25c28e83SPiotr Jasiukajtis fmuld %f2,%f52,%f4 808*25c28e83SPiotr Jasiukajtis mov %o0,%o3 809*25c28e83SPiotr Jasiukajtis 810*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 811*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 812*25c28e83SPiotr Jasiukajtis 813*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 814*25c28e83SPiotr Jasiukajtis andn %l2,0x1f,%l2 815*25c28e83SPiotr Jasiukajtis 816*25c28e83SPiotr Jasiukajtis faddd %f4,%f50,%f4 817*25c28e83SPiotr Jasiukajtis 818*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 819*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f36 820*25c28e83SPiotr Jasiukajtis 821*25c28e83SPiotr Jasiukajtis fmuld %f22,%f58,%f26 822*25c28e83SPiotr Jasiukajtis ldd [%l3+%l2],%f40 823*25c28e83SPiotr Jasiukajtis 824*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 825*25c28e83SPiotr Jasiukajtis 826*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 827*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 828*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f38 829*25c28e83SPiotr Jasiukajtis 830*25c28e83SPiotr Jasiukajtis faddd %f26,%f56,%f26 831*25c28e83SPiotr Jasiukajtis fmuld %f22,%f62,%f24 832*25c28e83SPiotr Jasiukajtis ldd [%g1+%l2],%f42 833*25c28e83SPiotr Jasiukajtis 834*25c28e83SPiotr Jasiukajtis faddd %f4,%f48,%f4 835*25c28e83SPiotr Jasiukajtis 836*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 837*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 838*25c28e83SPiotr Jasiukajtis 839*25c28e83SPiotr Jasiukajtis fmuld %f22,%f26,%f26 840*25c28e83SPiotr Jasiukajtis faddd %f24,%f60,%f24 841*25c28e83SPiotr Jasiukajtis 842*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 843*25c28e83SPiotr Jasiukajtis 844*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 845*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 846*25c28e83SPiotr Jasiukajtis 847*25c28e83SPiotr Jasiukajtis faddd %f26,%f54,%f26 848*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 849*25c28e83SPiotr Jasiukajtis 850*25c28e83SPiotr Jasiukajtis faddd %f4,%f46,%f4 851*25c28e83SPiotr Jasiukajtis 852*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 853*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f12 854*25c28e83SPiotr Jasiukajtis 855*25c28e83SPiotr Jasiukajtis fmuld %f20,%f26,%f26 856*25c28e83SPiotr Jasiukajtis ldd [%l4+%l2],%f22 857*25c28e83SPiotr Jasiukajtis 858*25c28e83SPiotr Jasiukajtis fmuld %f14,%f36,%f14 859*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 860*25c28e83SPiotr Jasiukajtis 861*25c28e83SPiotr Jasiukajtis fmuld %f24,%f40,%f24 862*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 863*25c28e83SPiotr Jasiukajtis 864*25c28e83SPiotr Jasiukajtis fmuld %f16,%f38,%f16 865*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 866*25c28e83SPiotr Jasiukajtis 867*25c28e83SPiotr Jasiukajtis fmuld %f26,%f42,%f26 868*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 869*25c28e83SPiotr Jasiukajtis 870*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 871*25c28e83SPiotr Jasiukajtis 872*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 873*25c28e83SPiotr Jasiukajtis 874*25c28e83SPiotr Jasiukajtis faddd %f26,%f24,%f26 875*25c28e83SPiotr Jasiukajtis 876*25c28e83SPiotr Jasiukajtis fmuld %f6,%f4,%f4 877*25c28e83SPiotr Jasiukajtis 878*25c28e83SPiotr Jasiukajtis faddd %f16,%f12,%f16 879*25c28e83SPiotr Jasiukajtis 880*25c28e83SPiotr Jasiukajtis faddd %f26,%f22,%f26 881*25c28e83SPiotr Jasiukajtis 882*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 883*25c28e83SPiotr Jasiukajtis 884*25c28e83SPiotr Jasiukajtis faddd %f16,%f36,%f16 885*25c28e83SPiotr Jasiukajtis 886*25c28e83SPiotr Jasiukajtis faddd %f26,%f40,%f26 887*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 888*25c28e83SPiotr Jasiukajtis 889*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 890*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 891*25c28e83SPiotr Jasiukajtis 892*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 893*25c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 894*25c28e83SPiotr Jasiukajtis 895*25c28e83SPiotr Jasiukajtis! delay slot 896*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 897*25c28e83SPiotr Jasiukajtis 898*25c28e83SPiotr Jasiukajtis ba,pt %icc,.endloop0 899*25c28e83SPiotr Jasiukajtis! delay slot 900*25c28e83SPiotr Jasiukajtis nop 901*25c28e83SPiotr Jasiukajtis 902*25c28e83SPiotr Jasiukajtis .align 32 903*25c28e83SPiotr Jasiukajtis.case5: 904*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 905*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 906*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f12 907*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 908*25c28e83SPiotr Jasiukajtis 909*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 910*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 911*25c28e83SPiotr Jasiukajtis 912*25c28e83SPiotr Jasiukajtis fsubd %f10,%f12,%f10 913*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 914*25c28e83SPiotr Jasiukajtis mov %o1,%o4 915*25c28e83SPiotr Jasiukajtis 916*25c28e83SPiotr Jasiukajtis fmovd %f0,%f6 917*25c28e83SPiotr Jasiukajtis fmuld %f2,%f52,%f4 918*25c28e83SPiotr Jasiukajtis mov %o0,%o3 919*25c28e83SPiotr Jasiukajtis 920*25c28e83SPiotr Jasiukajtis fmuld %f22,%f52,%f24 921*25c28e83SPiotr Jasiukajtis mov %o2,%o5 922*25c28e83SPiotr Jasiukajtis 923*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 924*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 925*25c28e83SPiotr Jasiukajtis 926*25c28e83SPiotr Jasiukajtis faddd %f4,%f50,%f4 927*25c28e83SPiotr Jasiukajtis 928*25c28e83SPiotr Jasiukajtis faddd %f24,%f50,%f24 929*25c28e83SPiotr Jasiukajtis 930*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 931*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f36 932*25c28e83SPiotr Jasiukajtis 933*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 934*25c28e83SPiotr Jasiukajtis 935*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 936*25c28e83SPiotr Jasiukajtis 937*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 938*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 939*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f38 940*25c28e83SPiotr Jasiukajtis 941*25c28e83SPiotr Jasiukajtis faddd %f4,%f48,%f4 942*25c28e83SPiotr Jasiukajtis 943*25c28e83SPiotr Jasiukajtis faddd %f24,%f48,%f24 944*25c28e83SPiotr Jasiukajtis 945*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 946*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 947*25c28e83SPiotr Jasiukajtis 948*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 949*25c28e83SPiotr Jasiukajtis 950*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 951*25c28e83SPiotr Jasiukajtis 952*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 953*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 954*25c28e83SPiotr Jasiukajtis 955*25c28e83SPiotr Jasiukajtis faddd %f4,%f46,%f4 956*25c28e83SPiotr Jasiukajtis 957*25c28e83SPiotr Jasiukajtis faddd %f24,%f46,%f24 958*25c28e83SPiotr Jasiukajtis 959*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 960*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f12 961*25c28e83SPiotr Jasiukajtis 962*25c28e83SPiotr Jasiukajtis fmuld %f14,%f36,%f14 963*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 964*25c28e83SPiotr Jasiukajtis 965*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 966*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 967*25c28e83SPiotr Jasiukajtis 968*25c28e83SPiotr Jasiukajtis fmuld %f16,%f38,%f16 969*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 970*25c28e83SPiotr Jasiukajtis 971*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 972*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 973*25c28e83SPiotr Jasiukajtis 974*25c28e83SPiotr Jasiukajtis fmuld %f6,%f4,%f4 975*25c28e83SPiotr Jasiukajtis 976*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 977*25c28e83SPiotr Jasiukajtis 978*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 979*25c28e83SPiotr Jasiukajtis 980*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 981*25c28e83SPiotr Jasiukajtis 982*25c28e83SPiotr Jasiukajtis faddd %f16,%f12,%f16 983*25c28e83SPiotr Jasiukajtis 984*25c28e83SPiotr Jasiukajtis faddd %f20,%f24,%f26 985*25c28e83SPiotr Jasiukajtis 986*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 987*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 988*25c28e83SPiotr Jasiukajtis 989*25c28e83SPiotr Jasiukajtis faddd %f16,%f36,%f16 990*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 991*25c28e83SPiotr Jasiukajtis 992*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 993*25c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 994*25c28e83SPiotr Jasiukajtis 995*25c28e83SPiotr Jasiukajtis! delay slot 996*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 997*25c28e83SPiotr Jasiukajtis 998*25c28e83SPiotr Jasiukajtis ba,pt %icc,.endloop0 999*25c28e83SPiotr Jasiukajtis! delay slot 1000*25c28e83SPiotr Jasiukajtis nop 1001*25c28e83SPiotr Jasiukajtis 1002*25c28e83SPiotr Jasiukajtis .align 32 1003*25c28e83SPiotr Jasiukajtis.case6: 1004*25c28e83SPiotr Jasiukajtis st %f27,[%o5+4] 1005*25c28e83SPiotr Jasiukajtis cmp %l2,%l5 1006*25c28e83SPiotr Jasiukajtis fpadd32s %f20,%f31,%f28 1007*25c28e83SPiotr Jasiukajtis bl,pn %icc,.case7 1008*25c28e83SPiotr Jasiukajtis 1009*25c28e83SPiotr Jasiukajtis! delay slot 1010*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 1011*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 1012*25c28e83SPiotr Jasiukajtis fand %f28,%f44,%f22 1013*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 1014*25c28e83SPiotr Jasiukajtis 1015*25c28e83SPiotr Jasiukajtis sub %l2,%o7,%l2 1016*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 1017*25c28e83SPiotr Jasiukajtis 1018*25c28e83SPiotr Jasiukajtis fsubd %f20,%f22,%f20 1019*25c28e83SPiotr Jasiukajtis srl %l2,10,%l2 1020*25c28e83SPiotr Jasiukajtis mov %o2,%o5 1021*25c28e83SPiotr Jasiukajtis 1022*25c28e83SPiotr Jasiukajtis fmovd %f0,%f6 1023*25c28e83SPiotr Jasiukajtis fmuld %f2,%f52,%f4 1024*25c28e83SPiotr Jasiukajtis mov %o0,%o3 1025*25c28e83SPiotr Jasiukajtis 1026*25c28e83SPiotr Jasiukajtis fmuld %f12,%f52,%f14 1027*25c28e83SPiotr Jasiukajtis mov %o1,%o4 1028*25c28e83SPiotr Jasiukajtis 1029*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 1030*25c28e83SPiotr Jasiukajtis andn %l2,0x1f,%l2 1031*25c28e83SPiotr Jasiukajtis 1032*25c28e83SPiotr Jasiukajtis faddd %f4,%f50,%f4 1033*25c28e83SPiotr Jasiukajtis 1034*25c28e83SPiotr Jasiukajtis faddd %f14,%f50,%f14 1035*25c28e83SPiotr Jasiukajtis 1036*25c28e83SPiotr Jasiukajtis fmuld %f22,%f58,%f26 1037*25c28e83SPiotr Jasiukajtis ldd [%l3+%l2],%f40 1038*25c28e83SPiotr Jasiukajtis 1039*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1040*25c28e83SPiotr Jasiukajtis 1041*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1042*25c28e83SPiotr Jasiukajtis 1043*25c28e83SPiotr Jasiukajtis faddd %f26,%f56,%f26 1044*25c28e83SPiotr Jasiukajtis fmuld %f22,%f62,%f24 1045*25c28e83SPiotr Jasiukajtis ldd [%g1+%l2],%f42 1046*25c28e83SPiotr Jasiukajtis 1047*25c28e83SPiotr Jasiukajtis faddd %f4,%f48,%f4 1048*25c28e83SPiotr Jasiukajtis 1049*25c28e83SPiotr Jasiukajtis faddd %f14,%f48,%f14 1050*25c28e83SPiotr Jasiukajtis 1051*25c28e83SPiotr Jasiukajtis fmuld %f22,%f26,%f26 1052*25c28e83SPiotr Jasiukajtis faddd %f24,%f60,%f24 1053*25c28e83SPiotr Jasiukajtis 1054*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1055*25c28e83SPiotr Jasiukajtis 1056*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1057*25c28e83SPiotr Jasiukajtis 1058*25c28e83SPiotr Jasiukajtis faddd %f26,%f54,%f26 1059*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 1060*25c28e83SPiotr Jasiukajtis 1061*25c28e83SPiotr Jasiukajtis faddd %f4,%f46,%f4 1062*25c28e83SPiotr Jasiukajtis 1063*25c28e83SPiotr Jasiukajtis faddd %f14,%f46,%f14 1064*25c28e83SPiotr Jasiukajtis 1065*25c28e83SPiotr Jasiukajtis fmuld %f20,%f26,%f26 1066*25c28e83SPiotr Jasiukajtis ldd [%l4+%l2],%f22 1067*25c28e83SPiotr Jasiukajtis 1068*25c28e83SPiotr Jasiukajtis fmuld %f24,%f40,%f24 1069*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 1070*25c28e83SPiotr Jasiukajtis 1071*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1072*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 1073*25c28e83SPiotr Jasiukajtis 1074*25c28e83SPiotr Jasiukajtis fmuld %f26,%f42,%f26 1075*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 1076*25c28e83SPiotr Jasiukajtis 1077*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1078*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 1079*25c28e83SPiotr Jasiukajtis 1080*25c28e83SPiotr Jasiukajtis fmuld %f6,%f4,%f4 1081*25c28e83SPiotr Jasiukajtis 1082*25c28e83SPiotr Jasiukajtis faddd %f26,%f24,%f26 1083*25c28e83SPiotr Jasiukajtis 1084*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 1085*25c28e83SPiotr Jasiukajtis 1086*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 1087*25c28e83SPiotr Jasiukajtis 1088*25c28e83SPiotr Jasiukajtis faddd %f26,%f22,%f26 1089*25c28e83SPiotr Jasiukajtis 1090*25c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f16 1091*25c28e83SPiotr Jasiukajtis 1092*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 1093*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 1094*25c28e83SPiotr Jasiukajtis 1095*25c28e83SPiotr Jasiukajtis faddd %f26,%f40,%f26 1096*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 1097*25c28e83SPiotr Jasiukajtis 1098*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 1099*25c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 1100*25c28e83SPiotr Jasiukajtis 1101*25c28e83SPiotr Jasiukajtis! delay slot 1102*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 1103*25c28e83SPiotr Jasiukajtis 1104*25c28e83SPiotr Jasiukajtis ba,pt %icc,.endloop0 1105*25c28e83SPiotr Jasiukajtis! delay slot 1106*25c28e83SPiotr Jasiukajtis nop 1107*25c28e83SPiotr Jasiukajtis 1108*25c28e83SPiotr Jasiukajtis .align 32 1109*25c28e83SPiotr Jasiukajtis.case7: 1110*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 1111*25c28e83SPiotr Jasiukajtis fmovd %f0,%f6 1112*25c28e83SPiotr Jasiukajtis mov %o0,%o3 1113*25c28e83SPiotr Jasiukajtis 1114*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 1115*25c28e83SPiotr Jasiukajtis mov %o1,%o4 1116*25c28e83SPiotr Jasiukajtis 1117*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 1118*25c28e83SPiotr Jasiukajtis mov %o2,%o5 1119*25c28e83SPiotr Jasiukajtis 1120*25c28e83SPiotr Jasiukajtis fmuld %f2,%f52,%f4 1121*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 1122*25c28e83SPiotr Jasiukajtis 1123*25c28e83SPiotr Jasiukajtis fmuld %f12,%f52,%f14 1124*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 1125*25c28e83SPiotr Jasiukajtis 1126*25c28e83SPiotr Jasiukajtis fmuld %f22,%f52,%f24 1127*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 1128*25c28e83SPiotr Jasiukajtis 1129*25c28e83SPiotr Jasiukajtis faddd %f4,%f50,%f4 1130*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 1131*25c28e83SPiotr Jasiukajtis 1132*25c28e83SPiotr Jasiukajtis faddd %f14,%f50,%f14 1133*25c28e83SPiotr Jasiukajtis 1134*25c28e83SPiotr Jasiukajtis faddd %f24,%f50,%f24 1135*25c28e83SPiotr Jasiukajtis 1136*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1137*25c28e83SPiotr Jasiukajtis 1138*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1139*25c28e83SPiotr Jasiukajtis 1140*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 1141*25c28e83SPiotr Jasiukajtis 1142*25c28e83SPiotr Jasiukajtis faddd %f4,%f48,%f4 1143*25c28e83SPiotr Jasiukajtis 1144*25c28e83SPiotr Jasiukajtis faddd %f14,%f48,%f14 1145*25c28e83SPiotr Jasiukajtis 1146*25c28e83SPiotr Jasiukajtis faddd %f24,%f48,%f24 1147*25c28e83SPiotr Jasiukajtis 1148*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1149*25c28e83SPiotr Jasiukajtis 1150*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1151*25c28e83SPiotr Jasiukajtis 1152*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 1153*25c28e83SPiotr Jasiukajtis 1154*25c28e83SPiotr Jasiukajtis faddd %f4,%f46,%f4 1155*25c28e83SPiotr Jasiukajtis 1156*25c28e83SPiotr Jasiukajtis faddd %f14,%f46,%f14 1157*25c28e83SPiotr Jasiukajtis 1158*25c28e83SPiotr Jasiukajtis faddd %f24,%f46,%f24 1159*25c28e83SPiotr Jasiukajtis 1160*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1161*25c28e83SPiotr Jasiukajtis 1162*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1163*25c28e83SPiotr Jasiukajtis 1164*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 1165*25c28e83SPiotr Jasiukajtis 1166*25c28e83SPiotr Jasiukajtis fmuld %f6,%f4,%f4 1167*25c28e83SPiotr Jasiukajtis 1168*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 1169*25c28e83SPiotr Jasiukajtis 1170*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 1171*25c28e83SPiotr Jasiukajtis 1172*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 1173*25c28e83SPiotr Jasiukajtis 1174*25c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f16 1175*25c28e83SPiotr Jasiukajtis 1176*25c28e83SPiotr Jasiukajtis faddd %f20,%f24,%f26 1177*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 1178*25c28e83SPiotr Jasiukajtis 1179*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 1180*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 1181*25c28e83SPiotr Jasiukajtis 1182*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 1183*25c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 1184*25c28e83SPiotr Jasiukajtis 1185*25c28e83SPiotr Jasiukajtis! delay slot 1186*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 1187*25c28e83SPiotr Jasiukajtis 1188*25c28e83SPiotr Jasiukajtis ba,pt %icc,.endloop0 1189*25c28e83SPiotr Jasiukajtis! delay slot 1190*25c28e83SPiotr Jasiukajtis nop 1191*25c28e83SPiotr Jasiukajtis 1192*25c28e83SPiotr Jasiukajtis 1193*25c28e83SPiotr Jasiukajtis .align 32 1194*25c28e83SPiotr Jasiukajtis.endloop2: 1195*25c28e83SPiotr Jasiukajtis cmp %l1,%l5 1196*25c28e83SPiotr Jasiukajtis bl,pn %icc,1f 1197*25c28e83SPiotr Jasiukajtis! delay slot 1198*25c28e83SPiotr Jasiukajtis fabsd %f10,%f10 1199*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 1200*25c28e83SPiotr Jasiukajtis fpadd32s %f10,%f31,%f18 1201*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 1202*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f12 1203*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 1204*25c28e83SPiotr Jasiukajtis fsubd %f10,%f12,%f10 1205*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 1206*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 1207*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 1208*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f20 1209*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f36 1210*25c28e83SPiotr Jasiukajtis faddd %f20,%f56,%f20 1211*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 1212*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f38 1213*25c28e83SPiotr Jasiukajtis fmuld %f12,%f20,%f20 1214*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 1215*25c28e83SPiotr Jasiukajtis faddd %f20,%f54,%f20 1216*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1217*25c28e83SPiotr Jasiukajtis fmuld %f10,%f20,%f20 1218*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f12 1219*25c28e83SPiotr Jasiukajtis fmuld %f14,%f36,%f14 1220*25c28e83SPiotr Jasiukajtis fmuld %f20,%f38,%f20 1221*25c28e83SPiotr Jasiukajtis faddd %f20,%f14,%f20 1222*25c28e83SPiotr Jasiukajtis faddd %f20,%f12,%f20 1223*25c28e83SPiotr Jasiukajtis ba,pt %icc,2f 1224*25c28e83SPiotr Jasiukajtis! delay slot 1225*25c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 1226*25c28e83SPiotr Jasiukajtis1: 1227*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 1228*25c28e83SPiotr Jasiukajtis fmuld %f12,%f52,%f14 1229*25c28e83SPiotr Jasiukajtis faddd %f14,%f50,%f14 1230*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1231*25c28e83SPiotr Jasiukajtis faddd %f14,%f48,%f14 1232*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1233*25c28e83SPiotr Jasiukajtis faddd %f14,%f46,%f14 1234*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1235*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 1236*25c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f20 1237*25c28e83SPiotr Jasiukajtis2: 1238*25c28e83SPiotr Jasiukajtis fors %f20,%f19,%f20 1239*25c28e83SPiotr Jasiukajtis st %f20,[%o1] 1240*25c28e83SPiotr Jasiukajtis st %f21,[%o1+4] 1241*25c28e83SPiotr Jasiukajtis 1242*25c28e83SPiotr Jasiukajtis.endloop1: 1243*25c28e83SPiotr Jasiukajtis cmp %l0,%l5 1244*25c28e83SPiotr Jasiukajtis bl,pn %icc,1f 1245*25c28e83SPiotr Jasiukajtis! delay slot 1246*25c28e83SPiotr Jasiukajtis fabsd %f0,%f0 1247*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 1248*25c28e83SPiotr Jasiukajtis fpadd32s %f0,%f31,%f8 1249*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 1250*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f2 1251*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 1252*25c28e83SPiotr Jasiukajtis fsubd %f0,%f2,%f0 1253*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 1254*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 1255*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 1256*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f20 1257*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 1258*25c28e83SPiotr Jasiukajtis faddd %f20,%f56,%f20 1259*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 1260*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f34 1261*25c28e83SPiotr Jasiukajtis fmuld %f2,%f20,%f20 1262*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 1263*25c28e83SPiotr Jasiukajtis faddd %f20,%f54,%f20 1264*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1265*25c28e83SPiotr Jasiukajtis fmuld %f0,%f20,%f20 1266*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f2 1267*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 1268*25c28e83SPiotr Jasiukajtis fmuld %f20,%f34,%f20 1269*25c28e83SPiotr Jasiukajtis faddd %f20,%f4,%f20 1270*25c28e83SPiotr Jasiukajtis faddd %f20,%f2,%f20 1271*25c28e83SPiotr Jasiukajtis ba,pt %icc,2f 1272*25c28e83SPiotr Jasiukajtis! delay slot 1273*25c28e83SPiotr Jasiukajtis faddd %f20,%f32,%f20 1274*25c28e83SPiotr Jasiukajtis1: 1275*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 1276*25c28e83SPiotr Jasiukajtis fmuld %f2,%f52,%f4 1277*25c28e83SPiotr Jasiukajtis faddd %f4,%f50,%f4 1278*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1279*25c28e83SPiotr Jasiukajtis faddd %f4,%f48,%f4 1280*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1281*25c28e83SPiotr Jasiukajtis faddd %f4,%f46,%f4 1282*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1283*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 1284*25c28e83SPiotr Jasiukajtis faddd %f0,%f4,%f20 1285*25c28e83SPiotr Jasiukajtis2: 1286*25c28e83SPiotr Jasiukajtis fors %f20,%f9,%f20 1287*25c28e83SPiotr Jasiukajtis st %f20,[%o0] 1288*25c28e83SPiotr Jasiukajtis st %f21,[%o0+4] 1289*25c28e83SPiotr Jasiukajtis 1290*25c28e83SPiotr Jasiukajtis.endloop0: 1291*25c28e83SPiotr Jasiukajtis st %f6,[%o3] 1292*25c28e83SPiotr Jasiukajtis st %f7,[%o3+4] 1293*25c28e83SPiotr Jasiukajtis st %f16,[%o4] 1294*25c28e83SPiotr Jasiukajtis st %f17,[%o4+4] 1295*25c28e83SPiotr Jasiukajtis st %f26,[%o5] 1296*25c28e83SPiotr Jasiukajtis st %f27,[%o5+4] 1297*25c28e83SPiotr Jasiukajtis 1298*25c28e83SPiotr Jasiukajtis! return. finished off with only primary range arguments. 1299*25c28e83SPiotr Jasiukajtis 1300*25c28e83SPiotr Jasiukajtis ret 1301*25c28e83SPiotr Jasiukajtis restore 1302*25c28e83SPiotr Jasiukajtis 1303*25c28e83SPiotr Jasiukajtis 1304*25c28e83SPiotr Jasiukajtis .align 32 1305*25c28e83SPiotr Jasiukajtis.range0: 1306*25c28e83SPiotr Jasiukajtis cmp %l0,LIM_l6 1307*25c28e83SPiotr Jasiukajtis bg,a,pt %icc,.MEDIUM ! branch if x is not tiny 1308*25c28e83SPiotr Jasiukajtis! delay slot, annulled if branch not taken 1309*25c28e83SPiotr Jasiukajtis mov 0x1,LIM_l6 ! set "processing loop0" 1310*25c28e83SPiotr Jasiukajtis st %f0,[%o0] ! *y = *x with inexact if x nonzero 1311*25c28e83SPiotr Jasiukajtis st %f1,[%o0+4] 1312*25c28e83SPiotr Jasiukajtis fdtoi %f0,%f2 1313*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 1314*25c28e83SPiotr Jasiukajtis ble,pn %icc,.endloop0 1315*25c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 1316*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 1317*25c28e83SPiotr Jasiukajtis andn %l1,%i5,%l0 ! hx &= ~0x80000000 1318*25c28e83SPiotr Jasiukajtis fmovd %f10,%f0 1319*25c28e83SPiotr Jasiukajtis ba,pt %icc,.loop0 1320*25c28e83SPiotr Jasiukajtis! delay slot 1321*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 1322*25c28e83SPiotr Jasiukajtis 1323*25c28e83SPiotr Jasiukajtis 1324*25c28e83SPiotr Jasiukajtis .align 32 1325*25c28e83SPiotr Jasiukajtis.range1: 1326*25c28e83SPiotr Jasiukajtis cmp %l1,LIM_l6 1327*25c28e83SPiotr Jasiukajtis bg,a,pt %icc,.MEDIUM ! branch if x is not tiny 1328*25c28e83SPiotr Jasiukajtis! delay slot, annulled if branch not taken 1329*25c28e83SPiotr Jasiukajtis mov 0x2,LIM_l6 ! set "processing loop1" 1330*25c28e83SPiotr Jasiukajtis st %f10,[%o1] ! *y = *x with inexact if x nonzero 1331*25c28e83SPiotr Jasiukajtis st %f11,[%o1+4] 1332*25c28e83SPiotr Jasiukajtis fdtoi %f10,%f12 1333*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 1334*25c28e83SPiotr Jasiukajtis ble,pn %icc,.endloop1 1335*25c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 1336*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 1337*25c28e83SPiotr Jasiukajtis andn %l2,%i5,%l1 ! hx &= ~0x80000000 1338*25c28e83SPiotr Jasiukajtis fmovd %f20,%f10 1339*25c28e83SPiotr Jasiukajtis ba,pt %icc,.loop1 1340*25c28e83SPiotr Jasiukajtis! delay slot 1341*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 1342*25c28e83SPiotr Jasiukajtis 1343*25c28e83SPiotr Jasiukajtis 1344*25c28e83SPiotr Jasiukajtis .align 32 1345*25c28e83SPiotr Jasiukajtis.range2: 1346*25c28e83SPiotr Jasiukajtis cmp %l2,LIM_l6 1347*25c28e83SPiotr Jasiukajtis bg,a,pt %icc,.MEDIUM ! branch if x is not tiny 1348*25c28e83SPiotr Jasiukajtis! delay slot, annulled if branch not taken 1349*25c28e83SPiotr Jasiukajtis mov 0x3,LIM_l6 ! set "processing loop2" 1350*25c28e83SPiotr Jasiukajtis st %f20,[%o2] ! *y = *x with inexact if x nonzero 1351*25c28e83SPiotr Jasiukajtis st %f21,[%o2+4] 1352*25c28e83SPiotr Jasiukajtis fdtoi %f20,%f22 1353*25c28e83SPiotr Jasiukajtis1: 1354*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 1355*25c28e83SPiotr Jasiukajtis ble,pn %icc,.endloop2 1356*25c28e83SPiotr Jasiukajtis! delay slot 1357*25c28e83SPiotr Jasiukajtis nop 1358*25c28e83SPiotr Jasiukajtis ld [%i1],%l2 1359*25c28e83SPiotr Jasiukajtis ld [%i1],%f20 1360*25c28e83SPiotr Jasiukajtis ld [%i1+4],%f21 1361*25c28e83SPiotr Jasiukajtis andn %l2,%i5,%l2 ! hx &= ~0x80000000 1362*25c28e83SPiotr Jasiukajtis ba,pt %icc,.loop2 1363*25c28e83SPiotr Jasiukajtis! delay slot 1364*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 1365*25c28e83SPiotr Jasiukajtis 1366*25c28e83SPiotr Jasiukajtis 1367*25c28e83SPiotr Jasiukajtis .align 32 1368*25c28e83SPiotr Jasiukajtis.MEDIUM: 1369*25c28e83SPiotr Jasiukajtis 1370*25c28e83SPiotr Jasiukajtis! ========== medium range ========== 1371*25c28e83SPiotr Jasiukajtis 1372*25c28e83SPiotr Jasiukajtis! register use 1373*25c28e83SPiotr Jasiukajtis 1374*25c28e83SPiotr Jasiukajtis! i0 n 1375*25c28e83SPiotr Jasiukajtis! i1 x 1376*25c28e83SPiotr Jasiukajtis! i2 stridex 1377*25c28e83SPiotr Jasiukajtis! i3 y 1378*25c28e83SPiotr Jasiukajtis! i4 stridey 1379*25c28e83SPiotr Jasiukajtis! i5 0x80000000 1380*25c28e83SPiotr Jasiukajtis 1381*25c28e83SPiotr Jasiukajtis! l0 hx0 1382*25c28e83SPiotr Jasiukajtis! l1 hx1 1383*25c28e83SPiotr Jasiukajtis! l2 hx2 1384*25c28e83SPiotr Jasiukajtis! l3 __vlibm_TBL_sincos_hi 1385*25c28e83SPiotr Jasiukajtis! l4 __vlibm_TBL_sincos_lo 1386*25c28e83SPiotr Jasiukajtis! l5 constants 1387*25c28e83SPiotr Jasiukajtis! l6 in transition from pri-range and here, use for biguns 1388*25c28e83SPiotr Jasiukajtis! l7 0x413921fb 1389*25c28e83SPiotr Jasiukajtis 1390*25c28e83SPiotr Jasiukajtis! the following are 64-bit registers in both V8+ and V9 1391*25c28e83SPiotr Jasiukajtis 1392*25c28e83SPiotr Jasiukajtis! g1 scratch 1393*25c28e83SPiotr Jasiukajtis! g5 1394*25c28e83SPiotr Jasiukajtis 1395*25c28e83SPiotr Jasiukajtis! o0 py0 1396*25c28e83SPiotr Jasiukajtis! o1 py1 1397*25c28e83SPiotr Jasiukajtis! o2 py2 1398*25c28e83SPiotr Jasiukajtis! o3 n0 1399*25c28e83SPiotr Jasiukajtis! o4 n1 1400*25c28e83SPiotr Jasiukajtis! o5 n2 1401*25c28e83SPiotr Jasiukajtis! o7 scratch 1402*25c28e83SPiotr Jasiukajtis 1403*25c28e83SPiotr Jasiukajtis! f0 x0 1404*25c28e83SPiotr Jasiukajtis! f2 n0,y0 1405*25c28e83SPiotr Jasiukajtis! f4 1406*25c28e83SPiotr Jasiukajtis! f6 1407*25c28e83SPiotr Jasiukajtis! f8 scratch for table base 1408*25c28e83SPiotr Jasiukajtis! f9 signbit0 1409*25c28e83SPiotr Jasiukajtis! f10 x1 1410*25c28e83SPiotr Jasiukajtis! f12 n1,y1 1411*25c28e83SPiotr Jasiukajtis! f14 1412*25c28e83SPiotr Jasiukajtis! f16 1413*25c28e83SPiotr Jasiukajtis! f18 scratch for table base 1414*25c28e83SPiotr Jasiukajtis! f19 signbit1 1415*25c28e83SPiotr Jasiukajtis! f20 x2 1416*25c28e83SPiotr Jasiukajtis! f22 n2,y2 1417*25c28e83SPiotr Jasiukajtis! f24 1418*25c28e83SPiotr Jasiukajtis! f26 1419*25c28e83SPiotr Jasiukajtis! f28 scratch for table base 1420*25c28e83SPiotr Jasiukajtis! f29 signbit2 1421*25c28e83SPiotr Jasiukajtis! f30 0x80000000 1422*25c28e83SPiotr Jasiukajtis! f31 0x4000 1423*25c28e83SPiotr Jasiukajtis! f32 1424*25c28e83SPiotr Jasiukajtis! f34 1425*25c28e83SPiotr Jasiukajtis! f36 1426*25c28e83SPiotr Jasiukajtis! f38 1427*25c28e83SPiotr Jasiukajtis! f40 invpio2 1428*25c28e83SPiotr Jasiukajtis! f42 round 1429*25c28e83SPiotr Jasiukajtis! f44 0xffff800000000000 1430*25c28e83SPiotr Jasiukajtis! f46 pio2_1 1431*25c28e83SPiotr Jasiukajtis! f48 pio2_2 1432*25c28e83SPiotr Jasiukajtis! f50 pio2_3 1433*25c28e83SPiotr Jasiukajtis! f52 pio2_3t 1434*25c28e83SPiotr Jasiukajtis! f54 one 1435*25c28e83SPiotr Jasiukajtis! f56 pp1 1436*25c28e83SPiotr Jasiukajtis! f58 pp2 1437*25c28e83SPiotr Jasiukajtis! f60 qq1 1438*25c28e83SPiotr Jasiukajtis! f62 qq2 1439*25c28e83SPiotr Jasiukajtis 1440*25c28e83SPiotr Jasiukajtis PIC_SET(g5,constants,l5) 1441*25c28e83SPiotr Jasiukajtis 1442*25c28e83SPiotr Jasiukajtis ! %o3,%o4,%o5 need to be stored 1443*25c28e83SPiotr Jasiukajtis st %f6,[%o3] 1444*25c28e83SPiotr Jasiukajtis sethi %hi(0x413921fb),%l7 1445*25c28e83SPiotr Jasiukajtis st %f7,[%o3+4] 1446*25c28e83SPiotr Jasiukajtis or %l7,%lo(0x413921fb),%l7 1447*25c28e83SPiotr Jasiukajtis st %f16,[%o4] 1448*25c28e83SPiotr Jasiukajtis st %f17,[%o4+4] 1449*25c28e83SPiotr Jasiukajtis st %f26,[%o5] 1450*25c28e83SPiotr Jasiukajtis st %f27,[%o5+4] 1451*25c28e83SPiotr Jasiukajtis ldd [%l5+invpio2],%f40 1452*25c28e83SPiotr Jasiukajtis ldd [%l5+round],%f42 1453*25c28e83SPiotr Jasiukajtis ldd [%l5+pio2_1],%f46 1454*25c28e83SPiotr Jasiukajtis ldd [%l5+pio2_2],%f48 1455*25c28e83SPiotr Jasiukajtis ldd [%l5+pio2_3],%f50 1456*25c28e83SPiotr Jasiukajtis ldd [%l5+pio2_3t],%f52 1457*25c28e83SPiotr Jasiukajtis std %f54,[%fp+x0_1+8] ! set up stack data 1458*25c28e83SPiotr Jasiukajtis std %f54,[%fp+x1_1+8] 1459*25c28e83SPiotr Jasiukajtis std %f54,[%fp+x2_1+8] 1460*25c28e83SPiotr Jasiukajtis stx %g0,[%fp+y0_0+8] 1461*25c28e83SPiotr Jasiukajtis stx %g0,[%fp+y1_0+8] 1462*25c28e83SPiotr Jasiukajtis stx %g0,[%fp+y2_0+8] 1463*25c28e83SPiotr Jasiukajtis 1464*25c28e83SPiotr Jasiukajtis! branched here in the middle of the array. Need to adjust 1465*25c28e83SPiotr Jasiukajtis! for the members of the triple that were selected in the primary 1466*25c28e83SPiotr Jasiukajtis! loop. 1467*25c28e83SPiotr Jasiukajtis 1468*25c28e83SPiotr Jasiukajtis! no adjustment since all three selected here 1469*25c28e83SPiotr Jasiukajtis subcc LIM_l6,0x1,%g0 ! continue in LOOP0? 1470*25c28e83SPiotr Jasiukajtis bz,a %icc,.LOOP0 1471*25c28e83SPiotr Jasiukajtis mov 0x0,LIM_l6 ! delay slot set biguns=0 1472*25c28e83SPiotr Jasiukajtis 1473*25c28e83SPiotr Jasiukajtis! ajust 1st triple since 2d and 3d done here 1474*25c28e83SPiotr Jasiukajtis subcc LIM_l6,0x2,%g0 ! continue in LOOP1? 1475*25c28e83SPiotr Jasiukajtis fors %f0,%f9,%f0 ! restore sign bit 1476*25c28e83SPiotr Jasiukajtis fmuld %f0,%f40,%f2 ! adj LOOP0 1477*25c28e83SPiotr Jasiukajtis bz,a %icc,.LOOP1 1478*25c28e83SPiotr Jasiukajtis mov 0x0,LIM_l6 ! delay slot set biguns=0 1479*25c28e83SPiotr Jasiukajtis 1480*25c28e83SPiotr Jasiukajtis! ajust 1st and 2d triple since 3d done here 1481*25c28e83SPiotr Jasiukajtis subcc LIM_l6,0x3,%g0 ! continue in LOOP2? 1482*25c28e83SPiotr Jasiukajtis !done fmuld %f0,%f40,%f2 ! adj LOOP0 1483*25c28e83SPiotr Jasiukajtis sub %i3,%i4,%i3 ! adjust to not double increment 1484*25c28e83SPiotr Jasiukajtis fors %f10,%f19,%f10 ! restore sign bit 1485*25c28e83SPiotr Jasiukajtis fmuld %f10,%f40,%f12 ! adj LOOP1 1486*25c28e83SPiotr Jasiukajtis faddd %f2,%f42,%f2 ! adj LOOP1 1487*25c28e83SPiotr Jasiukajtis bz,a %icc,.LOOP2 1488*25c28e83SPiotr Jasiukajtis mov 0x0,LIM_l6 ! delay slot set biguns=0 1489*25c28e83SPiotr Jasiukajtis 1490*25c28e83SPiotr Jasiukajtis .align 32 1491*25c28e83SPiotr Jasiukajtis.LOOP0: 1492*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l1 ! preload next argument 1493*25c28e83SPiotr Jasiukajtis mov %i3,%o0 ! py0 = y 1494*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f10 1495*25c28e83SPiotr Jasiukajtis cmp %l0,%l7 1496*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 1497*25c28e83SPiotr Jasiukajtis bg,pn %icc,.BIG0 ! if hx > 0x413921fb 1498*25c28e83SPiotr Jasiukajtis 1499*25c28e83SPiotr Jasiukajtis! delay slot 1500*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f11 1501*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 1502*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 1503*25c28e83SPiotr Jasiukajtis ble,pn %icc,.ENDLOOP1 1504*25c28e83SPiotr Jasiukajtis 1505*25c28e83SPiotr Jasiukajtis! delay slot 1506*25c28e83SPiotr Jasiukajtis andn %l1,%i5,%l1 1507*25c28e83SPiotr Jasiukajtis nop 1508*25c28e83SPiotr Jasiukajtis fmuld %f0,%f40,%f2 1509*25c28e83SPiotr Jasiukajtis fabsd %f54,%f54 ! a nop for alignment only 1510*25c28e83SPiotr Jasiukajtis 1511*25c28e83SPiotr Jasiukajtis.LOOP1: 1512*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l2 ! preload next argument 1513*25c28e83SPiotr Jasiukajtis mov %i3,%o1 ! py1 = y 1514*25c28e83SPiotr Jasiukajtis 1515*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f20 1516*25c28e83SPiotr Jasiukajtis cmp %l1,%l7 1517*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 1518*25c28e83SPiotr Jasiukajtis bg,pn %icc,.BIG1 ! if hx > 0x413921fb 1519*25c28e83SPiotr Jasiukajtis 1520*25c28e83SPiotr Jasiukajtis! delay slot 1521*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f21 1522*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 1523*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 1524*25c28e83SPiotr Jasiukajtis ble,pn %icc,.ENDLOOP2 1525*25c28e83SPiotr Jasiukajtis 1526*25c28e83SPiotr Jasiukajtis! delay slot 1527*25c28e83SPiotr Jasiukajtis andn %l2,%i5,%l2 1528*25c28e83SPiotr Jasiukajtis nop 1529*25c28e83SPiotr Jasiukajtis fmuld %f10,%f40,%f12 1530*25c28e83SPiotr Jasiukajtis faddd %f2,%f42,%f2 1531*25c28e83SPiotr Jasiukajtis 1532*25c28e83SPiotr Jasiukajtis.LOOP2: 1533*25c28e83SPiotr Jasiukajtis st %f3,[%fp+n0] 1534*25c28e83SPiotr Jasiukajtis mov %i3,%o2 ! py2 = y 1535*25c28e83SPiotr Jasiukajtis 1536*25c28e83SPiotr Jasiukajtis cmp %l2,%l7 1537*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 1538*25c28e83SPiotr Jasiukajtis fmuld %f20,%f40,%f22 1539*25c28e83SPiotr Jasiukajtis bg,pn %icc,.BIG2 ! if hx > 0x413921fb 1540*25c28e83SPiotr Jasiukajtis 1541*25c28e83SPiotr Jasiukajtis! delay slot 1542*25c28e83SPiotr Jasiukajtis add %l5,thresh+4,%o7 1543*25c28e83SPiotr Jasiukajtis faddd %f12,%f42,%f12 1544*25c28e83SPiotr Jasiukajtis st %f13,[%fp+n1] 1545*25c28e83SPiotr Jasiukajtis 1546*25c28e83SPiotr Jasiukajtis! - 1547*25c28e83SPiotr Jasiukajtis 1548*25c28e83SPiotr Jasiukajtis add %l5,thresh,%g1 1549*25c28e83SPiotr Jasiukajtis faddd %f22,%f42,%f22 1550*25c28e83SPiotr Jasiukajtis st %f23,[%fp+n2] 1551*25c28e83SPiotr Jasiukajtis 1552*25c28e83SPiotr Jasiukajtis fsubd %f2,%f42,%f2 ! n 1553*25c28e83SPiotr Jasiukajtis 1554*25c28e83SPiotr Jasiukajtis fsubd %f12,%f42,%f12 ! n 1555*25c28e83SPiotr Jasiukajtis 1556*25c28e83SPiotr Jasiukajtis fsubd %f22,%f42,%f22 ! n 1557*25c28e83SPiotr Jasiukajtis 1558*25c28e83SPiotr Jasiukajtis fmuld %f2,%f46,%f4 1559*25c28e83SPiotr Jasiukajtis 1560*25c28e83SPiotr Jasiukajtis fmuld %f12,%f46,%f14 1561*25c28e83SPiotr Jasiukajtis 1562*25c28e83SPiotr Jasiukajtis fmuld %f22,%f46,%f24 1563*25c28e83SPiotr Jasiukajtis 1564*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f4 1565*25c28e83SPiotr Jasiukajtis fmuld %f2,%f48,%f6 1566*25c28e83SPiotr Jasiukajtis 1567*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f14 1568*25c28e83SPiotr Jasiukajtis fmuld %f12,%f48,%f16 1569*25c28e83SPiotr Jasiukajtis 1570*25c28e83SPiotr Jasiukajtis fsubd %f20,%f24,%f24 1571*25c28e83SPiotr Jasiukajtis fmuld %f22,%f48,%f26 1572*25c28e83SPiotr Jasiukajtis 1573*25c28e83SPiotr Jasiukajtis fsubd %f4,%f6,%f0 1574*25c28e83SPiotr Jasiukajtis ld [%fp+n0],%o3 1575*25c28e83SPiotr Jasiukajtis 1576*25c28e83SPiotr Jasiukajtis fsubd %f14,%f16,%f10 1577*25c28e83SPiotr Jasiukajtis ld [%fp+n1],%o4 1578*25c28e83SPiotr Jasiukajtis 1579*25c28e83SPiotr Jasiukajtis fsubd %f24,%f26,%f20 1580*25c28e83SPiotr Jasiukajtis ld [%fp+n2],%o5 1581*25c28e83SPiotr Jasiukajtis 1582*25c28e83SPiotr Jasiukajtis fsubd %f4,%f0,%f32 1583*25c28e83SPiotr Jasiukajtis and %o3,1,%o3 1584*25c28e83SPiotr Jasiukajtis 1585*25c28e83SPiotr Jasiukajtis fsubd %f14,%f10,%f34 1586*25c28e83SPiotr Jasiukajtis and %o4,1,%o4 1587*25c28e83SPiotr Jasiukajtis 1588*25c28e83SPiotr Jasiukajtis fsubd %f24,%f20,%f36 1589*25c28e83SPiotr Jasiukajtis and %o5,1,%o5 1590*25c28e83SPiotr Jasiukajtis 1591*25c28e83SPiotr Jasiukajtis fsubd %f32,%f6,%f32 1592*25c28e83SPiotr Jasiukajtis fmuld %f2,%f50,%f8 1593*25c28e83SPiotr Jasiukajtis sll %o3,3,%o3 1594*25c28e83SPiotr Jasiukajtis 1595*25c28e83SPiotr Jasiukajtis fsubd %f34,%f16,%f34 1596*25c28e83SPiotr Jasiukajtis fmuld %f12,%f50,%f18 1597*25c28e83SPiotr Jasiukajtis sll %o4,3,%o4 1598*25c28e83SPiotr Jasiukajtis 1599*25c28e83SPiotr Jasiukajtis fsubd %f36,%f26,%f36 1600*25c28e83SPiotr Jasiukajtis fmuld %f22,%f50,%f28 1601*25c28e83SPiotr Jasiukajtis sll %o5,3,%o5 1602*25c28e83SPiotr Jasiukajtis 1603*25c28e83SPiotr Jasiukajtis fsubd %f8,%f32,%f8 1604*25c28e83SPiotr Jasiukajtis ld [%g1+%o3],%f6 1605*25c28e83SPiotr Jasiukajtis 1606*25c28e83SPiotr Jasiukajtis fsubd %f18,%f34,%f18 1607*25c28e83SPiotr Jasiukajtis ld [%g1+%o4],%f16 1608*25c28e83SPiotr Jasiukajtis 1609*25c28e83SPiotr Jasiukajtis fsubd %f28,%f36,%f28 1610*25c28e83SPiotr Jasiukajtis ld [%g1+%o5],%f26 1611*25c28e83SPiotr Jasiukajtis 1612*25c28e83SPiotr Jasiukajtis fsubd %f0,%f8,%f4 1613*25c28e83SPiotr Jasiukajtis 1614*25c28e83SPiotr Jasiukajtis fsubd %f10,%f18,%f14 1615*25c28e83SPiotr Jasiukajtis 1616*25c28e83SPiotr Jasiukajtis fsubd %f20,%f28,%f24 1617*25c28e83SPiotr Jasiukajtis 1618*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f32 1619*25c28e83SPiotr Jasiukajtis 1620*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f34 1621*25c28e83SPiotr Jasiukajtis 1622*25c28e83SPiotr Jasiukajtis fsubd %f20,%f24,%f36 1623*25c28e83SPiotr Jasiukajtis 1624*25c28e83SPiotr Jasiukajtis fsubd %f32,%f8,%f32 1625*25c28e83SPiotr Jasiukajtis fmuld %f2,%f52,%f2 1626*25c28e83SPiotr Jasiukajtis 1627*25c28e83SPiotr Jasiukajtis fsubd %f34,%f18,%f34 1628*25c28e83SPiotr Jasiukajtis fmuld %f12,%f52,%f12 1629*25c28e83SPiotr Jasiukajtis 1630*25c28e83SPiotr Jasiukajtis fsubd %f36,%f28,%f36 1631*25c28e83SPiotr Jasiukajtis fmuld %f22,%f52,%f22 1632*25c28e83SPiotr Jasiukajtis 1633*25c28e83SPiotr Jasiukajtis fsubd %f2,%f32,%f2 1634*25c28e83SPiotr Jasiukajtis ld [%o7+%o3],%f8 1635*25c28e83SPiotr Jasiukajtis 1636*25c28e83SPiotr Jasiukajtis fsubd %f12,%f34,%f12 1637*25c28e83SPiotr Jasiukajtis ld [%o7+%o4],%f18 1638*25c28e83SPiotr Jasiukajtis 1639*25c28e83SPiotr Jasiukajtis fsubd %f22,%f36,%f22 1640*25c28e83SPiotr Jasiukajtis ld [%o7+%o5],%f28 1641*25c28e83SPiotr Jasiukajtis 1642*25c28e83SPiotr Jasiukajtis fsubd %f4,%f2,%f0 ! x 1643*25c28e83SPiotr Jasiukajtis 1644*25c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f10 ! x 1645*25c28e83SPiotr Jasiukajtis 1646*25c28e83SPiotr Jasiukajtis fsubd %f24,%f22,%f20 ! x 1647*25c28e83SPiotr Jasiukajtis 1648*25c28e83SPiotr Jasiukajtis fsubd %f4,%f0,%f4 1649*25c28e83SPiotr Jasiukajtis 1650*25c28e83SPiotr Jasiukajtis fsubd %f14,%f10,%f14 1651*25c28e83SPiotr Jasiukajtis 1652*25c28e83SPiotr Jasiukajtis fsubd %f24,%f20,%f24 1653*25c28e83SPiotr Jasiukajtis 1654*25c28e83SPiotr Jasiukajtis fands %f0,%f30,%f9 ! save signbit 1655*25c28e83SPiotr Jasiukajtis 1656*25c28e83SPiotr Jasiukajtis fands %f10,%f30,%f19 ! save signbit 1657*25c28e83SPiotr Jasiukajtis 1658*25c28e83SPiotr Jasiukajtis fands %f20,%f30,%f29 ! save signbit 1659*25c28e83SPiotr Jasiukajtis 1660*25c28e83SPiotr Jasiukajtis fabsd %f0,%f0 1661*25c28e83SPiotr Jasiukajtis std %f0,[%fp+x0_1] 1662*25c28e83SPiotr Jasiukajtis 1663*25c28e83SPiotr Jasiukajtis fabsd %f10,%f10 1664*25c28e83SPiotr Jasiukajtis std %f10,[%fp+x1_1] 1665*25c28e83SPiotr Jasiukajtis 1666*25c28e83SPiotr Jasiukajtis fabsd %f20,%f20 1667*25c28e83SPiotr Jasiukajtis std %f20,[%fp+x2_1] 1668*25c28e83SPiotr Jasiukajtis 1669*25c28e83SPiotr Jasiukajtis fsubd %f4,%f2,%f2 ! y 1670*25c28e83SPiotr Jasiukajtis 1671*25c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f12 ! y 1672*25c28e83SPiotr Jasiukajtis 1673*25c28e83SPiotr Jasiukajtis fsubd %f24,%f22,%f22 ! y 1674*25c28e83SPiotr Jasiukajtis 1675*25c28e83SPiotr Jasiukajtis fcmpgt32 %f6,%f0,%l0 1676*25c28e83SPiotr Jasiukajtis 1677*25c28e83SPiotr Jasiukajtis fcmpgt32 %f16,%f10,%l1 1678*25c28e83SPiotr Jasiukajtis 1679*25c28e83SPiotr Jasiukajtis fcmpgt32 %f26,%f20,%l2 1680*25c28e83SPiotr Jasiukajtis 1681*25c28e83SPiotr Jasiukajtis! -- 16 byte aligned 1682*25c28e83SPiotr Jasiukajtis fxors %f2,%f9,%f2 1683*25c28e83SPiotr Jasiukajtis 1684*25c28e83SPiotr Jasiukajtis fxors %f12,%f19,%f12 1685*25c28e83SPiotr Jasiukajtis 1686*25c28e83SPiotr Jasiukajtis fxors %f22,%f29,%f22 1687*25c28e83SPiotr Jasiukajtis 1688*25c28e83SPiotr Jasiukajtis fands %f9,%f8,%f9 ! if (n & 1) clear sign bit 1689*25c28e83SPiotr Jasiukajtis andcc %l0,2,%g0 1690*25c28e83SPiotr Jasiukajtis bne,pn %icc,.CASE4 1691*25c28e83SPiotr Jasiukajtis 1692*25c28e83SPiotr Jasiukajtis! delay slot 1693*25c28e83SPiotr Jasiukajtis fands %f19,%f18,%f19 ! if (n & 1) clear sign bit 1694*25c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 1695*25c28e83SPiotr Jasiukajtis bne,pn %icc,.CASE2 1696*25c28e83SPiotr Jasiukajtis 1697*25c28e83SPiotr Jasiukajtis! delay slot 1698*25c28e83SPiotr Jasiukajtis fands %f29,%f28,%f29 ! if (n & 1) clear sign bit 1699*25c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 1700*25c28e83SPiotr Jasiukajtis bne,pn %icc,.CASE1 1701*25c28e83SPiotr Jasiukajtis 1702*25c28e83SPiotr Jasiukajtis! delay slot 1703*25c28e83SPiotr Jasiukajtis fpadd32s %f0,%f31,%f8 1704*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 1705*25c28e83SPiotr Jasiukajtis ld [%fp+x0_1],%l0 1706*25c28e83SPiotr Jasiukajtis 1707*25c28e83SPiotr Jasiukajtis fpadd32s %f10,%f31,%f18 1708*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 1709*25c28e83SPiotr Jasiukajtis ld [%fp+x1_1],%l1 1710*25c28e83SPiotr Jasiukajtis 1711*25c28e83SPiotr Jasiukajtis fpadd32s %f20,%f31,%f28 1712*25c28e83SPiotr Jasiukajtis ld [%fp+x2_1],%l2 1713*25c28e83SPiotr Jasiukajtis 1714*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f4 1715*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 1716*25c28e83SPiotr Jasiukajtis 1717*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f14 1718*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 1719*25c28e83SPiotr Jasiukajtis 1720*25c28e83SPiotr Jasiukajtis fand %f28,%f44,%f24 1721*25c28e83SPiotr Jasiukajtis sub %l2,%o7,%l2 1722*25c28e83SPiotr Jasiukajtis 1723*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f0 1724*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 1725*25c28e83SPiotr Jasiukajtis 1726*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f10 1727*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 1728*25c28e83SPiotr Jasiukajtis 1729*25c28e83SPiotr Jasiukajtis fsubd %f20,%f24,%f20 1730*25c28e83SPiotr Jasiukajtis srl %l2,10,%l2 1731*25c28e83SPiotr Jasiukajtis 1732*25c28e83SPiotr Jasiukajtis faddd %f0,%f2,%f0 1733*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 1734*25c28e83SPiotr Jasiukajtis 1735*25c28e83SPiotr Jasiukajtis faddd %f10,%f12,%f10 1736*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 1737*25c28e83SPiotr Jasiukajtis 1738*25c28e83SPiotr Jasiukajtis faddd %f20,%f22,%f20 1739*25c28e83SPiotr Jasiukajtis andn %l2,0x1f,%l2 1740*25c28e83SPiotr Jasiukajtis 1741*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 1742*25c28e83SPiotr Jasiukajtis add %l0,%o3,%l0 1743*25c28e83SPiotr Jasiukajtis 1744*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 1745*25c28e83SPiotr Jasiukajtis add %l1,%o4,%l1 1746*25c28e83SPiotr Jasiukajtis 1747*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 1748*25c28e83SPiotr Jasiukajtis add %l2,%o5,%l2 1749*25c28e83SPiotr Jasiukajtis 1750*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 1751*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 1752*25c28e83SPiotr Jasiukajtis 1753*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 1754*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f34 1755*25c28e83SPiotr Jasiukajtis 1756*25c28e83SPiotr Jasiukajtis fmuld %f22,%f58,%f26 1757*25c28e83SPiotr Jasiukajtis ldd [%l3+%l2],%f36 1758*25c28e83SPiotr Jasiukajtis 1759*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 1760*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 1761*25c28e83SPiotr Jasiukajtis 1762*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 1763*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 1764*25c28e83SPiotr Jasiukajtis 1765*25c28e83SPiotr Jasiukajtis faddd %f26,%f56,%f26 1766*25c28e83SPiotr Jasiukajtis fmuld %f22,%f62,%f24 1767*25c28e83SPiotr Jasiukajtis 1768*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 1769*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 1770*25c28e83SPiotr Jasiukajtis 1771*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 1772*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 1773*25c28e83SPiotr Jasiukajtis 1774*25c28e83SPiotr Jasiukajtis fmuld %f22,%f26,%f26 1775*25c28e83SPiotr Jasiukajtis faddd %f24,%f60,%f24 1776*25c28e83SPiotr Jasiukajtis 1777*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 1778*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1779*25c28e83SPiotr Jasiukajtis 1780*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 1781*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1782*25c28e83SPiotr Jasiukajtis 1783*25c28e83SPiotr Jasiukajtis faddd %f26,%f54,%f26 1784*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 1785*25c28e83SPiotr Jasiukajtis 1786*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 1787*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f2 1788*25c28e83SPiotr Jasiukajtis 1789*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 1790*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f12 1791*25c28e83SPiotr Jasiukajtis 1792*25c28e83SPiotr Jasiukajtis fmuld %f20,%f26,%f26 1793*25c28e83SPiotr Jasiukajtis ldd [%g1+%l2],%f22 1794*25c28e83SPiotr Jasiukajtis 1795*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 1796*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f0 1797*25c28e83SPiotr Jasiukajtis 1798*25c28e83SPiotr Jasiukajtis fmuld %f14,%f34,%f14 1799*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f10 1800*25c28e83SPiotr Jasiukajtis 1801*25c28e83SPiotr Jasiukajtis fmuld %f24,%f36,%f24 1802*25c28e83SPiotr Jasiukajtis ldd [%l4+%l2],%f20 1803*25c28e83SPiotr Jasiukajtis 1804*25c28e83SPiotr Jasiukajtis fmuld %f6,%f2,%f6 1805*25c28e83SPiotr Jasiukajtis 1806*25c28e83SPiotr Jasiukajtis fmuld %f16,%f12,%f16 1807*25c28e83SPiotr Jasiukajtis 1808*25c28e83SPiotr Jasiukajtis fmuld %f26,%f22,%f26 1809*25c28e83SPiotr Jasiukajtis 1810*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 1811*25c28e83SPiotr Jasiukajtis 1812*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 1813*25c28e83SPiotr Jasiukajtis 1814*25c28e83SPiotr Jasiukajtis faddd %f26,%f24,%f26 1815*25c28e83SPiotr Jasiukajtis 1816*25c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 1817*25c28e83SPiotr Jasiukajtis 1818*25c28e83SPiotr Jasiukajtis faddd %f16,%f10,%f16 1819*25c28e83SPiotr Jasiukajtis 1820*25c28e83SPiotr Jasiukajtis faddd %f26,%f20,%f26 1821*25c28e83SPiotr Jasiukajtis 1822*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 1823*25c28e83SPiotr Jasiukajtis 1824*25c28e83SPiotr Jasiukajtis faddd %f16,%f34,%f16 1825*25c28e83SPiotr Jasiukajtis 1826*25c28e83SPiotr Jasiukajtis faddd %f26,%f36,%f26 1827*25c28e83SPiotr Jasiukajtis 1828*25c28e83SPiotr Jasiukajtis.FIXSIGN: 1829*25c28e83SPiotr Jasiukajtis ld [%fp+n0],%o3 1830*25c28e83SPiotr Jasiukajtis add %l5,thresh-4,%g1 1831*25c28e83SPiotr Jasiukajtis 1832*25c28e83SPiotr Jasiukajtis ld [%fp+n1],%o4 1833*25c28e83SPiotr Jasiukajtis 1834*25c28e83SPiotr Jasiukajtis ld [%fp+n2],%o5 1835*25c28e83SPiotr Jasiukajtis and %o3,2,%o3 1836*25c28e83SPiotr Jasiukajtis 1837*25c28e83SPiotr Jasiukajtis sll %o3,2,%o3 1838*25c28e83SPiotr Jasiukajtis and %o4,2,%o4 1839*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 1840*25c28e83SPiotr Jasiukajtis 1841*25c28e83SPiotr Jasiukajtis sll %o4,2,%o4 1842*25c28e83SPiotr Jasiukajtis and %o5,2,%o5 1843*25c28e83SPiotr Jasiukajtis ld [%g1+%o3],%f8 1844*25c28e83SPiotr Jasiukajtis 1845*25c28e83SPiotr Jasiukajtis sll %o5,2,%o5 1846*25c28e83SPiotr Jasiukajtis ld [%g1+%o4],%f18 1847*25c28e83SPiotr Jasiukajtis 1848*25c28e83SPiotr Jasiukajtis ld [%g1+%o5],%f28 1849*25c28e83SPiotr Jasiukajtis fxors %f9,%f8,%f9 1850*25c28e83SPiotr Jasiukajtis 1851*25c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 1852*25c28e83SPiotr Jasiukajtis fxors %f29,%f28,%f29 1853*25c28e83SPiotr Jasiukajtis 1854*25c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f1 1855*25c28e83SPiotr Jasiukajtis fxors %f19,%f18,%f19 1856*25c28e83SPiotr Jasiukajtis 1857*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 ! tack on sign 1858*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 1859*25c28e83SPiotr Jasiukajtis st %f6,[%o0] 1860*25c28e83SPiotr Jasiukajtis 1861*25c28e83SPiotr Jasiukajtis fors %f26,%f29,%f26 ! tack on sign 1862*25c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 1863*25c28e83SPiotr Jasiukajtis 1864*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 ! tack on sign 1865*25c28e83SPiotr Jasiukajtis st %f26,[%o2] 1866*25c28e83SPiotr Jasiukajtis 1867*25c28e83SPiotr Jasiukajtis st %f27,[%o2+4] 1868*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 1869*25c28e83SPiotr Jasiukajtis 1870*25c28e83SPiotr Jasiukajtis st %f16,[%o1] 1871*25c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! hx &= ~0x80000000 1872*25c28e83SPiotr Jasiukajtis bg,pt %icc,.LOOP0 1873*25c28e83SPiotr Jasiukajtis 1874*25c28e83SPiotr Jasiukajtis! delay slot 1875*25c28e83SPiotr Jasiukajtis st %f17,[%o1+4] 1876*25c28e83SPiotr Jasiukajtis 1877*25c28e83SPiotr Jasiukajtis ba,pt %icc,.ENDLOOP0 1878*25c28e83SPiotr Jasiukajtis! delay slot 1879*25c28e83SPiotr Jasiukajtis nop 1880*25c28e83SPiotr Jasiukajtis 1881*25c28e83SPiotr Jasiukajtis .align 32 1882*25c28e83SPiotr Jasiukajtis.CASE1: 1883*25c28e83SPiotr Jasiukajtis fpadd32s %f10,%f31,%f18 1884*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 1885*25c28e83SPiotr Jasiukajtis ld [%fp+x0_1],%l0 1886*25c28e83SPiotr Jasiukajtis 1887*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f4 1888*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 1889*25c28e83SPiotr Jasiukajtis ld [%fp+x1_1],%l1 1890*25c28e83SPiotr Jasiukajtis 1891*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f14 1892*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 1893*25c28e83SPiotr Jasiukajtis 1894*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f0 1895*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 1896*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 1897*25c28e83SPiotr Jasiukajtis 1898*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f10 1899*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 1900*25c28e83SPiotr Jasiukajtis 1901*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f20 1902*25c28e83SPiotr Jasiukajtis ldd [%l5+%o5],%f36 1903*25c28e83SPiotr Jasiukajtis add %l5,%o5,%l2 1904*25c28e83SPiotr Jasiukajtis 1905*25c28e83SPiotr Jasiukajtis faddd %f0,%f2,%f0 1906*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 1907*25c28e83SPiotr Jasiukajtis 1908*25c28e83SPiotr Jasiukajtis faddd %f10,%f12,%f10 1909*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 1910*25c28e83SPiotr Jasiukajtis 1911*25c28e83SPiotr Jasiukajtis fmuld %f20,%f36,%f24 1912*25c28e83SPiotr Jasiukajtis ldd [%l2+0x10],%f26 1913*25c28e83SPiotr Jasiukajtis add %fp,%o5,%o5 1914*25c28e83SPiotr Jasiukajtis 1915*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 1916*25c28e83SPiotr Jasiukajtis add %l0,%o3,%l0 1917*25c28e83SPiotr Jasiukajtis 1918*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 1919*25c28e83SPiotr Jasiukajtis add %l1,%o4,%l1 1920*25c28e83SPiotr Jasiukajtis 1921*25c28e83SPiotr Jasiukajtis faddd %f24,%f26,%f24 1922*25c28e83SPiotr Jasiukajtis ldd [%l2+0x20],%f36 1923*25c28e83SPiotr Jasiukajtis 1924*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 1925*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 1926*25c28e83SPiotr Jasiukajtis 1927*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 1928*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f34 1929*25c28e83SPiotr Jasiukajtis 1930*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 1931*25c28e83SPiotr Jasiukajtis ldd [%l2+0x30],%f26 1932*25c28e83SPiotr Jasiukajtis 1933*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 1934*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 1935*25c28e83SPiotr Jasiukajtis 1936*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 1937*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 1938*25c28e83SPiotr Jasiukajtis 1939*25c28e83SPiotr Jasiukajtis faddd %f24,%f36,%f24 1940*25c28e83SPiotr Jasiukajtis ldd [%o5+x2_1],%f36 1941*25c28e83SPiotr Jasiukajtis 1942*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 1943*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 1944*25c28e83SPiotr Jasiukajtis 1945*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 1946*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 1947*25c28e83SPiotr Jasiukajtis 1948*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 1949*25c28e83SPiotr Jasiukajtis 1950*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 1951*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 1952*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f2 1953*25c28e83SPiotr Jasiukajtis 1954*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 1955*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 1956*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f12 1957*25c28e83SPiotr Jasiukajtis 1958*25c28e83SPiotr Jasiukajtis faddd %f24,%f26,%f24 1959*25c28e83SPiotr Jasiukajtis 1960*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 1961*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f0 1962*25c28e83SPiotr Jasiukajtis 1963*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 1964*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f10 1965*25c28e83SPiotr Jasiukajtis 1966*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 1967*25c28e83SPiotr Jasiukajtis std %f22,[%fp+y2_0] 1968*25c28e83SPiotr Jasiukajtis 1969*25c28e83SPiotr Jasiukajtis fmuld %f14,%f34,%f14 1970*25c28e83SPiotr Jasiukajtis 1971*25c28e83SPiotr Jasiukajtis fmuld %f6,%f2,%f6 1972*25c28e83SPiotr Jasiukajtis 1973*25c28e83SPiotr Jasiukajtis fmuld %f16,%f12,%f16 1974*25c28e83SPiotr Jasiukajtis 1975*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 1976*25c28e83SPiotr Jasiukajtis 1977*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 1978*25c28e83SPiotr Jasiukajtis 1979*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 1980*25c28e83SPiotr Jasiukajtis 1981*25c28e83SPiotr Jasiukajtis fmuld %f36,%f24,%f24 1982*25c28e83SPiotr Jasiukajtis ldd [%o5+y2_0],%f22 1983*25c28e83SPiotr Jasiukajtis 1984*25c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 1985*25c28e83SPiotr Jasiukajtis 1986*25c28e83SPiotr Jasiukajtis faddd %f16,%f10,%f16 1987*25c28e83SPiotr Jasiukajtis 1988*25c28e83SPiotr Jasiukajtis faddd %f24,%f22,%f24 1989*25c28e83SPiotr Jasiukajtis 1990*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 1991*25c28e83SPiotr Jasiukajtis 1992*25c28e83SPiotr Jasiukajtis faddd %f16,%f34,%f16 1993*25c28e83SPiotr Jasiukajtis ba,pt %icc,.FIXSIGN 1994*25c28e83SPiotr Jasiukajtis 1995*25c28e83SPiotr Jasiukajtis! delay slot 1996*25c28e83SPiotr Jasiukajtis faddd %f36,%f24,%f26 1997*25c28e83SPiotr Jasiukajtis 1998*25c28e83SPiotr Jasiukajtis .align 32 1999*25c28e83SPiotr Jasiukajtis.CASE2: 2000*25c28e83SPiotr Jasiukajtis fpadd32s %f0,%f31,%f8 2001*25c28e83SPiotr Jasiukajtis ld [%fp+x0_1],%l0 2002*25c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 2003*25c28e83SPiotr Jasiukajtis bne,pn %icc,.CASE3 2004*25c28e83SPiotr Jasiukajtis 2005*25c28e83SPiotr Jasiukajtis! delay slot 2006*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 2007*25c28e83SPiotr Jasiukajtis fpadd32s %f20,%f31,%f28 2008*25c28e83SPiotr Jasiukajtis ld [%fp+x2_1],%l2 2009*25c28e83SPiotr Jasiukajtis 2010*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f4 2011*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 2012*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 2013*25c28e83SPiotr Jasiukajtis 2014*25c28e83SPiotr Jasiukajtis fand %f28,%f44,%f24 2015*25c28e83SPiotr Jasiukajtis sub %l2,%o7,%l2 2016*25c28e83SPiotr Jasiukajtis 2017*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f0 2018*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 2019*25c28e83SPiotr Jasiukajtis 2020*25c28e83SPiotr Jasiukajtis fsubd %f20,%f24,%f20 2021*25c28e83SPiotr Jasiukajtis srl %l2,10,%l2 2022*25c28e83SPiotr Jasiukajtis 2023*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f10 2024*25c28e83SPiotr Jasiukajtis ldd [%l5+%o4],%f34 2025*25c28e83SPiotr Jasiukajtis add %l5,%o4,%l1 2026*25c28e83SPiotr Jasiukajtis 2027*25c28e83SPiotr Jasiukajtis faddd %f0,%f2,%f0 2028*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 2029*25c28e83SPiotr Jasiukajtis 2030*25c28e83SPiotr Jasiukajtis faddd %f20,%f22,%f20 2031*25c28e83SPiotr Jasiukajtis andn %l2,0x1f,%l2 2032*25c28e83SPiotr Jasiukajtis 2033*25c28e83SPiotr Jasiukajtis fmuld %f10,%f34,%f14 2034*25c28e83SPiotr Jasiukajtis ldd [%l1+0x10],%f16 2035*25c28e83SPiotr Jasiukajtis add %fp,%o4,%o4 2036*25c28e83SPiotr Jasiukajtis 2037*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 2038*25c28e83SPiotr Jasiukajtis add %l0,%o3,%l0 2039*25c28e83SPiotr Jasiukajtis 2040*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 2041*25c28e83SPiotr Jasiukajtis add %l2,%o5,%l2 2042*25c28e83SPiotr Jasiukajtis 2043*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2044*25c28e83SPiotr Jasiukajtis ldd [%l1+0x20],%f34 2045*25c28e83SPiotr Jasiukajtis 2046*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 2047*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 2048*25c28e83SPiotr Jasiukajtis 2049*25c28e83SPiotr Jasiukajtis fmuld %f22,%f58,%f26 2050*25c28e83SPiotr Jasiukajtis ldd [%l3+%l2],%f36 2051*25c28e83SPiotr Jasiukajtis 2052*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2053*25c28e83SPiotr Jasiukajtis ldd [%l1+0x30],%f16 2054*25c28e83SPiotr Jasiukajtis 2055*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 2056*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 2057*25c28e83SPiotr Jasiukajtis 2058*25c28e83SPiotr Jasiukajtis faddd %f26,%f56,%f26 2059*25c28e83SPiotr Jasiukajtis fmuld %f22,%f62,%f24 2060*25c28e83SPiotr Jasiukajtis 2061*25c28e83SPiotr Jasiukajtis faddd %f14,%f34,%f14 2062*25c28e83SPiotr Jasiukajtis ldd [%o4+x1_1],%f34 2063*25c28e83SPiotr Jasiukajtis 2064*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 2065*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 2066*25c28e83SPiotr Jasiukajtis 2067*25c28e83SPiotr Jasiukajtis fmuld %f22,%f26,%f26 2068*25c28e83SPiotr Jasiukajtis faddd %f24,%f60,%f24 2069*25c28e83SPiotr Jasiukajtis 2070*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2071*25c28e83SPiotr Jasiukajtis 2072*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 2073*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 2074*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f2 2075*25c28e83SPiotr Jasiukajtis 2076*25c28e83SPiotr Jasiukajtis faddd %f26,%f54,%f26 2077*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 2078*25c28e83SPiotr Jasiukajtis ldd [%g1+%l2],%f22 2079*25c28e83SPiotr Jasiukajtis 2080*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2081*25c28e83SPiotr Jasiukajtis 2082*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 2083*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f0 2084*25c28e83SPiotr Jasiukajtis 2085*25c28e83SPiotr Jasiukajtis fmuld %f20,%f26,%f26 2086*25c28e83SPiotr Jasiukajtis ldd [%l4+%l2],%f20 2087*25c28e83SPiotr Jasiukajtis 2088*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 2089*25c28e83SPiotr Jasiukajtis std %f12,[%fp+y1_0] 2090*25c28e83SPiotr Jasiukajtis 2091*25c28e83SPiotr Jasiukajtis fmuld %f24,%f36,%f24 2092*25c28e83SPiotr Jasiukajtis 2093*25c28e83SPiotr Jasiukajtis fmuld %f6,%f2,%f6 2094*25c28e83SPiotr Jasiukajtis 2095*25c28e83SPiotr Jasiukajtis fmuld %f26,%f22,%f26 2096*25c28e83SPiotr Jasiukajtis 2097*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2098*25c28e83SPiotr Jasiukajtis 2099*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 2100*25c28e83SPiotr Jasiukajtis 2101*25c28e83SPiotr Jasiukajtis faddd %f26,%f24,%f26 2102*25c28e83SPiotr Jasiukajtis 2103*25c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 2104*25c28e83SPiotr Jasiukajtis ldd [%o4+y1_0],%f12 2105*25c28e83SPiotr Jasiukajtis 2106*25c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 2107*25c28e83SPiotr Jasiukajtis 2108*25c28e83SPiotr Jasiukajtis faddd %f26,%f20,%f26 2109*25c28e83SPiotr Jasiukajtis 2110*25c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 2111*25c28e83SPiotr Jasiukajtis 2112*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 2113*25c28e83SPiotr Jasiukajtis 2114*25c28e83SPiotr Jasiukajtis faddd %f26,%f36,%f26 2115*25c28e83SPiotr Jasiukajtis ba,pt %icc,.FIXSIGN 2116*25c28e83SPiotr Jasiukajtis 2117*25c28e83SPiotr Jasiukajtis! delay slot 2118*25c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f16 2119*25c28e83SPiotr Jasiukajtis 2120*25c28e83SPiotr Jasiukajtis .align 32 2121*25c28e83SPiotr Jasiukajtis.CASE3: 2122*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f4 2123*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 2124*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 2125*25c28e83SPiotr Jasiukajtis 2126*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f10 2127*25c28e83SPiotr Jasiukajtis ldd [%l5+%o4],%f34 2128*25c28e83SPiotr Jasiukajtis add %l5,%o4,%l1 2129*25c28e83SPiotr Jasiukajtis 2130*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f0 2131*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 2132*25c28e83SPiotr Jasiukajtis 2133*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f20 2134*25c28e83SPiotr Jasiukajtis ldd [%l5+%o5],%f36 2135*25c28e83SPiotr Jasiukajtis add %l5,%o5,%l2 2136*25c28e83SPiotr Jasiukajtis 2137*25c28e83SPiotr Jasiukajtis fmuld %f10,%f34,%f14 2138*25c28e83SPiotr Jasiukajtis ldd [%l1+0x10],%f16 2139*25c28e83SPiotr Jasiukajtis add %fp,%o4,%o4 2140*25c28e83SPiotr Jasiukajtis 2141*25c28e83SPiotr Jasiukajtis faddd %f0,%f2,%f0 2142*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 2143*25c28e83SPiotr Jasiukajtis 2144*25c28e83SPiotr Jasiukajtis fmuld %f20,%f36,%f24 2145*25c28e83SPiotr Jasiukajtis ldd [%l2+0x10],%f26 2146*25c28e83SPiotr Jasiukajtis add %fp,%o5,%o5 2147*25c28e83SPiotr Jasiukajtis 2148*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2149*25c28e83SPiotr Jasiukajtis ldd [%l1+0x20],%f34 2150*25c28e83SPiotr Jasiukajtis 2151*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 2152*25c28e83SPiotr Jasiukajtis add %l0,%o3,%l0 2153*25c28e83SPiotr Jasiukajtis 2154*25c28e83SPiotr Jasiukajtis faddd %f24,%f26,%f24 2155*25c28e83SPiotr Jasiukajtis ldd [%l2+0x20],%f36 2156*25c28e83SPiotr Jasiukajtis 2157*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2158*25c28e83SPiotr Jasiukajtis ldd [%l1+0x30],%f16 2159*25c28e83SPiotr Jasiukajtis 2160*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 2161*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 2162*25c28e83SPiotr Jasiukajtis 2163*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2164*25c28e83SPiotr Jasiukajtis ldd [%l2+0x30],%f26 2165*25c28e83SPiotr Jasiukajtis 2166*25c28e83SPiotr Jasiukajtis faddd %f14,%f34,%f14 2167*25c28e83SPiotr Jasiukajtis ldd [%o4+x1_1],%f34 2168*25c28e83SPiotr Jasiukajtis 2169*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 2170*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 2171*25c28e83SPiotr Jasiukajtis 2172*25c28e83SPiotr Jasiukajtis faddd %f24,%f36,%f24 2173*25c28e83SPiotr Jasiukajtis ldd [%o5+x2_1],%f36 2174*25c28e83SPiotr Jasiukajtis 2175*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2176*25c28e83SPiotr Jasiukajtis std %f12,[%fp+y1_0] 2177*25c28e83SPiotr Jasiukajtis 2178*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 2179*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 2180*25c28e83SPiotr Jasiukajtis 2181*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2182*25c28e83SPiotr Jasiukajtis std %f22,[%fp+y2_0] 2183*25c28e83SPiotr Jasiukajtis 2184*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2185*25c28e83SPiotr Jasiukajtis 2186*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 2187*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 2188*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f2 2189*25c28e83SPiotr Jasiukajtis 2190*25c28e83SPiotr Jasiukajtis faddd %f24,%f26,%f24 2191*25c28e83SPiotr Jasiukajtis 2192*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2193*25c28e83SPiotr Jasiukajtis 2194*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 2195*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f0 2196*25c28e83SPiotr Jasiukajtis 2197*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 2198*25c28e83SPiotr Jasiukajtis 2199*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2200*25c28e83SPiotr Jasiukajtis 2201*25c28e83SPiotr Jasiukajtis fmuld %f6,%f2,%f6 2202*25c28e83SPiotr Jasiukajtis 2203*25c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 2204*25c28e83SPiotr Jasiukajtis ldd [%o4+y1_0],%f12 2205*25c28e83SPiotr Jasiukajtis 2206*25c28e83SPiotr Jasiukajtis fmuld %f36,%f24,%f24 2207*25c28e83SPiotr Jasiukajtis ldd [%o5+y2_0],%f22 2208*25c28e83SPiotr Jasiukajtis 2209*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 2210*25c28e83SPiotr Jasiukajtis 2211*25c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 2212*25c28e83SPiotr Jasiukajtis 2213*25c28e83SPiotr Jasiukajtis faddd %f24,%f22,%f24 2214*25c28e83SPiotr Jasiukajtis 2215*25c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 2216*25c28e83SPiotr Jasiukajtis 2217*25c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f16 2218*25c28e83SPiotr Jasiukajtis 2219*25c28e83SPiotr Jasiukajtis faddd %f36,%f24,%f26 2220*25c28e83SPiotr Jasiukajtis ba,pt %icc,.FIXSIGN 2221*25c28e83SPiotr Jasiukajtis 2222*25c28e83SPiotr Jasiukajtis! delay slot 2223*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 2224*25c28e83SPiotr Jasiukajtis 2225*25c28e83SPiotr Jasiukajtis .align 32 2226*25c28e83SPiotr Jasiukajtis.CASE4: 2227*25c28e83SPiotr Jasiukajtis fands %f29,%f28,%f29 ! if (n & 1) clear sign bit 2228*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 2229*25c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 2230*25c28e83SPiotr Jasiukajtis bne,pn %icc,.CASE6 2231*25c28e83SPiotr Jasiukajtis 2232*25c28e83SPiotr Jasiukajtis! delay slot 2233*25c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 2234*25c28e83SPiotr Jasiukajtis fpadd32s %f10,%f31,%f18 2235*25c28e83SPiotr Jasiukajtis ld [%fp+x1_1],%l1 2236*25c28e83SPiotr Jasiukajtis bne,pn %icc,.CASE5 2237*25c28e83SPiotr Jasiukajtis 2238*25c28e83SPiotr Jasiukajtis! delay slot 2239*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 2240*25c28e83SPiotr Jasiukajtis ld [%fp+x2_1],%l2 2241*25c28e83SPiotr Jasiukajtis fpadd32s %f20,%f31,%f28 2242*25c28e83SPiotr Jasiukajtis 2243*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f14 2244*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 2245*25c28e83SPiotr Jasiukajtis 2246*25c28e83SPiotr Jasiukajtis fand %f28,%f44,%f24 2247*25c28e83SPiotr Jasiukajtis sub %l2,%o7,%l2 2248*25c28e83SPiotr Jasiukajtis 2249*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f10 2250*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 2251*25c28e83SPiotr Jasiukajtis 2252*25c28e83SPiotr Jasiukajtis fsubd %f20,%f24,%f20 2253*25c28e83SPiotr Jasiukajtis srl %l2,10,%l2 2254*25c28e83SPiotr Jasiukajtis 2255*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f0 2256*25c28e83SPiotr Jasiukajtis ldd [%l5+%o3],%f32 2257*25c28e83SPiotr Jasiukajtis add %l5,%o3,%l0 2258*25c28e83SPiotr Jasiukajtis 2259*25c28e83SPiotr Jasiukajtis faddd %f10,%f12,%f10 2260*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 2261*25c28e83SPiotr Jasiukajtis 2262*25c28e83SPiotr Jasiukajtis faddd %f20,%f22,%f20 2263*25c28e83SPiotr Jasiukajtis andn %l2,0x1f,%l2 2264*25c28e83SPiotr Jasiukajtis 2265*25c28e83SPiotr Jasiukajtis fmuld %f0,%f32,%f4 2266*25c28e83SPiotr Jasiukajtis ldd [%l0+0x10],%f6 2267*25c28e83SPiotr Jasiukajtis add %fp,%o3,%o3 2268*25c28e83SPiotr Jasiukajtis 2269*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 2270*25c28e83SPiotr Jasiukajtis add %l1,%o4,%l1 2271*25c28e83SPiotr Jasiukajtis 2272*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 2273*25c28e83SPiotr Jasiukajtis add %l2,%o5,%l2 2274*25c28e83SPiotr Jasiukajtis 2275*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2276*25c28e83SPiotr Jasiukajtis ldd [%l0+0x20],%f32 2277*25c28e83SPiotr Jasiukajtis 2278*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 2279*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f34 2280*25c28e83SPiotr Jasiukajtis 2281*25c28e83SPiotr Jasiukajtis fmuld %f22,%f58,%f26 2282*25c28e83SPiotr Jasiukajtis ldd [%l3+%l2],%f36 2283*25c28e83SPiotr Jasiukajtis 2284*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2285*25c28e83SPiotr Jasiukajtis ldd [%l0+0x30],%f6 2286*25c28e83SPiotr Jasiukajtis 2287*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 2288*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 2289*25c28e83SPiotr Jasiukajtis 2290*25c28e83SPiotr Jasiukajtis faddd %f26,%f56,%f26 2291*25c28e83SPiotr Jasiukajtis fmuld %f22,%f62,%f24 2292*25c28e83SPiotr Jasiukajtis 2293*25c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 2294*25c28e83SPiotr Jasiukajtis ldd [%o3+x0_1],%f32 2295*25c28e83SPiotr Jasiukajtis 2296*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 2297*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 2298*25c28e83SPiotr Jasiukajtis 2299*25c28e83SPiotr Jasiukajtis fmuld %f22,%f26,%f26 2300*25c28e83SPiotr Jasiukajtis faddd %f24,%f60,%f24 2301*25c28e83SPiotr Jasiukajtis 2302*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2303*25c28e83SPiotr Jasiukajtis 2304*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 2305*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 2306*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f12 2307*25c28e83SPiotr Jasiukajtis 2308*25c28e83SPiotr Jasiukajtis faddd %f26,%f54,%f26 2309*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 2310*25c28e83SPiotr Jasiukajtis ldd [%g1+%l2],%f22 2311*25c28e83SPiotr Jasiukajtis 2312*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2313*25c28e83SPiotr Jasiukajtis 2314*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 2315*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f10 2316*25c28e83SPiotr Jasiukajtis 2317*25c28e83SPiotr Jasiukajtis fmuld %f20,%f26,%f26 2318*25c28e83SPiotr Jasiukajtis ldd [%l4+%l2],%f20 2319*25c28e83SPiotr Jasiukajtis 2320*25c28e83SPiotr Jasiukajtis fmuld %f14,%f34,%f14 2321*25c28e83SPiotr Jasiukajtis std %f2,[%fp+y0_0] 2322*25c28e83SPiotr Jasiukajtis 2323*25c28e83SPiotr Jasiukajtis fmuld %f24,%f36,%f24 2324*25c28e83SPiotr Jasiukajtis 2325*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2326*25c28e83SPiotr Jasiukajtis 2327*25c28e83SPiotr Jasiukajtis fmuld %f16,%f12,%f16 2328*25c28e83SPiotr Jasiukajtis 2329*25c28e83SPiotr Jasiukajtis fmuld %f26,%f22,%f26 2330*25c28e83SPiotr Jasiukajtis 2331*25c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 2332*25c28e83SPiotr Jasiukajtis ldd [%o3+y0_0],%f2 2333*25c28e83SPiotr Jasiukajtis 2334*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 2335*25c28e83SPiotr Jasiukajtis 2336*25c28e83SPiotr Jasiukajtis faddd %f26,%f24,%f26 2337*25c28e83SPiotr Jasiukajtis 2338*25c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 2339*25c28e83SPiotr Jasiukajtis 2340*25c28e83SPiotr Jasiukajtis faddd %f16,%f10,%f16 2341*25c28e83SPiotr Jasiukajtis 2342*25c28e83SPiotr Jasiukajtis faddd %f26,%f20,%f26 2343*25c28e83SPiotr Jasiukajtis 2344*25c28e83SPiotr Jasiukajtis faddd %f32,%f4,%f6 2345*25c28e83SPiotr Jasiukajtis 2346*25c28e83SPiotr Jasiukajtis faddd %f16,%f34,%f16 2347*25c28e83SPiotr Jasiukajtis ba,pt %icc,.FIXSIGN 2348*25c28e83SPiotr Jasiukajtis 2349*25c28e83SPiotr Jasiukajtis! delay slot 2350*25c28e83SPiotr Jasiukajtis faddd %f26,%f36,%f26 2351*25c28e83SPiotr Jasiukajtis 2352*25c28e83SPiotr Jasiukajtis .align 32 2353*25c28e83SPiotr Jasiukajtis.CASE5: 2354*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f14 2355*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 2356*25c28e83SPiotr Jasiukajtis 2357*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f0 2358*25c28e83SPiotr Jasiukajtis ldd [%l5+%o3],%f32 2359*25c28e83SPiotr Jasiukajtis add %l5,%o3,%l0 2360*25c28e83SPiotr Jasiukajtis 2361*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f10 2362*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 2363*25c28e83SPiotr Jasiukajtis 2364*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f20 2365*25c28e83SPiotr Jasiukajtis ldd [%l5+%o5],%f36 2366*25c28e83SPiotr Jasiukajtis add %l5,%o5,%l2 2367*25c28e83SPiotr Jasiukajtis 2368*25c28e83SPiotr Jasiukajtis fmuld %f0,%f32,%f4 2369*25c28e83SPiotr Jasiukajtis ldd [%l0+0x10],%f6 2370*25c28e83SPiotr Jasiukajtis add %fp,%o3,%o3 2371*25c28e83SPiotr Jasiukajtis 2372*25c28e83SPiotr Jasiukajtis faddd %f10,%f12,%f10 2373*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 2374*25c28e83SPiotr Jasiukajtis 2375*25c28e83SPiotr Jasiukajtis fmuld %f20,%f36,%f24 2376*25c28e83SPiotr Jasiukajtis ldd [%l2+0x10],%f26 2377*25c28e83SPiotr Jasiukajtis add %fp,%o5,%o5 2378*25c28e83SPiotr Jasiukajtis 2379*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2380*25c28e83SPiotr Jasiukajtis ldd [%l0+0x20],%f32 2381*25c28e83SPiotr Jasiukajtis 2382*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 2383*25c28e83SPiotr Jasiukajtis add %l1,%o4,%l1 2384*25c28e83SPiotr Jasiukajtis 2385*25c28e83SPiotr Jasiukajtis faddd %f24,%f26,%f24 2386*25c28e83SPiotr Jasiukajtis ldd [%l2+0x20],%f36 2387*25c28e83SPiotr Jasiukajtis 2388*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2389*25c28e83SPiotr Jasiukajtis ldd [%l0+0x30],%f6 2390*25c28e83SPiotr Jasiukajtis 2391*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 2392*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f34 2393*25c28e83SPiotr Jasiukajtis 2394*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2395*25c28e83SPiotr Jasiukajtis ldd [%l2+0x30],%f26 2396*25c28e83SPiotr Jasiukajtis 2397*25c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 2398*25c28e83SPiotr Jasiukajtis ldd [%o3+x0_1],%f32 2399*25c28e83SPiotr Jasiukajtis 2400*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 2401*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 2402*25c28e83SPiotr Jasiukajtis 2403*25c28e83SPiotr Jasiukajtis faddd %f24,%f36,%f24 2404*25c28e83SPiotr Jasiukajtis ldd [%o5+x2_1],%f36 2405*25c28e83SPiotr Jasiukajtis 2406*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2407*25c28e83SPiotr Jasiukajtis std %f2,[%fp+y0_0] 2408*25c28e83SPiotr Jasiukajtis 2409*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 2410*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 2411*25c28e83SPiotr Jasiukajtis 2412*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2413*25c28e83SPiotr Jasiukajtis std %f22,[%fp+y2_0] 2414*25c28e83SPiotr Jasiukajtis 2415*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2416*25c28e83SPiotr Jasiukajtis 2417*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 2418*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 2419*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f12 2420*25c28e83SPiotr Jasiukajtis 2421*25c28e83SPiotr Jasiukajtis faddd %f24,%f26,%f24 2422*25c28e83SPiotr Jasiukajtis 2423*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2424*25c28e83SPiotr Jasiukajtis 2425*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 2426*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f10 2427*25c28e83SPiotr Jasiukajtis 2428*25c28e83SPiotr Jasiukajtis fmuld %f14,%f34,%f14 2429*25c28e83SPiotr Jasiukajtis 2430*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2431*25c28e83SPiotr Jasiukajtis 2432*25c28e83SPiotr Jasiukajtis fmuld %f16,%f12,%f16 2433*25c28e83SPiotr Jasiukajtis 2434*25c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 2435*25c28e83SPiotr Jasiukajtis ldd [%o3+y0_0],%f2 2436*25c28e83SPiotr Jasiukajtis 2437*25c28e83SPiotr Jasiukajtis fmuld %f36,%f24,%f24 2438*25c28e83SPiotr Jasiukajtis ldd [%o5+y2_0],%f22 2439*25c28e83SPiotr Jasiukajtis 2440*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 2441*25c28e83SPiotr Jasiukajtis 2442*25c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 2443*25c28e83SPiotr Jasiukajtis 2444*25c28e83SPiotr Jasiukajtis faddd %f24,%f22,%f24 2445*25c28e83SPiotr Jasiukajtis 2446*25c28e83SPiotr Jasiukajtis faddd %f16,%f10,%f16 2447*25c28e83SPiotr Jasiukajtis 2448*25c28e83SPiotr Jasiukajtis faddd %f32,%f4,%f6 2449*25c28e83SPiotr Jasiukajtis 2450*25c28e83SPiotr Jasiukajtis faddd %f36,%f24,%f26 2451*25c28e83SPiotr Jasiukajtis ba,pt %icc,.FIXSIGN 2452*25c28e83SPiotr Jasiukajtis 2453*25c28e83SPiotr Jasiukajtis! delay slot 2454*25c28e83SPiotr Jasiukajtis faddd %f16,%f34,%f16 2455*25c28e83SPiotr Jasiukajtis 2456*25c28e83SPiotr Jasiukajtis .align 32 2457*25c28e83SPiotr Jasiukajtis.CASE6: 2458*25c28e83SPiotr Jasiukajtis ld [%fp+x2_1],%l2 2459*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 2460*25c28e83SPiotr Jasiukajtis bne,pn %icc,.CASE7 2461*25c28e83SPiotr Jasiukajtis! delay slot 2462*25c28e83SPiotr Jasiukajtis fpadd32s %f20,%f31,%f28 2463*25c28e83SPiotr Jasiukajtis 2464*25c28e83SPiotr Jasiukajtis fand %f28,%f44,%f24 2465*25c28e83SPiotr Jasiukajtis ldd [%l5+%o3],%f32 2466*25c28e83SPiotr Jasiukajtis add %l5,%o3,%l0 2467*25c28e83SPiotr Jasiukajtis 2468*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f0 2469*25c28e83SPiotr Jasiukajtis sub %l2,%o7,%l2 2470*25c28e83SPiotr Jasiukajtis 2471*25c28e83SPiotr Jasiukajtis fsubd %f20,%f24,%f20 2472*25c28e83SPiotr Jasiukajtis srl %l2,10,%l2 2473*25c28e83SPiotr Jasiukajtis 2474*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f10 2475*25c28e83SPiotr Jasiukajtis ldd [%l5+%o4],%f34 2476*25c28e83SPiotr Jasiukajtis add %l5,%o4,%l1 2477*25c28e83SPiotr Jasiukajtis 2478*25c28e83SPiotr Jasiukajtis fmuld %f0,%f32,%f4 2479*25c28e83SPiotr Jasiukajtis ldd [%l0+0x10],%f6 2480*25c28e83SPiotr Jasiukajtis add %fp,%o3,%o3 2481*25c28e83SPiotr Jasiukajtis 2482*25c28e83SPiotr Jasiukajtis faddd %f20,%f22,%f20 2483*25c28e83SPiotr Jasiukajtis andn %l2,0x1f,%l2 2484*25c28e83SPiotr Jasiukajtis 2485*25c28e83SPiotr Jasiukajtis fmuld %f10,%f34,%f14 2486*25c28e83SPiotr Jasiukajtis ldd [%l1+0x10],%f16 2487*25c28e83SPiotr Jasiukajtis add %fp,%o4,%o4 2488*25c28e83SPiotr Jasiukajtis 2489*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2490*25c28e83SPiotr Jasiukajtis ldd [%l0+0x20],%f32 2491*25c28e83SPiotr Jasiukajtis 2492*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f22 2493*25c28e83SPiotr Jasiukajtis add %l2,%o5,%l2 2494*25c28e83SPiotr Jasiukajtis 2495*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2496*25c28e83SPiotr Jasiukajtis ldd [%l1+0x20],%f34 2497*25c28e83SPiotr Jasiukajtis 2498*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2499*25c28e83SPiotr Jasiukajtis ldd [%l0+0x30],%f6 2500*25c28e83SPiotr Jasiukajtis 2501*25c28e83SPiotr Jasiukajtis fmuld %f22,%f58,%f26 2502*25c28e83SPiotr Jasiukajtis ldd [%l3+%l2],%f36 2503*25c28e83SPiotr Jasiukajtis 2504*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2505*25c28e83SPiotr Jasiukajtis ldd [%l1+0x30],%f16 2506*25c28e83SPiotr Jasiukajtis 2507*25c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 2508*25c28e83SPiotr Jasiukajtis ldd [%o3+x0_1],%f32 2509*25c28e83SPiotr Jasiukajtis 2510*25c28e83SPiotr Jasiukajtis faddd %f26,%f56,%f26 2511*25c28e83SPiotr Jasiukajtis fmuld %f22,%f62,%f24 2512*25c28e83SPiotr Jasiukajtis 2513*25c28e83SPiotr Jasiukajtis faddd %f14,%f34,%f14 2514*25c28e83SPiotr Jasiukajtis ldd [%o4+x1_1],%f34 2515*25c28e83SPiotr Jasiukajtis 2516*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2517*25c28e83SPiotr Jasiukajtis std %f2,[%fp+y0_0] 2518*25c28e83SPiotr Jasiukajtis 2519*25c28e83SPiotr Jasiukajtis fmuld %f22,%f26,%f26 2520*25c28e83SPiotr Jasiukajtis faddd %f24,%f60,%f24 2521*25c28e83SPiotr Jasiukajtis 2522*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2523*25c28e83SPiotr Jasiukajtis std %f12,[%fp+y1_0] 2524*25c28e83SPiotr Jasiukajtis 2525*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2526*25c28e83SPiotr Jasiukajtis 2527*25c28e83SPiotr Jasiukajtis faddd %f26,%f54,%f26 2528*25c28e83SPiotr Jasiukajtis fmuld %f22,%f24,%f24 2529*25c28e83SPiotr Jasiukajtis ldd [%g1+%l2],%f22 2530*25c28e83SPiotr Jasiukajtis 2531*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2532*25c28e83SPiotr Jasiukajtis 2533*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2534*25c28e83SPiotr Jasiukajtis 2535*25c28e83SPiotr Jasiukajtis fmuld %f20,%f26,%f26 2536*25c28e83SPiotr Jasiukajtis ldd [%l4+%l2],%f20 2537*25c28e83SPiotr Jasiukajtis 2538*25c28e83SPiotr Jasiukajtis fmuld %f24,%f36,%f24 2539*25c28e83SPiotr Jasiukajtis 2540*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2541*25c28e83SPiotr Jasiukajtis 2542*25c28e83SPiotr Jasiukajtis fmuld %f26,%f22,%f26 2543*25c28e83SPiotr Jasiukajtis 2544*25c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 2545*25c28e83SPiotr Jasiukajtis ldd [%o3+y0_0],%f2 2546*25c28e83SPiotr Jasiukajtis 2547*25c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 2548*25c28e83SPiotr Jasiukajtis ldd [%o4+y1_0],%f12 2549*25c28e83SPiotr Jasiukajtis 2550*25c28e83SPiotr Jasiukajtis faddd %f26,%f24,%f26 2551*25c28e83SPiotr Jasiukajtis 2552*25c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 2553*25c28e83SPiotr Jasiukajtis 2554*25c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 2555*25c28e83SPiotr Jasiukajtis 2556*25c28e83SPiotr Jasiukajtis faddd %f26,%f20,%f26 2557*25c28e83SPiotr Jasiukajtis 2558*25c28e83SPiotr Jasiukajtis faddd %f32,%f4,%f6 2559*25c28e83SPiotr Jasiukajtis 2560*25c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f16 2561*25c28e83SPiotr Jasiukajtis ba,pt %icc,.FIXSIGN 2562*25c28e83SPiotr Jasiukajtis 2563*25c28e83SPiotr Jasiukajtis! delay slot 2564*25c28e83SPiotr Jasiukajtis faddd %f26,%f36,%f26 2565*25c28e83SPiotr Jasiukajtis 2566*25c28e83SPiotr Jasiukajtis .align 32 2567*25c28e83SPiotr Jasiukajtis.CASE7: 2568*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f0 2569*25c28e83SPiotr Jasiukajtis ldd [%l5+%o3],%f32 2570*25c28e83SPiotr Jasiukajtis add %l5,%o3,%l0 2571*25c28e83SPiotr Jasiukajtis 2572*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f10 2573*25c28e83SPiotr Jasiukajtis ldd [%l5+%o4],%f34 2574*25c28e83SPiotr Jasiukajtis add %l5,%o4,%l1 2575*25c28e83SPiotr Jasiukajtis 2576*25c28e83SPiotr Jasiukajtis fmuld %f20,%f20,%f20 2577*25c28e83SPiotr Jasiukajtis ldd [%l5+%o5],%f36 2578*25c28e83SPiotr Jasiukajtis add %l5,%o5,%l2 2579*25c28e83SPiotr Jasiukajtis 2580*25c28e83SPiotr Jasiukajtis fmuld %f0,%f32,%f4 2581*25c28e83SPiotr Jasiukajtis ldd [%l0+0x10],%f6 2582*25c28e83SPiotr Jasiukajtis add %fp,%o3,%o3 2583*25c28e83SPiotr Jasiukajtis 2584*25c28e83SPiotr Jasiukajtis fmuld %f10,%f34,%f14 2585*25c28e83SPiotr Jasiukajtis ldd [%l1+0x10],%f16 2586*25c28e83SPiotr Jasiukajtis add %fp,%o4,%o4 2587*25c28e83SPiotr Jasiukajtis 2588*25c28e83SPiotr Jasiukajtis fmuld %f20,%f36,%f24 2589*25c28e83SPiotr Jasiukajtis ldd [%l2+0x10],%f26 2590*25c28e83SPiotr Jasiukajtis add %fp,%o5,%o5 2591*25c28e83SPiotr Jasiukajtis 2592*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2593*25c28e83SPiotr Jasiukajtis ldd [%l0+0x20],%f32 2594*25c28e83SPiotr Jasiukajtis 2595*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2596*25c28e83SPiotr Jasiukajtis ldd [%l1+0x20],%f34 2597*25c28e83SPiotr Jasiukajtis 2598*25c28e83SPiotr Jasiukajtis faddd %f24,%f26,%f24 2599*25c28e83SPiotr Jasiukajtis ldd [%l2+0x20],%f36 2600*25c28e83SPiotr Jasiukajtis 2601*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2602*25c28e83SPiotr Jasiukajtis ldd [%l0+0x30],%f6 2603*25c28e83SPiotr Jasiukajtis 2604*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2605*25c28e83SPiotr Jasiukajtis ldd [%l1+0x30],%f16 2606*25c28e83SPiotr Jasiukajtis 2607*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2608*25c28e83SPiotr Jasiukajtis ldd [%l2+0x30],%f26 2609*25c28e83SPiotr Jasiukajtis 2610*25c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 2611*25c28e83SPiotr Jasiukajtis ldd [%o3+x0_1],%f32 2612*25c28e83SPiotr Jasiukajtis 2613*25c28e83SPiotr Jasiukajtis faddd %f14,%f34,%f14 2614*25c28e83SPiotr Jasiukajtis ldd [%o4+x1_1],%f34 2615*25c28e83SPiotr Jasiukajtis 2616*25c28e83SPiotr Jasiukajtis faddd %f24,%f36,%f24 2617*25c28e83SPiotr Jasiukajtis ldd [%o5+x2_1],%f36 2618*25c28e83SPiotr Jasiukajtis 2619*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2620*25c28e83SPiotr Jasiukajtis std %f2,[%fp+y0_0] 2621*25c28e83SPiotr Jasiukajtis 2622*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2623*25c28e83SPiotr Jasiukajtis std %f12,[%fp+y1_0] 2624*25c28e83SPiotr Jasiukajtis 2625*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2626*25c28e83SPiotr Jasiukajtis std %f22,[%fp+y2_0] 2627*25c28e83SPiotr Jasiukajtis 2628*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2629*25c28e83SPiotr Jasiukajtis 2630*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2631*25c28e83SPiotr Jasiukajtis 2632*25c28e83SPiotr Jasiukajtis faddd %f24,%f26,%f24 2633*25c28e83SPiotr Jasiukajtis 2634*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2635*25c28e83SPiotr Jasiukajtis 2636*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2637*25c28e83SPiotr Jasiukajtis 2638*25c28e83SPiotr Jasiukajtis fmuld %f20,%f24,%f24 2639*25c28e83SPiotr Jasiukajtis 2640*25c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 2641*25c28e83SPiotr Jasiukajtis ldd [%o3+y0_0],%f2 2642*25c28e83SPiotr Jasiukajtis 2643*25c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 2644*25c28e83SPiotr Jasiukajtis ldd [%o4+y1_0],%f12 2645*25c28e83SPiotr Jasiukajtis 2646*25c28e83SPiotr Jasiukajtis fmuld %f36,%f24,%f24 2647*25c28e83SPiotr Jasiukajtis ldd [%o5+y2_0],%f22 2648*25c28e83SPiotr Jasiukajtis 2649*25c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 2650*25c28e83SPiotr Jasiukajtis 2651*25c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 2652*25c28e83SPiotr Jasiukajtis 2653*25c28e83SPiotr Jasiukajtis faddd %f24,%f22,%f24 2654*25c28e83SPiotr Jasiukajtis 2655*25c28e83SPiotr Jasiukajtis faddd %f32,%f4,%f6 2656*25c28e83SPiotr Jasiukajtis 2657*25c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f16 2658*25c28e83SPiotr Jasiukajtis ba,pt %icc,.FIXSIGN 2659*25c28e83SPiotr Jasiukajtis 2660*25c28e83SPiotr Jasiukajtis! delay slot 2661*25c28e83SPiotr Jasiukajtis faddd %f36,%f24,%f26 2662*25c28e83SPiotr Jasiukajtis 2663*25c28e83SPiotr Jasiukajtis 2664*25c28e83SPiotr Jasiukajtis .align 32 2665*25c28e83SPiotr Jasiukajtis.ENDLOOP2: 2666*25c28e83SPiotr Jasiukajtis fmuld %f10,%f40,%f12 2667*25c28e83SPiotr Jasiukajtis add %l5,thresh,%g1 2668*25c28e83SPiotr Jasiukajtis faddd %f12,%f42,%f12 2669*25c28e83SPiotr Jasiukajtis st %f13,[%fp+n1] 2670*25c28e83SPiotr Jasiukajtis fsubd %f12,%f42,%f12 ! n 2671*25c28e83SPiotr Jasiukajtis fmuld %f12,%f46,%f14 2672*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f14 2673*25c28e83SPiotr Jasiukajtis fmuld %f12,%f48,%f16 2674*25c28e83SPiotr Jasiukajtis fsubd %f14,%f16,%f10 2675*25c28e83SPiotr Jasiukajtis ld [%fp+n1],%o4 2676*25c28e83SPiotr Jasiukajtis fsubd %f14,%f10,%f34 2677*25c28e83SPiotr Jasiukajtis and %o4,1,%o4 2678*25c28e83SPiotr Jasiukajtis fsubd %f34,%f16,%f34 2679*25c28e83SPiotr Jasiukajtis fmuld %f12,%f50,%f18 2680*25c28e83SPiotr Jasiukajtis sll %o4,3,%o4 2681*25c28e83SPiotr Jasiukajtis fsubd %f18,%f34,%f18 2682*25c28e83SPiotr Jasiukajtis ld [%g1+%o4],%f16 2683*25c28e83SPiotr Jasiukajtis fsubd %f10,%f18,%f14 2684*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f34 2685*25c28e83SPiotr Jasiukajtis add %l5,thresh+4,%o7 2686*25c28e83SPiotr Jasiukajtis fsubd %f34,%f18,%f34 2687*25c28e83SPiotr Jasiukajtis fmuld %f12,%f52,%f12 2688*25c28e83SPiotr Jasiukajtis fsubd %f12,%f34,%f12 2689*25c28e83SPiotr Jasiukajtis ld [%o7+%o4],%f18 2690*25c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f10 ! x 2691*25c28e83SPiotr Jasiukajtis fsubd %f14,%f10,%f14 2692*25c28e83SPiotr Jasiukajtis fands %f10,%f30,%f19 ! save signbit 2693*25c28e83SPiotr Jasiukajtis fabsd %f10,%f10 2694*25c28e83SPiotr Jasiukajtis std %f10,[%fp+x1_1] 2695*25c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f12 ! y 2696*25c28e83SPiotr Jasiukajtis fcmpgt32 %f16,%f10,%l1 2697*25c28e83SPiotr Jasiukajtis fxors %f12,%f19,%f12 2698*25c28e83SPiotr Jasiukajtis fands %f19,%f18,%f19 ! if (n & 1) clear sign bit 2699*25c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 2700*25c28e83SPiotr Jasiukajtis bne,pn %icc,1f 2701*25c28e83SPiotr Jasiukajtis! delay slot 2702*25c28e83SPiotr Jasiukajtis nop 2703*25c28e83SPiotr Jasiukajtis fpadd32s %f10,%f31,%f18 2704*25c28e83SPiotr Jasiukajtis ld [%fp+x1_1],%l1 2705*25c28e83SPiotr Jasiukajtis fand %f18,%f44,%f14 2706*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 2707*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 2708*25c28e83SPiotr Jasiukajtis fsubd %f10,%f14,%f10 2709*25c28e83SPiotr Jasiukajtis sub %l1,%o7,%l1 2710*25c28e83SPiotr Jasiukajtis srl %l1,10,%l1 2711*25c28e83SPiotr Jasiukajtis faddd %f10,%f12,%f10 2712*25c28e83SPiotr Jasiukajtis andn %l1,0x1f,%l1 2713*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f12 2714*25c28e83SPiotr Jasiukajtis add %l1,%o4,%l1 2715*25c28e83SPiotr Jasiukajtis fmuld %f12,%f58,%f16 2716*25c28e83SPiotr Jasiukajtis ldd [%l3+%l1],%f34 2717*25c28e83SPiotr Jasiukajtis faddd %f16,%f56,%f16 2718*25c28e83SPiotr Jasiukajtis fmuld %f12,%f62,%f14 2719*25c28e83SPiotr Jasiukajtis fmuld %f12,%f16,%f16 2720*25c28e83SPiotr Jasiukajtis faddd %f14,%f60,%f14 2721*25c28e83SPiotr Jasiukajtis faddd %f16,%f54,%f16 2722*25c28e83SPiotr Jasiukajtis fmuld %f12,%f14,%f14 2723*25c28e83SPiotr Jasiukajtis ldd [%g1+%l1],%f12 2724*25c28e83SPiotr Jasiukajtis fmuld %f10,%f16,%f16 2725*25c28e83SPiotr Jasiukajtis ldd [%l4+%l1],%f10 2726*25c28e83SPiotr Jasiukajtis fmuld %f14,%f34,%f14 2727*25c28e83SPiotr Jasiukajtis fmuld %f16,%f12,%f16 2728*25c28e83SPiotr Jasiukajtis faddd %f16,%f14,%f16 2729*25c28e83SPiotr Jasiukajtis faddd %f16,%f10,%f16 2730*25c28e83SPiotr Jasiukajtis ba,pt %icc,2f 2731*25c28e83SPiotr Jasiukajtis faddd %f16,%f34,%f16 2732*25c28e83SPiotr Jasiukajtis1: 2733*25c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f10 2734*25c28e83SPiotr Jasiukajtis ldd [%l5+%o4],%f34 2735*25c28e83SPiotr Jasiukajtis add %l5,%o4,%l1 2736*25c28e83SPiotr Jasiukajtis fmuld %f10,%f34,%f14 2737*25c28e83SPiotr Jasiukajtis ldd [%l1+0x10],%f16 2738*25c28e83SPiotr Jasiukajtis add %fp,%o4,%o4 2739*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2740*25c28e83SPiotr Jasiukajtis ldd [%l1+0x20],%f34 2741*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2742*25c28e83SPiotr Jasiukajtis ldd [%l1+0x30],%f16 2743*25c28e83SPiotr Jasiukajtis faddd %f14,%f34,%f14 2744*25c28e83SPiotr Jasiukajtis ldd [%o4+x1_1],%f34 2745*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2746*25c28e83SPiotr Jasiukajtis std %f12,[%fp+y1_0] 2747*25c28e83SPiotr Jasiukajtis faddd %f14,%f16,%f14 2748*25c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 2749*25c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 2750*25c28e83SPiotr Jasiukajtis ldd [%o4+y1_0],%f12 2751*25c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 2752*25c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f16 2753*25c28e83SPiotr Jasiukajtis2: 2754*25c28e83SPiotr Jasiukajtis add %l5,thresh-4,%g1 2755*25c28e83SPiotr Jasiukajtis ld [%fp+n1],%o4 2756*25c28e83SPiotr Jasiukajtis and %o4,2,%o4 2757*25c28e83SPiotr Jasiukajtis sll %o4,2,%o4 2758*25c28e83SPiotr Jasiukajtis ld [%g1+%o4],%f18 2759*25c28e83SPiotr Jasiukajtis fxors %f19,%f18,%f19 2760*25c28e83SPiotr Jasiukajtis fors %f16,%f19,%f16 ! tack on sign 2761*25c28e83SPiotr Jasiukajtis st %f16,[%o1] 2762*25c28e83SPiotr Jasiukajtis st %f17,[%o1+4] 2763*25c28e83SPiotr Jasiukajtis 2764*25c28e83SPiotr Jasiukajtis.ENDLOOP1: 2765*25c28e83SPiotr Jasiukajtis fmuld %f0,%f40,%f2 2766*25c28e83SPiotr Jasiukajtis add %l5,thresh,%g1 2767*25c28e83SPiotr Jasiukajtis faddd %f2,%f42,%f2 2768*25c28e83SPiotr Jasiukajtis st %f3,[%fp+n0] 2769*25c28e83SPiotr Jasiukajtis fsubd %f2,%f42,%f2 ! n 2770*25c28e83SPiotr Jasiukajtis fmuld %f2,%f46,%f4 2771*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f4 2772*25c28e83SPiotr Jasiukajtis fmuld %f2,%f48,%f6 2773*25c28e83SPiotr Jasiukajtis fsubd %f4,%f6,%f0 2774*25c28e83SPiotr Jasiukajtis ld [%fp+n0],%o3 2775*25c28e83SPiotr Jasiukajtis fsubd %f4,%f0,%f32 2776*25c28e83SPiotr Jasiukajtis and %o3,1,%o3 2777*25c28e83SPiotr Jasiukajtis fsubd %f32,%f6,%f32 2778*25c28e83SPiotr Jasiukajtis fmuld %f2,%f50,%f8 2779*25c28e83SPiotr Jasiukajtis sll %o3,3,%o3 2780*25c28e83SPiotr Jasiukajtis fsubd %f8,%f32,%f8 2781*25c28e83SPiotr Jasiukajtis ld [%g1+%o3],%f6 2782*25c28e83SPiotr Jasiukajtis fsubd %f0,%f8,%f4 2783*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f32 2784*25c28e83SPiotr Jasiukajtis add %l5,thresh+4,%o7 2785*25c28e83SPiotr Jasiukajtis fsubd %f32,%f8,%f32 2786*25c28e83SPiotr Jasiukajtis fmuld %f2,%f52,%f2 2787*25c28e83SPiotr Jasiukajtis fsubd %f2,%f32,%f2 2788*25c28e83SPiotr Jasiukajtis ld [%o7+%o3],%f8 2789*25c28e83SPiotr Jasiukajtis fsubd %f4,%f2,%f0 ! x 2790*25c28e83SPiotr Jasiukajtis fsubd %f4,%f0,%f4 2791*25c28e83SPiotr Jasiukajtis fands %f0,%f30,%f9 ! save signbit 2792*25c28e83SPiotr Jasiukajtis fabsd %f0,%f0 2793*25c28e83SPiotr Jasiukajtis std %f0,[%fp+x0_1] 2794*25c28e83SPiotr Jasiukajtis fsubd %f4,%f2,%f2 ! y 2795*25c28e83SPiotr Jasiukajtis fcmpgt32 %f6,%f0,%l0 2796*25c28e83SPiotr Jasiukajtis fxors %f2,%f9,%f2 2797*25c28e83SPiotr Jasiukajtis fands %f9,%f8,%f9 ! if (n & 1) clear sign bit 2798*25c28e83SPiotr Jasiukajtis andcc %l0,2,%g0 2799*25c28e83SPiotr Jasiukajtis bne,pn %icc,1f 2800*25c28e83SPiotr Jasiukajtis! delay slot 2801*25c28e83SPiotr Jasiukajtis nop 2802*25c28e83SPiotr Jasiukajtis fpadd32s %f0,%f31,%f8 2803*25c28e83SPiotr Jasiukajtis ld [%fp+x0_1],%l0 2804*25c28e83SPiotr Jasiukajtis fand %f8,%f44,%f4 2805*25c28e83SPiotr Jasiukajtis sethi %hi(0x3fc3c000),%o7 2806*25c28e83SPiotr Jasiukajtis add %l3,8,%g1 2807*25c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f0 2808*25c28e83SPiotr Jasiukajtis sub %l0,%o7,%l0 2809*25c28e83SPiotr Jasiukajtis srl %l0,10,%l0 2810*25c28e83SPiotr Jasiukajtis faddd %f0,%f2,%f0 2811*25c28e83SPiotr Jasiukajtis andn %l0,0x1f,%l0 2812*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f2 2813*25c28e83SPiotr Jasiukajtis add %l0,%o3,%l0 2814*25c28e83SPiotr Jasiukajtis fmuld %f2,%f58,%f6 2815*25c28e83SPiotr Jasiukajtis ldd [%l3+%l0],%f32 2816*25c28e83SPiotr Jasiukajtis faddd %f6,%f56,%f6 2817*25c28e83SPiotr Jasiukajtis fmuld %f2,%f62,%f4 2818*25c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 2819*25c28e83SPiotr Jasiukajtis faddd %f4,%f60,%f4 2820*25c28e83SPiotr Jasiukajtis faddd %f6,%f54,%f6 2821*25c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 2822*25c28e83SPiotr Jasiukajtis ldd [%g1+%l0],%f2 2823*25c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 2824*25c28e83SPiotr Jasiukajtis ldd [%l4+%l0],%f0 2825*25c28e83SPiotr Jasiukajtis fmuld %f4,%f32,%f4 2826*25c28e83SPiotr Jasiukajtis fmuld %f6,%f2,%f6 2827*25c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 2828*25c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 2829*25c28e83SPiotr Jasiukajtis ba,pt %icc,2f 2830*25c28e83SPiotr Jasiukajtis faddd %f6,%f32,%f6 2831*25c28e83SPiotr Jasiukajtis1: 2832*25c28e83SPiotr Jasiukajtis fmuld %f0,%f0,%f0 2833*25c28e83SPiotr Jasiukajtis ldd [%l5+%o3],%f32 2834*25c28e83SPiotr Jasiukajtis add %l5,%o3,%l0 2835*25c28e83SPiotr Jasiukajtis fmuld %f0,%f32,%f4 2836*25c28e83SPiotr Jasiukajtis ldd [%l0+0x10],%f6 2837*25c28e83SPiotr Jasiukajtis add %fp,%o3,%o3 2838*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2839*25c28e83SPiotr Jasiukajtis ldd [%l0+0x20],%f32 2840*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2841*25c28e83SPiotr Jasiukajtis ldd [%l0+0x30],%f6 2842*25c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 2843*25c28e83SPiotr Jasiukajtis ldd [%o3+x0_1],%f32 2844*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2845*25c28e83SPiotr Jasiukajtis std %f2,[%fp+y0_0] 2846*25c28e83SPiotr Jasiukajtis faddd %f4,%f6,%f4 2847*25c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 2848*25c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 2849*25c28e83SPiotr Jasiukajtis ldd [%o3+y0_0],%f2 2850*25c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 2851*25c28e83SPiotr Jasiukajtis faddd %f32,%f4,%f6 2852*25c28e83SPiotr Jasiukajtis2: 2853*25c28e83SPiotr Jasiukajtis add %l5,thresh-4,%g1 2854*25c28e83SPiotr Jasiukajtis ld [%fp+n0],%o3 2855*25c28e83SPiotr Jasiukajtis and %o3,2,%o3 2856*25c28e83SPiotr Jasiukajtis sll %o3,2,%o3 2857*25c28e83SPiotr Jasiukajtis ld [%g1+%o3],%f8 2858*25c28e83SPiotr Jasiukajtis fxors %f9,%f8,%f9 2859*25c28e83SPiotr Jasiukajtis fors %f6,%f9,%f6 ! tack on sign 2860*25c28e83SPiotr Jasiukajtis st %f6,[%o0] 2861*25c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 2862*25c28e83SPiotr Jasiukajtis 2863*25c28e83SPiotr Jasiukajtis.ENDLOOP0: 2864*25c28e83SPiotr Jasiukajtis 2865*25c28e83SPiotr Jasiukajtis! check for huge arguments remaining 2866*25c28e83SPiotr Jasiukajtis 2867*25c28e83SPiotr Jasiukajtis tst LIM_l6 2868*25c28e83SPiotr Jasiukajtis be,pt %icc,.exit 2869*25c28e83SPiotr Jasiukajtis! delay slot 2870*25c28e83SPiotr Jasiukajtis nop 2871*25c28e83SPiotr Jasiukajtis 2872*25c28e83SPiotr Jasiukajtis! ========== huge range (use C code) ========== 2873*25c28e83SPiotr Jasiukajtis 2874*25c28e83SPiotr Jasiukajtis#ifdef __sparcv9 2875*25c28e83SPiotr Jasiukajtis ldx [%fp+xsave],%o1 2876*25c28e83SPiotr Jasiukajtis ldx [%fp+ysave],%o3 2877*25c28e83SPiotr Jasiukajtis#else 2878*25c28e83SPiotr Jasiukajtis ld [%fp+xsave],%o1 2879*25c28e83SPiotr Jasiukajtis ld [%fp+ysave],%o3 2880*25c28e83SPiotr Jasiukajtis#endif 2881*25c28e83SPiotr Jasiukajtis ld [%fp+nsave],%o0 2882*25c28e83SPiotr Jasiukajtis ld [%fp+sxsave],%o2 2883*25c28e83SPiotr Jasiukajtis ld [%fp+sysave],%o4 2884*25c28e83SPiotr Jasiukajtis sra %o2,0,%o2 ! sign-extend for V9 2885*25c28e83SPiotr Jasiukajtis sra %o4,0,%o4 2886*25c28e83SPiotr Jasiukajtis call __vlibm_vsin_big 2887*25c28e83SPiotr Jasiukajtis mov %l7,%o5 ! delay slot 2888*25c28e83SPiotr Jasiukajtis 2889*25c28e83SPiotr Jasiukajtis.exit: 2890*25c28e83SPiotr Jasiukajtis ret 2891*25c28e83SPiotr Jasiukajtis restore 2892*25c28e83SPiotr Jasiukajtis 2893*25c28e83SPiotr Jasiukajtis 2894*25c28e83SPiotr Jasiukajtis .align 32 2895*25c28e83SPiotr Jasiukajtis.SKIP0: 2896*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 2897*25c28e83SPiotr Jasiukajtis ble,pn %icc,.ENDLOOP0 2898*25c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 2899*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 2900*25c28e83SPiotr Jasiukajtis andn %l1,%i5,%l0 ! hx &= ~0x80000000 2901*25c28e83SPiotr Jasiukajtis fmovs %f10,%f0 2902*25c28e83SPiotr Jasiukajtis ld [%i1+4],%f1 2903*25c28e83SPiotr Jasiukajtis ba,pt %icc,.LOOP0 2904*25c28e83SPiotr Jasiukajtis! delay slot 2905*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 2906*25c28e83SPiotr Jasiukajtis 2907*25c28e83SPiotr Jasiukajtis 2908*25c28e83SPiotr Jasiukajtis .align 32 2909*25c28e83SPiotr Jasiukajtis.SKIP1: 2910*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 2911*25c28e83SPiotr Jasiukajtis ble,pn %icc,.ENDLOOP1 2912*25c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 2913*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 2914*25c28e83SPiotr Jasiukajtis andn %l2,%i5,%l1 ! hx &= ~0x80000000 2915*25c28e83SPiotr Jasiukajtis fmovs %f20,%f10 2916*25c28e83SPiotr Jasiukajtis ld [%i1+4],%f11 2917*25c28e83SPiotr Jasiukajtis ba,pt %icc,.LOOP1 2918*25c28e83SPiotr Jasiukajtis! delay slot 2919*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 2920*25c28e83SPiotr Jasiukajtis 2921*25c28e83SPiotr Jasiukajtis 2922*25c28e83SPiotr Jasiukajtis .align 32 2923*25c28e83SPiotr Jasiukajtis.SKIP2: 2924*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 2925*25c28e83SPiotr Jasiukajtis ble,pn %icc,.ENDLOOP2 2926*25c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 2927*25c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 2928*25c28e83SPiotr Jasiukajtis ld [%i1],%l2 2929*25c28e83SPiotr Jasiukajtis ld [%i1],%f20 2930*25c28e83SPiotr Jasiukajtis ld [%i1+4],%f21 2931*25c28e83SPiotr Jasiukajtis andn %l2,%i5,%l2 ! hx &= ~0x80000000 2932*25c28e83SPiotr Jasiukajtis ba,pt %icc,.LOOP2 2933*25c28e83SPiotr Jasiukajtis! delay slot 2934*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 2935*25c28e83SPiotr Jasiukajtis 2936*25c28e83SPiotr Jasiukajtis 2937*25c28e83SPiotr Jasiukajtis .align 32 2938*25c28e83SPiotr Jasiukajtis.BIG0: 2939*25c28e83SPiotr Jasiukajtis sethi %hi(0x7ff00000),%o7 2940*25c28e83SPiotr Jasiukajtis cmp %l0,%o7 2941*25c28e83SPiotr Jasiukajtis bl,a,pt %icc,1f ! if hx < 0x7ff00000 2942*25c28e83SPiotr Jasiukajtis! delay slot, annulled if branch not taken 2943*25c28e83SPiotr Jasiukajtis mov %l7,LIM_l6 ! set biguns flag or 2944*25c28e83SPiotr Jasiukajtis fsubd %f0,%f0,%f0 ! y = x - x 2945*25c28e83SPiotr Jasiukajtis st %f0,[%o0] 2946*25c28e83SPiotr Jasiukajtis st %f1,[%o0+4] 2947*25c28e83SPiotr Jasiukajtis1: 2948*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 2949*25c28e83SPiotr Jasiukajtis ble,pn %icc,.ENDLOOP0 2950*25c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 2951*25c28e83SPiotr Jasiukajtis andn %l1,%i5,%l0 ! hx &= ~0x80000000 2952*25c28e83SPiotr Jasiukajtis fmovd %f10,%f0 2953*25c28e83SPiotr Jasiukajtis ba,pt %icc,.LOOP0 2954*25c28e83SPiotr Jasiukajtis! delay slot 2955*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 2956*25c28e83SPiotr Jasiukajtis 2957*25c28e83SPiotr Jasiukajtis 2958*25c28e83SPiotr Jasiukajtis .align 32 2959*25c28e83SPiotr Jasiukajtis.BIG1: 2960*25c28e83SPiotr Jasiukajtis sethi %hi(0x7ff00000),%o7 2961*25c28e83SPiotr Jasiukajtis cmp %l1,%o7 2962*25c28e83SPiotr Jasiukajtis bl,a,pt %icc,1f ! if hx < 0x7ff00000 2963*25c28e83SPiotr Jasiukajtis! delay slot, annulled if branch not taken 2964*25c28e83SPiotr Jasiukajtis mov %l7,LIM_l6 ! set biguns flag or 2965*25c28e83SPiotr Jasiukajtis fsubd %f10,%f10,%f10 ! y = x - x 2966*25c28e83SPiotr Jasiukajtis st %f10,[%o1] 2967*25c28e83SPiotr Jasiukajtis st %f11,[%o1+4] 2968*25c28e83SPiotr Jasiukajtis1: 2969*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 2970*25c28e83SPiotr Jasiukajtis ble,pn %icc,.ENDLOOP1 2971*25c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 2972*25c28e83SPiotr Jasiukajtis andn %l2,%i5,%l1 ! hx &= ~0x80000000 2973*25c28e83SPiotr Jasiukajtis fmovd %f20,%f10 2974*25c28e83SPiotr Jasiukajtis ba,pt %icc,.LOOP1 2975*25c28e83SPiotr Jasiukajtis! delay slot 2976*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 2977*25c28e83SPiotr Jasiukajtis 2978*25c28e83SPiotr Jasiukajtis 2979*25c28e83SPiotr Jasiukajtis .align 32 2980*25c28e83SPiotr Jasiukajtis.BIG2: 2981*25c28e83SPiotr Jasiukajtis sethi %hi(0x7ff00000),%o7 2982*25c28e83SPiotr Jasiukajtis cmp %l2,%o7 2983*25c28e83SPiotr Jasiukajtis bl,a,pt %icc,1f ! if hx < 0x7ff00000 2984*25c28e83SPiotr Jasiukajtis! delay slot, annulled if branch not taken 2985*25c28e83SPiotr Jasiukajtis mov %l7,LIM_l6 ! set biguns flag or 2986*25c28e83SPiotr Jasiukajtis fsubd %f20,%f20,%f20 ! y = x - x 2987*25c28e83SPiotr Jasiukajtis st %f20,[%o2] 2988*25c28e83SPiotr Jasiukajtis st %f21,[%o2+4] 2989*25c28e83SPiotr Jasiukajtis1: 2990*25c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 2991*25c28e83SPiotr Jasiukajtis ble,pn %icc,.ENDLOOP2 2992*25c28e83SPiotr Jasiukajtis! delay slot 2993*25c28e83SPiotr Jasiukajtis nop 2994*25c28e83SPiotr Jasiukajtis ld [%i1],%l2 2995*25c28e83SPiotr Jasiukajtis ld [%i1],%f20 2996*25c28e83SPiotr Jasiukajtis ld [%i1+4],%f21 2997*25c28e83SPiotr Jasiukajtis andn %l2,%i5,%l2 ! hx &= ~0x80000000 2998*25c28e83SPiotr Jasiukajtis ba,pt %icc,.LOOP2 2999*25c28e83SPiotr Jasiukajtis! delay slot 3000*25c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 3001*25c28e83SPiotr Jasiukajtis 3002*25c28e83SPiotr Jasiukajtis SET_SIZE(__vsin) 3003*25c28e83SPiotr Jasiukajtis 3004