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