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