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