125c28e83SPiotr Jasiukajtis/* 225c28e83SPiotr Jasiukajtis * CDDL HEADER START 325c28e83SPiotr Jasiukajtis * 425c28e83SPiotr Jasiukajtis * The contents of this file are subject to the terms of the 525c28e83SPiotr Jasiukajtis * Common Development and Distribution License (the "License"). 625c28e83SPiotr Jasiukajtis * You may not use this file except in compliance with the License. 725c28e83SPiotr Jasiukajtis * 825c28e83SPiotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 925c28e83SPiotr Jasiukajtis * or http://www.opensolaris.org/os/licensing. 1025c28e83SPiotr Jasiukajtis * See the License for the specific language governing permissions 1125c28e83SPiotr Jasiukajtis * and limitations under the License. 1225c28e83SPiotr Jasiukajtis * 1325c28e83SPiotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each 1425c28e83SPiotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1525c28e83SPiotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the 1625c28e83SPiotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying 1725c28e83SPiotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner] 1825c28e83SPiotr Jasiukajtis * 1925c28e83SPiotr Jasiukajtis * CDDL HEADER END 2025c28e83SPiotr Jasiukajtis */ 2125c28e83SPiotr Jasiukajtis/* 2225c28e83SPiotr Jasiukajtis * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 2325c28e83SPiotr Jasiukajtis */ 2425c28e83SPiotr Jasiukajtis/* 2525c28e83SPiotr Jasiukajtis * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2625c28e83SPiotr Jasiukajtis * Use is subject to license terms. 2725c28e83SPiotr Jasiukajtis */ 2825c28e83SPiotr Jasiukajtis 2925c28e83SPiotr Jasiukajtis .file "__vsin_ultra3.S" 3025c28e83SPiotr Jasiukajtis 3125c28e83SPiotr Jasiukajtis#include "libm.h" 3225c28e83SPiotr Jasiukajtis .weak __vsin 3325c28e83SPiotr Jasiukajtis .type __vsin,#function 3425c28e83SPiotr Jasiukajtis __vsin = __vsin_ultra3 3525c28e83SPiotr Jasiukajtis 3625c28e83SPiotr Jasiukajtis RO_DATA 3725c28e83SPiotr Jasiukajtis .align 64 3825c28e83SPiotr Jasiukajtisconstants: 3925c28e83SPiotr Jasiukajtis .word 0x42c80000,0x00000000 ! 3 * 2^44 4025c28e83SPiotr Jasiukajtis .word 0x43380000,0x00000000 ! 3 * 2^51 4125c28e83SPiotr Jasiukajtis .word 0x3fe45f30,0x6dc9c883 ! invpio2 4225c28e83SPiotr Jasiukajtis .word 0x3ff921fb,0x54442c00 ! pio2_1 4325c28e83SPiotr Jasiukajtis .word 0x3d318469,0x898cc400 ! pio2_2 4425c28e83SPiotr Jasiukajtis .word 0x3a71701b,0x839a2520 ! pio2_3 4525c28e83SPiotr Jasiukajtis .word 0xbfc55555,0x55555533 ! pp1 4625c28e83SPiotr Jasiukajtis .word 0x3f811111,0x10e7d53b ! pp2 4725c28e83SPiotr Jasiukajtis .word 0xbf2a0167,0xe6b3cf9b ! pp3 4825c28e83SPiotr Jasiukajtis .word 0xbfdfffff,0xffffff65 ! qq1 4925c28e83SPiotr Jasiukajtis .word 0x3fa55555,0x54f88ed0 ! qq2 5025c28e83SPiotr Jasiukajtis .word 0xbf56c12c,0xdd185f60 ! qq3 5125c28e83SPiotr Jasiukajtis 5225c28e83SPiotr Jasiukajtis! local storage indices 5325c28e83SPiotr Jasiukajtis 5425c28e83SPiotr Jasiukajtis#define xsave STACK_BIAS-0x8 5525c28e83SPiotr Jasiukajtis#define ysave STACK_BIAS-0x10 5625c28e83SPiotr Jasiukajtis#define nsave STACK_BIAS-0x14 5725c28e83SPiotr Jasiukajtis#define sxsave STACK_BIAS-0x18 5825c28e83SPiotr Jasiukajtis#define sysave STACK_BIAS-0x1c 5925c28e83SPiotr Jasiukajtis#define biguns STACK_BIAS-0x20 6025c28e83SPiotr Jasiukajtis#define nk3 STACK_BIAS-0x24 6125c28e83SPiotr Jasiukajtis#define nk2 STACK_BIAS-0x28 6225c28e83SPiotr Jasiukajtis#define nk1 STACK_BIAS-0x2c 6325c28e83SPiotr Jasiukajtis#define nk0 STACK_BIAS-0x30 6425c28e83SPiotr Jasiukajtis#define junk STACK_BIAS-0x38 6525c28e83SPiotr Jasiukajtis! sizeof temp storage - must be a multiple of 16 for V9 6625c28e83SPiotr Jasiukajtis#define tmps 0x40 6725c28e83SPiotr Jasiukajtis 6825c28e83SPiotr Jasiukajtis! register use 6925c28e83SPiotr Jasiukajtis 7025c28e83SPiotr Jasiukajtis! i0 n 7125c28e83SPiotr Jasiukajtis! i1 x 7225c28e83SPiotr Jasiukajtis! i2 stridex 7325c28e83SPiotr Jasiukajtis! i3 y 7425c28e83SPiotr Jasiukajtis! i4 stridey 7525c28e83SPiotr Jasiukajtis! i5 0x80000000 7625c28e83SPiotr Jasiukajtis 7725c28e83SPiotr Jasiukajtis! l0 hx0 7825c28e83SPiotr Jasiukajtis! l1 hx1 7925c28e83SPiotr Jasiukajtis! l2 hx2 8025c28e83SPiotr Jasiukajtis! l3 hx3 8125c28e83SPiotr Jasiukajtis! l4 k0 8225c28e83SPiotr Jasiukajtis! l5 k1 8325c28e83SPiotr Jasiukajtis! l6 k2 8425c28e83SPiotr Jasiukajtis! l7 k3 8525c28e83SPiotr Jasiukajtis 8625c28e83SPiotr Jasiukajtis! the following are 64-bit registers in both V8+ and V9 8725c28e83SPiotr Jasiukajtis 8825c28e83SPiotr Jasiukajtis! g1 __vlibm_TBL_sincos2 8925c28e83SPiotr Jasiukajtis! g5 scratch 9025c28e83SPiotr Jasiukajtis 9125c28e83SPiotr Jasiukajtis! o0 py0 9225c28e83SPiotr Jasiukajtis! o1 py1 9325c28e83SPiotr Jasiukajtis! o2 py2 9425c28e83SPiotr Jasiukajtis! o3 py3 9525c28e83SPiotr Jasiukajtis! o4 0x3e400000 9625c28e83SPiotr Jasiukajtis! o5 0x3fe921fb,0x4099251e 9725c28e83SPiotr Jasiukajtis! o7 scratch 9825c28e83SPiotr Jasiukajtis 9925c28e83SPiotr Jasiukajtis! f0 hx0 100*55fea89dSDan Cross! f2 101*55fea89dSDan Cross! f4 102*55fea89dSDan Cross! f6 10325c28e83SPiotr Jasiukajtis! f8 hx1 104*55fea89dSDan Cross! f10 105*55fea89dSDan Cross! f12 106*55fea89dSDan Cross! f14 10725c28e83SPiotr Jasiukajtis! f16 hx2 108*55fea89dSDan Cross! f18 109*55fea89dSDan Cross! f20 110*55fea89dSDan Cross! f22 11125c28e83SPiotr Jasiukajtis! f24 hx3 112*55fea89dSDan Cross! f26 113*55fea89dSDan Cross! f28 114*55fea89dSDan Cross! f30 115*55fea89dSDan Cross! f32 116*55fea89dSDan Cross! f34 11725c28e83SPiotr Jasiukajtis! f36 11825c28e83SPiotr Jasiukajtis! f38 11925c28e83SPiotr Jasiukajtis 12025c28e83SPiotr Jasiukajtis#define c3two44 %f40 12125c28e83SPiotr Jasiukajtis#define c3two51 %f42 12225c28e83SPiotr Jasiukajtis#define invpio2 %f44 12325c28e83SPiotr Jasiukajtis#define pio2_1 %f46 12425c28e83SPiotr Jasiukajtis#define pio2_2 %f48 12525c28e83SPiotr Jasiukajtis#define pio2_3 %f50 12625c28e83SPiotr Jasiukajtis#define pp1 %f52 12725c28e83SPiotr Jasiukajtis#define pp2 %f54 12825c28e83SPiotr Jasiukajtis#define pp3 %f56 12925c28e83SPiotr Jasiukajtis#define qq1 %f58 13025c28e83SPiotr Jasiukajtis#define qq2 %f60 13125c28e83SPiotr Jasiukajtis#define qq3 %f62 13225c28e83SPiotr Jasiukajtis 13325c28e83SPiotr Jasiukajtis ENTRY(__vsin_ultra3) 13425c28e83SPiotr Jasiukajtis save %sp,-SA(MINFRAME)-tmps,%sp 13525c28e83SPiotr Jasiukajtis PIC_SETUP(l7) 13625c28e83SPiotr Jasiukajtis PIC_SET(l7,constants,o0) 13725c28e83SPiotr Jasiukajtis PIC_SET(l7,__vlibm_TBL_sincos2,o1) 13825c28e83SPiotr Jasiukajtis mov %o1,%g1 13925c28e83SPiotr Jasiukajtis wr %g0,0x82,%asi ! set %asi for non-faulting loads 14025c28e83SPiotr Jasiukajtis#ifdef __sparcv9 14125c28e83SPiotr Jasiukajtis stx %i1,[%fp+xsave] ! save arguments 14225c28e83SPiotr Jasiukajtis stx %i3,[%fp+ysave] 14325c28e83SPiotr Jasiukajtis#else 14425c28e83SPiotr Jasiukajtis st %i1,[%fp+xsave] ! save arguments 14525c28e83SPiotr Jasiukajtis st %i3,[%fp+ysave] 14625c28e83SPiotr Jasiukajtis#endif 14725c28e83SPiotr Jasiukajtis st %i0,[%fp+nsave] 14825c28e83SPiotr Jasiukajtis st %i2,[%fp+sxsave] 14925c28e83SPiotr Jasiukajtis st %i4,[%fp+sysave] 15025c28e83SPiotr Jasiukajtis st %g0,[%fp+biguns] ! biguns = 0 15125c28e83SPiotr Jasiukajtis ldd [%o0+0x00],c3two44 ! load/set up constants 15225c28e83SPiotr Jasiukajtis ldd [%o0+0x08],c3two51 15325c28e83SPiotr Jasiukajtis ldd [%o0+0x10],invpio2 15425c28e83SPiotr Jasiukajtis ldd [%o0+0x18],pio2_1 15525c28e83SPiotr Jasiukajtis ldd [%o0+0x20],pio2_2 15625c28e83SPiotr Jasiukajtis ldd [%o0+0x28],pio2_3 15725c28e83SPiotr Jasiukajtis ldd [%o0+0x30],pp1 15825c28e83SPiotr Jasiukajtis ldd [%o0+0x38],pp2 15925c28e83SPiotr Jasiukajtis ldd [%o0+0x40],pp3 16025c28e83SPiotr Jasiukajtis ldd [%o0+0x48],qq1 16125c28e83SPiotr Jasiukajtis ldd [%o0+0x50],qq2 16225c28e83SPiotr Jasiukajtis ldd [%o0+0x58],qq3 16325c28e83SPiotr Jasiukajtis sethi %hi(0x80000000),%i5 16425c28e83SPiotr Jasiukajtis sethi %hi(0x3e400000),%o4 16525c28e83SPiotr Jasiukajtis sethi %hi(0x3fe921fb),%o5 16625c28e83SPiotr Jasiukajtis or %o5,%lo(0x3fe921fb),%o5 16725c28e83SPiotr Jasiukajtis sllx %o5,32,%o5 16825c28e83SPiotr Jasiukajtis sethi %hi(0x4099251e),%o7 16925c28e83SPiotr Jasiukajtis or %o7,%lo(0x4099251e),%o7 17025c28e83SPiotr Jasiukajtis or %o5,%o7,%o5 17125c28e83SPiotr Jasiukajtis sll %i2,3,%i2 ! scale strides 17225c28e83SPiotr Jasiukajtis sll %i4,3,%i4 17325c28e83SPiotr Jasiukajtis add %fp,junk,%o1 ! loop prologue 17425c28e83SPiotr Jasiukajtis add %fp,junk,%o2 17525c28e83SPiotr Jasiukajtis add %fp,junk,%o3 17625c28e83SPiotr Jasiukajtis ld [%i1],%l0 ! *x 17725c28e83SPiotr Jasiukajtis ld [%i1],%f0 17825c28e83SPiotr Jasiukajtis ld [%i1+4],%f3 17925c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 ! mask off sign 18025c28e83SPiotr Jasiukajtis ba .loop0 18125c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 18225c28e83SPiotr Jasiukajtis 18325c28e83SPiotr Jasiukajtis! 16-byte aligned 18425c28e83SPiotr Jasiukajtis .align 16 18525c28e83SPiotr Jasiukajtis.loop0: 18625c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l1 ! preload next argument 18725c28e83SPiotr Jasiukajtis sub %l0,%o4,%g5 18825c28e83SPiotr Jasiukajtis sub %o5,%l0,%o7 18925c28e83SPiotr Jasiukajtis fabss %f0,%f2 19025c28e83SPiotr Jasiukajtis 19125c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f8 19225c28e83SPiotr Jasiukajtis orcc %o7,%g5,%g0 19325c28e83SPiotr Jasiukajtis mov %i3,%o0 ! py0 = y 19425c28e83SPiotr Jasiukajtis bl,pn %icc,.range0 ! hx < 0x3e400000 or hx > 0x4099251e 19525c28e83SPiotr Jasiukajtis 19625c28e83SPiotr Jasiukajtis! delay slot 19725c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f11 19825c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 19925c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 20025c28e83SPiotr Jasiukajtis ble,pn %icc,.last1 20125c28e83SPiotr Jasiukajtis 20225c28e83SPiotr Jasiukajtis! delay slot 20325c28e83SPiotr Jasiukajtis andn %l1,%i5,%l1 20425c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 20525c28e83SPiotr Jasiukajtis faddd %f2,c3two44,%f4 20625c28e83SPiotr Jasiukajtis st %f15,[%o1+4] 20725c28e83SPiotr Jasiukajtis 20825c28e83SPiotr Jasiukajtis.loop1: 20925c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l2 ! preload next argument 21025c28e83SPiotr Jasiukajtis sub %l1,%o4,%g5 21125c28e83SPiotr Jasiukajtis sub %o5,%l1,%o7 21225c28e83SPiotr Jasiukajtis fabss %f8,%f10 21325c28e83SPiotr Jasiukajtis 21425c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f16 21525c28e83SPiotr Jasiukajtis orcc %o7,%g5,%g0 21625c28e83SPiotr Jasiukajtis mov %i3,%o1 ! py1 = y 21725c28e83SPiotr Jasiukajtis bl,pn %icc,.range1 ! hx < 0x3e400000 or hx > 0x4099251e 21825c28e83SPiotr Jasiukajtis 21925c28e83SPiotr Jasiukajtis! delay slot 22025c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f19 22125c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 22225c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 22325c28e83SPiotr Jasiukajtis ble,pn %icc,.last2 22425c28e83SPiotr Jasiukajtis 22525c28e83SPiotr Jasiukajtis! delay slot 22625c28e83SPiotr Jasiukajtis andn %l2,%i5,%l2 22725c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 22825c28e83SPiotr Jasiukajtis faddd %f10,c3two44,%f12 22925c28e83SPiotr Jasiukajtis st %f23,[%o2+4] 23025c28e83SPiotr Jasiukajtis 23125c28e83SPiotr Jasiukajtis.loop2: 23225c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l3 ! preload next argument 23325c28e83SPiotr Jasiukajtis sub %l2,%o4,%g5 23425c28e83SPiotr Jasiukajtis sub %o5,%l2,%o7 23525c28e83SPiotr Jasiukajtis fabss %f16,%f18 23625c28e83SPiotr Jasiukajtis 23725c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f24 23825c28e83SPiotr Jasiukajtis orcc %o7,%g5,%g0 23925c28e83SPiotr Jasiukajtis mov %i3,%o2 ! py2 = y 24025c28e83SPiotr Jasiukajtis bl,pn %icc,.range2 ! hx < 0x3e400000 or hx > 0x4099251e 24125c28e83SPiotr Jasiukajtis 24225c28e83SPiotr Jasiukajtis! delay slot 24325c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f27 24425c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 24525c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 24625c28e83SPiotr Jasiukajtis ble,pn %icc,.last3 24725c28e83SPiotr Jasiukajtis 24825c28e83SPiotr Jasiukajtis! delay slot 24925c28e83SPiotr Jasiukajtis andn %l3,%i5,%l3 25025c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 25125c28e83SPiotr Jasiukajtis faddd %f18,c3two44,%f20 25225c28e83SPiotr Jasiukajtis st %f31,[%o3+4] 25325c28e83SPiotr Jasiukajtis 25425c28e83SPiotr Jasiukajtis.loop3: 25525c28e83SPiotr Jasiukajtis sub %l3,%o4,%g5 25625c28e83SPiotr Jasiukajtis sub %o5,%l3,%o7 25725c28e83SPiotr Jasiukajtis fabss %f24,%f26 25825c28e83SPiotr Jasiukajtis st %f5,[%fp+nk0] 25925c28e83SPiotr Jasiukajtis 26025c28e83SPiotr Jasiukajtis orcc %o7,%g5,%g0 26125c28e83SPiotr Jasiukajtis mov %i3,%o3 ! py3 = y 26225c28e83SPiotr Jasiukajtis bl,pn %icc,.range3 ! hx < 0x3e400000 or > hx 0x4099251e 26325c28e83SPiotr Jasiukajtis! delay slot 26425c28e83SPiotr Jasiukajtis st %f13,[%fp+nk1] 26525c28e83SPiotr Jasiukajtis 26625c28e83SPiotr Jasiukajtis!!! DONE? 26725c28e83SPiotr Jasiukajtis.cont: 26825c28e83SPiotr Jasiukajtis srlx %o5,32,%o7 26925c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 27025c28e83SPiotr Jasiukajtis fmovs %f3,%f1 27125c28e83SPiotr Jasiukajtis st %f21,[%fp+nk2] 27225c28e83SPiotr Jasiukajtis 27325c28e83SPiotr Jasiukajtis sub %o7,%l0,%l0 27425c28e83SPiotr Jasiukajtis sub %o7,%l1,%l1 27525c28e83SPiotr Jasiukajtis faddd %f26,c3two44,%f28 27625c28e83SPiotr Jasiukajtis st %f29,[%fp+nk3] 27725c28e83SPiotr Jasiukajtis 27825c28e83SPiotr Jasiukajtis sub %o7,%l2,%l2 27925c28e83SPiotr Jasiukajtis sub %o7,%l3,%l3 28025c28e83SPiotr Jasiukajtis fmovs %f11,%f9 28125c28e83SPiotr Jasiukajtis 28225c28e83SPiotr Jasiukajtis or %l0,%l1,%l0 28325c28e83SPiotr Jasiukajtis or %l2,%l3,%l2 28425c28e83SPiotr Jasiukajtis fmovs %f19,%f17 28525c28e83SPiotr Jasiukajtis 28625c28e83SPiotr Jasiukajtis fmovs %f27,%f25 28725c28e83SPiotr Jasiukajtis fmuld %f0,invpio2,%f6 ! x * invpio2, for medium range 28825c28e83SPiotr Jasiukajtis 28925c28e83SPiotr Jasiukajtis fmuld %f8,invpio2,%f14 29025c28e83SPiotr Jasiukajtis ld [%fp+nk0],%l4 29125c28e83SPiotr Jasiukajtis 29225c28e83SPiotr Jasiukajtis fmuld %f16,invpio2,%f22 29325c28e83SPiotr Jasiukajtis ld [%fp+nk1],%l5 29425c28e83SPiotr Jasiukajtis 29525c28e83SPiotr Jasiukajtis orcc %l0,%l2,%g0 29625c28e83SPiotr Jasiukajtis bl,pn %icc,.medium 29725c28e83SPiotr Jasiukajtis! delay slot 29825c28e83SPiotr Jasiukajtis fmuld %f24,invpio2,%f30 29925c28e83SPiotr Jasiukajtis ld [%fp+nk2],%l6 30025c28e83SPiotr Jasiukajtis 30125c28e83SPiotr Jasiukajtis ld [%fp+nk3],%l7 30225c28e83SPiotr Jasiukajtis sll %l4,5,%l4 ! k 30325c28e83SPiotr Jasiukajtis fcmpd %fcc0,%f0,pio2_3 ! x < pio2_3 iff x < 0 30425c28e83SPiotr Jasiukajtis 30525c28e83SPiotr Jasiukajtis sll %l5,5,%l5 30625c28e83SPiotr Jasiukajtis ldd [%l4+%g1],%f4 30725c28e83SPiotr Jasiukajtis fcmpd %fcc1,%f8,pio2_3 30825c28e83SPiotr Jasiukajtis 30925c28e83SPiotr Jasiukajtis sll %l6,5,%l6 31025c28e83SPiotr Jasiukajtis ldd [%l5+%g1],%f12 31125c28e83SPiotr Jasiukajtis fcmpd %fcc2,%f16,pio2_3 31225c28e83SPiotr Jasiukajtis 31325c28e83SPiotr Jasiukajtis sll %l7,5,%l7 31425c28e83SPiotr Jasiukajtis ldd [%l6+%g1],%f20 31525c28e83SPiotr Jasiukajtis fcmpd %fcc3,%f24,pio2_3 31625c28e83SPiotr Jasiukajtis 31725c28e83SPiotr Jasiukajtis ldd [%l7+%g1],%f28 31825c28e83SPiotr Jasiukajtis fsubd %f2,%f4,%f2 ! x -= __vlibm_TBL_sincos2[k] 31925c28e83SPiotr Jasiukajtis 32025c28e83SPiotr Jasiukajtis fsubd %f10,%f12,%f10 32125c28e83SPiotr Jasiukajtis 32225c28e83SPiotr Jasiukajtis fsubd %f18,%f20,%f18 32325c28e83SPiotr Jasiukajtis 32425c28e83SPiotr Jasiukajtis fsubd %f26,%f28,%f26 32525c28e83SPiotr Jasiukajtis 32625c28e83SPiotr Jasiukajtis fmuld %f2,%f2,%f0 ! z = x * x 32725c28e83SPiotr Jasiukajtis 32825c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f8 32925c28e83SPiotr Jasiukajtis 33025c28e83SPiotr Jasiukajtis fmuld %f18,%f18,%f16 33125c28e83SPiotr Jasiukajtis 33225c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 33325c28e83SPiotr Jasiukajtis 33425c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 33525c28e83SPiotr Jasiukajtis 33625c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 33725c28e83SPiotr Jasiukajtis 33825c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 33925c28e83SPiotr Jasiukajtis 34025c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 34125c28e83SPiotr Jasiukajtis 34225c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 34325c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 34425c28e83SPiotr Jasiukajtis 34525c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 34625c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 34725c28e83SPiotr Jasiukajtis 34825c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 34925c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 35025c28e83SPiotr Jasiukajtis 35125c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 35225c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 35325c28e83SPiotr Jasiukajtis 35425c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 35525c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 35625c28e83SPiotr Jasiukajtis 35725c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 35825c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 35925c28e83SPiotr Jasiukajtis 36025c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 36125c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 36225c28e83SPiotr Jasiukajtis 36325c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 36425c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 36525c28e83SPiotr Jasiukajtis 36625c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 36725c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 36825c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 36925c28e83SPiotr Jasiukajtis 37025c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 37125c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 37225c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 37325c28e83SPiotr Jasiukajtis 37425c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 37525c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 37625c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 37725c28e83SPiotr Jasiukajtis 37825c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 37925c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 38025c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 38125c28e83SPiotr Jasiukajtis 38225c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 38325c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 38425c28e83SPiotr Jasiukajtis 38525c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 38625c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 38725c28e83SPiotr Jasiukajtis 38825c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 38925c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 39025c28e83SPiotr Jasiukajtis 39125c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 39225c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 39325c28e83SPiotr Jasiukajtis 39425c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 39525c28e83SPiotr Jasiukajtis 39625c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 39725c28e83SPiotr Jasiukajtis 39825c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 39925c28e83SPiotr Jasiukajtis 40025c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 40125c28e83SPiotr Jasiukajtis 40225c28e83SPiotr Jasiukajtis faddd %f6,%f2,%f6 40325c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 40425c28e83SPiotr Jasiukajtis ldd [%l4+16],%f2 40525c28e83SPiotr Jasiukajtis 40625c28e83SPiotr Jasiukajtis faddd %f14,%f10,%f14 40725c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 40825c28e83SPiotr Jasiukajtis ldd [%l5+16],%f10 40925c28e83SPiotr Jasiukajtis 41025c28e83SPiotr Jasiukajtis faddd %f22,%f18,%f22 41125c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 41225c28e83SPiotr Jasiukajtis ldd [%l6+16],%f18 41325c28e83SPiotr Jasiukajtis 41425c28e83SPiotr Jasiukajtis faddd %f30,%f26,%f30 41525c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 41625c28e83SPiotr Jasiukajtis ldd [%l7+16],%f26 41725c28e83SPiotr Jasiukajtis 41825c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 41925c28e83SPiotr Jasiukajtis 42025c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 42125c28e83SPiotr Jasiukajtis 42225c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 42325c28e83SPiotr Jasiukajtis 42425c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 42525c28e83SPiotr Jasiukajtis 42625c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 42725c28e83SPiotr Jasiukajtis 42825c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 42925c28e83SPiotr Jasiukajtis 43025c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 43125c28e83SPiotr Jasiukajtis 43225c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 43325c28e83SPiotr Jasiukajtis 43425c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 43525c28e83SPiotr Jasiukajtis 43625c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 43725c28e83SPiotr Jasiukajtis 43825c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 43925c28e83SPiotr Jasiukajtis 44025c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 44125c28e83SPiotr Jasiukajtis 44225c28e83SPiotr Jasiukajtis fnegd %f6,%f4 44325c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 44425c28e83SPiotr Jasiukajtis 44525c28e83SPiotr Jasiukajtis fnegd %f14,%f12 44625c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 44725c28e83SPiotr Jasiukajtis 44825c28e83SPiotr Jasiukajtis fnegd %f22,%f20 44925c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 45025c28e83SPiotr Jasiukajtis 45125c28e83SPiotr Jasiukajtis fnegd %f30,%f28 45225c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 45325c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 45425c28e83SPiotr Jasiukajtis 45525c28e83SPiotr Jasiukajtis fmovdl %fcc0,%f4,%f6 ! (hx < -0)? -s : s 45625c28e83SPiotr Jasiukajtis st %f6,[%o0] 45725c28e83SPiotr Jasiukajtis 45825c28e83SPiotr Jasiukajtis fmovdl %fcc1,%f12,%f14 45925c28e83SPiotr Jasiukajtis st %f14,[%o1] 46025c28e83SPiotr Jasiukajtis 46125c28e83SPiotr Jasiukajtis fmovdl %fcc2,%f20,%f22 46225c28e83SPiotr Jasiukajtis st %f22,[%o2] 46325c28e83SPiotr Jasiukajtis 46425c28e83SPiotr Jasiukajtis fmovdl %fcc3,%f28,%f30 46525c28e83SPiotr Jasiukajtis st %f30,[%o3] 46625c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 46725c28e83SPiotr Jasiukajtis 46825c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 46925c28e83SPiotr Jasiukajtis! delay slot 47025c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 47125c28e83SPiotr Jasiukajtis 47225c28e83SPiotr Jasiukajtis ba,pt %icc,.end 47325c28e83SPiotr Jasiukajtis! delay slot 47425c28e83SPiotr Jasiukajtis nop 47525c28e83SPiotr Jasiukajtis 47625c28e83SPiotr Jasiukajtis 47725c28e83SPiotr Jasiukajtis .align 16 47825c28e83SPiotr Jasiukajtis.medium: 47925c28e83SPiotr Jasiukajtis faddd %f6,c3two51,%f4 48025c28e83SPiotr Jasiukajtis st %f5,[%fp+nk0] 48125c28e83SPiotr Jasiukajtis 48225c28e83SPiotr Jasiukajtis faddd %f14,c3two51,%f12 48325c28e83SPiotr Jasiukajtis st %f13,[%fp+nk1] 48425c28e83SPiotr Jasiukajtis 48525c28e83SPiotr Jasiukajtis faddd %f22,c3two51,%f20 48625c28e83SPiotr Jasiukajtis st %f21,[%fp+nk2] 48725c28e83SPiotr Jasiukajtis 48825c28e83SPiotr Jasiukajtis faddd %f30,c3two51,%f28 48925c28e83SPiotr Jasiukajtis st %f29,[%fp+nk3] 49025c28e83SPiotr Jasiukajtis 49125c28e83SPiotr Jasiukajtis fsubd %f4,c3two51,%f6 49225c28e83SPiotr Jasiukajtis 49325c28e83SPiotr Jasiukajtis fsubd %f12,c3two51,%f14 49425c28e83SPiotr Jasiukajtis 49525c28e83SPiotr Jasiukajtis fsubd %f20,c3two51,%f22 49625c28e83SPiotr Jasiukajtis 49725c28e83SPiotr Jasiukajtis fsubd %f28,c3two51,%f30 49825c28e83SPiotr Jasiukajtis 49925c28e83SPiotr Jasiukajtis fmuld %f6,pio2_1,%f2 50025c28e83SPiotr Jasiukajtis ld [%fp+nk0],%l0 ! n 50125c28e83SPiotr Jasiukajtis 50225c28e83SPiotr Jasiukajtis fmuld %f14,pio2_1,%f10 50325c28e83SPiotr Jasiukajtis ld [%fp+nk1],%l1 50425c28e83SPiotr Jasiukajtis 50525c28e83SPiotr Jasiukajtis fmuld %f22,pio2_1,%f18 50625c28e83SPiotr Jasiukajtis ld [%fp+nk2],%l2 50725c28e83SPiotr Jasiukajtis 50825c28e83SPiotr Jasiukajtis fmuld %f30,pio2_1,%f26 50925c28e83SPiotr Jasiukajtis ld [%fp+nk3],%l3 51025c28e83SPiotr Jasiukajtis 51125c28e83SPiotr Jasiukajtis fsubd %f0,%f2,%f0 51225c28e83SPiotr Jasiukajtis fmuld %f6,pio2_2,%f4 51325c28e83SPiotr Jasiukajtis 51425c28e83SPiotr Jasiukajtis fsubd %f8,%f10,%f8 51525c28e83SPiotr Jasiukajtis fmuld %f14,pio2_2,%f12 51625c28e83SPiotr Jasiukajtis 51725c28e83SPiotr Jasiukajtis fsubd %f16,%f18,%f16 51825c28e83SPiotr Jasiukajtis fmuld %f22,pio2_2,%f20 51925c28e83SPiotr Jasiukajtis 52025c28e83SPiotr Jasiukajtis fsubd %f24,%f26,%f24 52125c28e83SPiotr Jasiukajtis fmuld %f30,pio2_2,%f28 52225c28e83SPiotr Jasiukajtis 52325c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f32 52425c28e83SPiotr Jasiukajtis 52525c28e83SPiotr Jasiukajtis fsubd %f8,%f12,%f34 52625c28e83SPiotr Jasiukajtis 52725c28e83SPiotr Jasiukajtis fsubd %f16,%f20,%f36 52825c28e83SPiotr Jasiukajtis 52925c28e83SPiotr Jasiukajtis fsubd %f24,%f28,%f38 53025c28e83SPiotr Jasiukajtis 53125c28e83SPiotr Jasiukajtis fsubd %f0,%f32,%f0 53225c28e83SPiotr Jasiukajtis fcmple32 %f32,pio2_3,%l4 ! x <= pio2_3 iff x < 0 53325c28e83SPiotr Jasiukajtis 53425c28e83SPiotr Jasiukajtis fsubd %f8,%f34,%f8 53525c28e83SPiotr Jasiukajtis fcmple32 %f34,pio2_3,%l5 53625c28e83SPiotr Jasiukajtis 53725c28e83SPiotr Jasiukajtis fsubd %f16,%f36,%f16 53825c28e83SPiotr Jasiukajtis fcmple32 %f36,pio2_3,%l6 53925c28e83SPiotr Jasiukajtis 54025c28e83SPiotr Jasiukajtis fsubd %f24,%f38,%f24 54125c28e83SPiotr Jasiukajtis fcmple32 %f38,pio2_3,%l7 54225c28e83SPiotr Jasiukajtis 54325c28e83SPiotr Jasiukajtis fsubd %f0,%f4,%f0 54425c28e83SPiotr Jasiukajtis fmuld %f6,pio2_3,%f6 54525c28e83SPiotr Jasiukajtis sll %l4,30,%l4 ! if (x < 0) n = -n ^ 2 54625c28e83SPiotr Jasiukajtis 54725c28e83SPiotr Jasiukajtis fsubd %f8,%f12,%f8 54825c28e83SPiotr Jasiukajtis fmuld %f14,pio2_3,%f14 54925c28e83SPiotr Jasiukajtis sll %l5,30,%l5 55025c28e83SPiotr Jasiukajtis 55125c28e83SPiotr Jasiukajtis fsubd %f16,%f20,%f16 55225c28e83SPiotr Jasiukajtis fmuld %f22,pio2_3,%f22 55325c28e83SPiotr Jasiukajtis sll %l6,30,%l6 55425c28e83SPiotr Jasiukajtis 55525c28e83SPiotr Jasiukajtis fsubd %f24,%f28,%f24 55625c28e83SPiotr Jasiukajtis fmuld %f30,pio2_3,%f30 55725c28e83SPiotr Jasiukajtis sll %l7,30,%l7 55825c28e83SPiotr Jasiukajtis 55925c28e83SPiotr Jasiukajtis fsubd %f6,%f0,%f6 56025c28e83SPiotr Jasiukajtis sra %l4,31,%l4 56125c28e83SPiotr Jasiukajtis 56225c28e83SPiotr Jasiukajtis fsubd %f14,%f8,%f14 56325c28e83SPiotr Jasiukajtis sra %l5,31,%l5 56425c28e83SPiotr Jasiukajtis 56525c28e83SPiotr Jasiukajtis fsubd %f22,%f16,%f22 56625c28e83SPiotr Jasiukajtis sra %l6,31,%l6 56725c28e83SPiotr Jasiukajtis 56825c28e83SPiotr Jasiukajtis fsubd %f30,%f24,%f30 56925c28e83SPiotr Jasiukajtis sra %l7,31,%l7 57025c28e83SPiotr Jasiukajtis 57125c28e83SPiotr Jasiukajtis fsubd %f32,%f6,%f0 ! reduced x 57225c28e83SPiotr Jasiukajtis xor %l0,%l4,%l0 57325c28e83SPiotr Jasiukajtis 57425c28e83SPiotr Jasiukajtis fsubd %f34,%f14,%f8 57525c28e83SPiotr Jasiukajtis xor %l1,%l5,%l1 57625c28e83SPiotr Jasiukajtis 57725c28e83SPiotr Jasiukajtis fsubd %f36,%f22,%f16 57825c28e83SPiotr Jasiukajtis xor %l2,%l6,%l2 57925c28e83SPiotr Jasiukajtis 58025c28e83SPiotr Jasiukajtis fsubd %f38,%f30,%f24 58125c28e83SPiotr Jasiukajtis xor %l3,%l7,%l3 58225c28e83SPiotr Jasiukajtis 58325c28e83SPiotr Jasiukajtis fabsd %f0,%f2 58425c28e83SPiotr Jasiukajtis sub %l0,%l4,%l0 58525c28e83SPiotr Jasiukajtis 58625c28e83SPiotr Jasiukajtis fabsd %f8,%f10 58725c28e83SPiotr Jasiukajtis sub %l1,%l5,%l1 58825c28e83SPiotr Jasiukajtis 58925c28e83SPiotr Jasiukajtis fabsd %f16,%f18 59025c28e83SPiotr Jasiukajtis sub %l2,%l6,%l2 59125c28e83SPiotr Jasiukajtis 59225c28e83SPiotr Jasiukajtis fabsd %f24,%f26 59325c28e83SPiotr Jasiukajtis sub %l3,%l7,%l3 59425c28e83SPiotr Jasiukajtis 59525c28e83SPiotr Jasiukajtis faddd %f2,c3two44,%f4 59625c28e83SPiotr Jasiukajtis st %f5,[%fp+nk0] 59725c28e83SPiotr Jasiukajtis and %l4,2,%l4 59825c28e83SPiotr Jasiukajtis 59925c28e83SPiotr Jasiukajtis faddd %f10,c3two44,%f12 60025c28e83SPiotr Jasiukajtis st %f13,[%fp+nk1] 60125c28e83SPiotr Jasiukajtis and %l5,2,%l5 60225c28e83SPiotr Jasiukajtis 60325c28e83SPiotr Jasiukajtis faddd %f18,c3two44,%f20 60425c28e83SPiotr Jasiukajtis st %f21,[%fp+nk2] 60525c28e83SPiotr Jasiukajtis and %l6,2,%l6 60625c28e83SPiotr Jasiukajtis 60725c28e83SPiotr Jasiukajtis faddd %f26,c3two44,%f28 60825c28e83SPiotr Jasiukajtis st %f29,[%fp+nk3] 60925c28e83SPiotr Jasiukajtis and %l7,2,%l7 61025c28e83SPiotr Jasiukajtis 61125c28e83SPiotr Jasiukajtis fsubd %f32,%f0,%f4 61225c28e83SPiotr Jasiukajtis xor %l0,%l4,%l0 61325c28e83SPiotr Jasiukajtis 61425c28e83SPiotr Jasiukajtis fsubd %f34,%f8,%f12 61525c28e83SPiotr Jasiukajtis xor %l1,%l5,%l1 61625c28e83SPiotr Jasiukajtis 61725c28e83SPiotr Jasiukajtis fsubd %f36,%f16,%f20 61825c28e83SPiotr Jasiukajtis xor %l2,%l6,%l2 61925c28e83SPiotr Jasiukajtis 62025c28e83SPiotr Jasiukajtis fsubd %f38,%f24,%f28 62125c28e83SPiotr Jasiukajtis xor %l3,%l7,%l3 62225c28e83SPiotr Jasiukajtis 62325c28e83SPiotr Jasiukajtis fzero %f38 62425c28e83SPiotr Jasiukajtis ld [%fp+nk0],%l4 62525c28e83SPiotr Jasiukajtis 62625c28e83SPiotr Jasiukajtis fsubd %f4,%f6,%f6 ! w 62725c28e83SPiotr Jasiukajtis ld [%fp+nk1],%l5 62825c28e83SPiotr Jasiukajtis 62925c28e83SPiotr Jasiukajtis fsubd %f12,%f14,%f14 63025c28e83SPiotr Jasiukajtis ld [%fp+nk2],%l6 63125c28e83SPiotr Jasiukajtis 63225c28e83SPiotr Jasiukajtis fnegd %f38,%f38 63325c28e83SPiotr Jasiukajtis ld [%fp+nk3],%l7 63425c28e83SPiotr Jasiukajtis sll %l4,5,%l4 ! k 63525c28e83SPiotr Jasiukajtis 63625c28e83SPiotr Jasiukajtis fsubd %f20,%f22,%f22 63725c28e83SPiotr Jasiukajtis sll %l5,5,%l5 63825c28e83SPiotr Jasiukajtis 63925c28e83SPiotr Jasiukajtis fsubd %f28,%f30,%f30 64025c28e83SPiotr Jasiukajtis sll %l6,5,%l6 64125c28e83SPiotr Jasiukajtis 64225c28e83SPiotr Jasiukajtis fand %f0,%f38,%f32 ! sign bit of x 64325c28e83SPiotr Jasiukajtis ldd [%l4+%g1],%f4 64425c28e83SPiotr Jasiukajtis sll %l7,5,%l7 64525c28e83SPiotr Jasiukajtis 64625c28e83SPiotr Jasiukajtis fand %f8,%f38,%f34 64725c28e83SPiotr Jasiukajtis ldd [%l5+%g1],%f12 64825c28e83SPiotr Jasiukajtis 64925c28e83SPiotr Jasiukajtis fand %f16,%f38,%f36 65025c28e83SPiotr Jasiukajtis ldd [%l6+%g1],%f20 65125c28e83SPiotr Jasiukajtis 65225c28e83SPiotr Jasiukajtis fand %f24,%f38,%f38 65325c28e83SPiotr Jasiukajtis ldd [%l7+%g1],%f28 65425c28e83SPiotr Jasiukajtis 65525c28e83SPiotr Jasiukajtis fsubd %f2,%f4,%f2 ! x -= __vlibm_TBL_sincos2[k] 65625c28e83SPiotr Jasiukajtis 65725c28e83SPiotr Jasiukajtis fsubd %f10,%f12,%f10 65825c28e83SPiotr Jasiukajtis 65925c28e83SPiotr Jasiukajtis fsubd %f18,%f20,%f18 66025c28e83SPiotr Jasiukajtis nop 66125c28e83SPiotr Jasiukajtis 66225c28e83SPiotr Jasiukajtis fsubd %f26,%f28,%f26 66325c28e83SPiotr Jasiukajtis nop 66425c28e83SPiotr Jasiukajtis 66525c28e83SPiotr Jasiukajtis! 16-byte aligned 66625c28e83SPiotr Jasiukajtis fmuld %f2,%f2,%f0 ! z = x * x 66725c28e83SPiotr Jasiukajtis andcc %l0,1,%g0 66825c28e83SPiotr Jasiukajtis bz,pn %icc,.case8 66925c28e83SPiotr Jasiukajtis! delay slot 67025c28e83SPiotr Jasiukajtis fxor %f6,%f32,%f32 67125c28e83SPiotr Jasiukajtis 67225c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f8 67325c28e83SPiotr Jasiukajtis andcc %l1,1,%g0 67425c28e83SPiotr Jasiukajtis bz,pn %icc,.case4 67525c28e83SPiotr Jasiukajtis! delay slot 67625c28e83SPiotr Jasiukajtis fxor %f14,%f34,%f34 67725c28e83SPiotr Jasiukajtis 67825c28e83SPiotr Jasiukajtis fmuld %f18,%f18,%f16 67925c28e83SPiotr Jasiukajtis andcc %l2,1,%g0 68025c28e83SPiotr Jasiukajtis bz,pn %icc,.case2 68125c28e83SPiotr Jasiukajtis! delay slot 68225c28e83SPiotr Jasiukajtis fxor %f22,%f36,%f36 68325c28e83SPiotr Jasiukajtis 68425c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 68525c28e83SPiotr Jasiukajtis andcc %l3,1,%g0 68625c28e83SPiotr Jasiukajtis bz,pn %icc,.case1 68725c28e83SPiotr Jasiukajtis! delay slot 68825c28e83SPiotr Jasiukajtis fxor %f30,%f38,%f38 68925c28e83SPiotr Jasiukajtis 69025c28e83SPiotr Jasiukajtis!.case0: 69125c28e83SPiotr Jasiukajtis fmuld %f0,qq3,%f6 ! cos(x0) 69225c28e83SPiotr Jasiukajtis 69325c28e83SPiotr Jasiukajtis fmuld %f8,qq3,%f14 ! cos(x1) 69425c28e83SPiotr Jasiukajtis 69525c28e83SPiotr Jasiukajtis fmuld %f16,qq3,%f22 ! cos(x2) 69625c28e83SPiotr Jasiukajtis 69725c28e83SPiotr Jasiukajtis fmuld %f24,qq3,%f30 ! cos(x3) 69825c28e83SPiotr Jasiukajtis 69925c28e83SPiotr Jasiukajtis faddd %f6,qq2,%f6 70025c28e83SPiotr Jasiukajtis fmuld %f0,pp2,%f4 70125c28e83SPiotr Jasiukajtis 70225c28e83SPiotr Jasiukajtis faddd %f14,qq2,%f14 70325c28e83SPiotr Jasiukajtis fmuld %f8,pp2,%f12 70425c28e83SPiotr Jasiukajtis 70525c28e83SPiotr Jasiukajtis faddd %f22,qq2,%f22 70625c28e83SPiotr Jasiukajtis fmuld %f16,pp2,%f20 70725c28e83SPiotr Jasiukajtis 70825c28e83SPiotr Jasiukajtis faddd %f30,qq2,%f30 70925c28e83SPiotr Jasiukajtis fmuld %f24,pp2,%f28 71025c28e83SPiotr Jasiukajtis 71125c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 71225c28e83SPiotr Jasiukajtis faddd %f4,pp1,%f4 71325c28e83SPiotr Jasiukajtis 71425c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 71525c28e83SPiotr Jasiukajtis faddd %f12,pp1,%f12 71625c28e83SPiotr Jasiukajtis 71725c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 71825c28e83SPiotr Jasiukajtis faddd %f20,pp1,%f20 71925c28e83SPiotr Jasiukajtis 72025c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 72125c28e83SPiotr Jasiukajtis faddd %f28,pp1,%f28 72225c28e83SPiotr Jasiukajtis 72325c28e83SPiotr Jasiukajtis faddd %f6,qq1,%f6 72425c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 72525c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 72625c28e83SPiotr Jasiukajtis 72725c28e83SPiotr Jasiukajtis faddd %f14,qq1,%f14 72825c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 72925c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 73025c28e83SPiotr Jasiukajtis 73125c28e83SPiotr Jasiukajtis faddd %f22,qq1,%f22 73225c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 73325c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 73425c28e83SPiotr Jasiukajtis 73525c28e83SPiotr Jasiukajtis faddd %f30,qq1,%f30 73625c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 73725c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 73825c28e83SPiotr Jasiukajtis 73925c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 74025c28e83SPiotr Jasiukajtis 74125c28e83SPiotr Jasiukajtis fmuld %f10,%f12,%f12 74225c28e83SPiotr Jasiukajtis 74325c28e83SPiotr Jasiukajtis fmuld %f18,%f20,%f20 74425c28e83SPiotr Jasiukajtis 74525c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f28 74625c28e83SPiotr Jasiukajtis 74725c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 74825c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 74925c28e83SPiotr Jasiukajtis ldd [%l4+16],%f0 75025c28e83SPiotr Jasiukajtis 75125c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 75225c28e83SPiotr Jasiukajtis faddd %f12,%f34,%f12 75325c28e83SPiotr Jasiukajtis ldd [%l5+16],%f8 75425c28e83SPiotr Jasiukajtis 75525c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 75625c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 75725c28e83SPiotr Jasiukajtis ldd [%l6+16],%f16 75825c28e83SPiotr Jasiukajtis 75925c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 76025c28e83SPiotr Jasiukajtis faddd %f28,%f38,%f28 76125c28e83SPiotr Jasiukajtis ldd [%l7+16],%f24 76225c28e83SPiotr Jasiukajtis 76325c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 76425c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 76525c28e83SPiotr Jasiukajtis ldd [%l4+8],%f32 76625c28e83SPiotr Jasiukajtis 76725c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 76825c28e83SPiotr Jasiukajtis faddd %f12,%f10,%f12 76925c28e83SPiotr Jasiukajtis ldd [%l5+8],%f34 77025c28e83SPiotr Jasiukajtis 77125c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 77225c28e83SPiotr Jasiukajtis faddd %f20,%f18,%f20 77325c28e83SPiotr Jasiukajtis ldd [%l6+8],%f36 77425c28e83SPiotr Jasiukajtis 77525c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 77625c28e83SPiotr Jasiukajtis faddd %f28,%f26,%f28 77725c28e83SPiotr Jasiukajtis ldd [%l7+8],%f38 77825c28e83SPiotr Jasiukajtis 77925c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 78025c28e83SPiotr Jasiukajtis 78125c28e83SPiotr Jasiukajtis fmuld %f34,%f12,%f12 78225c28e83SPiotr Jasiukajtis 78325c28e83SPiotr Jasiukajtis fmuld %f36,%f20,%f20 78425c28e83SPiotr Jasiukajtis 78525c28e83SPiotr Jasiukajtis fmuld %f38,%f28,%f28 78625c28e83SPiotr Jasiukajtis 78725c28e83SPiotr Jasiukajtis fsubd %f6,%f4,%f6 78825c28e83SPiotr Jasiukajtis 78925c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f14 79025c28e83SPiotr Jasiukajtis 79125c28e83SPiotr Jasiukajtis fsubd %f22,%f20,%f22 79225c28e83SPiotr Jasiukajtis 79325c28e83SPiotr Jasiukajtis fsubd %f30,%f28,%f30 79425c28e83SPiotr Jasiukajtis 79525c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 79625c28e83SPiotr Jasiukajtis 79725c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 79825c28e83SPiotr Jasiukajtis 79925c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 80025c28e83SPiotr Jasiukajtis 80125c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 80225c28e83SPiotr Jasiukajtis mov %l0,%l4 80325c28e83SPiotr Jasiukajtis 80425c28e83SPiotr Jasiukajtis fnegd %f6,%f4 80525c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 80625c28e83SPiotr Jasiukajtis 80725c28e83SPiotr Jasiukajtis fnegd %f14,%f12 80825c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 80925c28e83SPiotr Jasiukajtis 81025c28e83SPiotr Jasiukajtis fnegd %f22,%f20 81125c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 81225c28e83SPiotr Jasiukajtis 81325c28e83SPiotr Jasiukajtis fnegd %f30,%f28 81425c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 81525c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 81625c28e83SPiotr Jasiukajtis 81725c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 81825c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 81925c28e83SPiotr Jasiukajtis st %f6,[%o0] 82025c28e83SPiotr Jasiukajtis 82125c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 82225c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 82325c28e83SPiotr Jasiukajtis st %f14,[%o1] 82425c28e83SPiotr Jasiukajtis 82525c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 82625c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 82725c28e83SPiotr Jasiukajtis st %f22,[%o2] 82825c28e83SPiotr Jasiukajtis 82925c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 83025c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 83125c28e83SPiotr Jasiukajtis st %f30,[%o3] 83225c28e83SPiotr Jasiukajtis 83325c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 83425c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 83525c28e83SPiotr Jasiukajtis! delay slot 83625c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 83725c28e83SPiotr Jasiukajtis 83825c28e83SPiotr Jasiukajtis ba,pt %icc,.end 83925c28e83SPiotr Jasiukajtis! delay slot 84025c28e83SPiotr Jasiukajtis nop 84125c28e83SPiotr Jasiukajtis 84225c28e83SPiotr Jasiukajtis .align 16 84325c28e83SPiotr Jasiukajtis.case1: 84425c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 ! sin(x3) 84525c28e83SPiotr Jasiukajtis 84625c28e83SPiotr Jasiukajtis fmuld %f0,qq3,%f6 ! cos(x0) 84725c28e83SPiotr Jasiukajtis 84825c28e83SPiotr Jasiukajtis fmuld %f8,qq3,%f14 ! cos(x1) 84925c28e83SPiotr Jasiukajtis 85025c28e83SPiotr Jasiukajtis fmuld %f16,qq3,%f22 ! cos(x2) 85125c28e83SPiotr Jasiukajtis 85225c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 85325c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 85425c28e83SPiotr Jasiukajtis 85525c28e83SPiotr Jasiukajtis faddd %f6,qq2,%f6 85625c28e83SPiotr Jasiukajtis fmuld %f0,pp2,%f4 85725c28e83SPiotr Jasiukajtis 85825c28e83SPiotr Jasiukajtis faddd %f14,qq2,%f14 85925c28e83SPiotr Jasiukajtis fmuld %f8,pp2,%f12 86025c28e83SPiotr Jasiukajtis 86125c28e83SPiotr Jasiukajtis faddd %f22,qq2,%f22 86225c28e83SPiotr Jasiukajtis fmuld %f16,pp2,%f20 86325c28e83SPiotr Jasiukajtis 86425c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 86525c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 86625c28e83SPiotr Jasiukajtis 86725c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 86825c28e83SPiotr Jasiukajtis faddd %f4,pp1,%f4 86925c28e83SPiotr Jasiukajtis 87025c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 87125c28e83SPiotr Jasiukajtis faddd %f12,pp1,%f12 87225c28e83SPiotr Jasiukajtis 87325c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 87425c28e83SPiotr Jasiukajtis faddd %f20,pp1,%f20 87525c28e83SPiotr Jasiukajtis 87625c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 87725c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 87825c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 87925c28e83SPiotr Jasiukajtis 88025c28e83SPiotr Jasiukajtis faddd %f6,qq1,%f6 88125c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 88225c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 88325c28e83SPiotr Jasiukajtis 88425c28e83SPiotr Jasiukajtis faddd %f14,qq1,%f14 88525c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 88625c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 88725c28e83SPiotr Jasiukajtis 88825c28e83SPiotr Jasiukajtis faddd %f22,qq1,%f22 88925c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 89025c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 89125c28e83SPiotr Jasiukajtis 89225c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 89325c28e83SPiotr Jasiukajtis 89425c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 89525c28e83SPiotr Jasiukajtis 89625c28e83SPiotr Jasiukajtis fmuld %f10,%f12,%f12 89725c28e83SPiotr Jasiukajtis 89825c28e83SPiotr Jasiukajtis fmuld %f18,%f20,%f20 89925c28e83SPiotr Jasiukajtis 90025c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 90125c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 90225c28e83SPiotr Jasiukajtis 90325c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 90425c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 90525c28e83SPiotr Jasiukajtis ldd [%l4+16],%f0 90625c28e83SPiotr Jasiukajtis 90725c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 90825c28e83SPiotr Jasiukajtis faddd %f12,%f34,%f12 90925c28e83SPiotr Jasiukajtis ldd [%l5+16],%f8 91025c28e83SPiotr Jasiukajtis 91125c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 91225c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 91325c28e83SPiotr Jasiukajtis ldd [%l6+16],%f16 91425c28e83SPiotr Jasiukajtis 91525c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 91625c28e83SPiotr Jasiukajtis faddd %f38,%f30,%f30 91725c28e83SPiotr Jasiukajtis 91825c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 91925c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 92025c28e83SPiotr Jasiukajtis ldd [%l4+8],%f32 92125c28e83SPiotr Jasiukajtis 92225c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 92325c28e83SPiotr Jasiukajtis faddd %f12,%f10,%f12 92425c28e83SPiotr Jasiukajtis ldd [%l5+8],%f34 92525c28e83SPiotr Jasiukajtis 92625c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 92725c28e83SPiotr Jasiukajtis faddd %f20,%f18,%f20 92825c28e83SPiotr Jasiukajtis ldd [%l6+8],%f36 92925c28e83SPiotr Jasiukajtis 93025c28e83SPiotr Jasiukajtis faddd %f26,%f30,%f30 93125c28e83SPiotr Jasiukajtis ldd [%l7+16],%f38 93225c28e83SPiotr Jasiukajtis 93325c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 93425c28e83SPiotr Jasiukajtis 93525c28e83SPiotr Jasiukajtis fmuld %f34,%f12,%f12 93625c28e83SPiotr Jasiukajtis 93725c28e83SPiotr Jasiukajtis fmuld %f36,%f20,%f20 93825c28e83SPiotr Jasiukajtis 93925c28e83SPiotr Jasiukajtis fmuld %f38,%f30,%f30 94025c28e83SPiotr Jasiukajtis 94125c28e83SPiotr Jasiukajtis fsubd %f6,%f4,%f6 94225c28e83SPiotr Jasiukajtis 94325c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f14 94425c28e83SPiotr Jasiukajtis 94525c28e83SPiotr Jasiukajtis fsubd %f22,%f20,%f22 94625c28e83SPiotr Jasiukajtis 94725c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 94825c28e83SPiotr Jasiukajtis 94925c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 95025c28e83SPiotr Jasiukajtis 95125c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 95225c28e83SPiotr Jasiukajtis 95325c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 95425c28e83SPiotr Jasiukajtis 95525c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 95625c28e83SPiotr Jasiukajtis mov %l0,%l4 95725c28e83SPiotr Jasiukajtis 95825c28e83SPiotr Jasiukajtis fnegd %f6,%f4 95925c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 96025c28e83SPiotr Jasiukajtis 96125c28e83SPiotr Jasiukajtis fnegd %f14,%f12 96225c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 96325c28e83SPiotr Jasiukajtis 96425c28e83SPiotr Jasiukajtis fnegd %f22,%f20 96525c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 96625c28e83SPiotr Jasiukajtis 96725c28e83SPiotr Jasiukajtis fnegd %f30,%f28 96825c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 96925c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 97025c28e83SPiotr Jasiukajtis 97125c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 97225c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 97325c28e83SPiotr Jasiukajtis st %f6,[%o0] 97425c28e83SPiotr Jasiukajtis 97525c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 97625c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 97725c28e83SPiotr Jasiukajtis st %f14,[%o1] 97825c28e83SPiotr Jasiukajtis 97925c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 98025c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 98125c28e83SPiotr Jasiukajtis st %f22,[%o2] 98225c28e83SPiotr Jasiukajtis 98325c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 98425c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 98525c28e83SPiotr Jasiukajtis st %f30,[%o3] 98625c28e83SPiotr Jasiukajtis 98725c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 98825c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 98925c28e83SPiotr Jasiukajtis! delay slot 99025c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 99125c28e83SPiotr Jasiukajtis 99225c28e83SPiotr Jasiukajtis ba,pt %icc,.end 99325c28e83SPiotr Jasiukajtis! delay slot 99425c28e83SPiotr Jasiukajtis nop 99525c28e83SPiotr Jasiukajtis 99625c28e83SPiotr Jasiukajtis .align 16 99725c28e83SPiotr Jasiukajtis.case2: 99825c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 99925c28e83SPiotr Jasiukajtis andcc %l3,1,%g0 100025c28e83SPiotr Jasiukajtis bz,pn %icc,.case3 100125c28e83SPiotr Jasiukajtis! delay slot 100225c28e83SPiotr Jasiukajtis fxor %f30,%f38,%f38 100325c28e83SPiotr Jasiukajtis 100425c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 ! sin(x2) 100525c28e83SPiotr Jasiukajtis 100625c28e83SPiotr Jasiukajtis fmuld %f0,qq3,%f6 ! cos(x0) 100725c28e83SPiotr Jasiukajtis 100825c28e83SPiotr Jasiukajtis fmuld %f8,qq3,%f14 ! cos(x1) 100925c28e83SPiotr Jasiukajtis 101025c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 101125c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 101225c28e83SPiotr Jasiukajtis 101325c28e83SPiotr Jasiukajtis fmuld %f24,qq3,%f30 ! cos(x3) 101425c28e83SPiotr Jasiukajtis 101525c28e83SPiotr Jasiukajtis faddd %f6,qq2,%f6 101625c28e83SPiotr Jasiukajtis fmuld %f0,pp2,%f4 101725c28e83SPiotr Jasiukajtis 101825c28e83SPiotr Jasiukajtis faddd %f14,qq2,%f14 101925c28e83SPiotr Jasiukajtis fmuld %f8,pp2,%f12 102025c28e83SPiotr Jasiukajtis 102125c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 102225c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 102325c28e83SPiotr Jasiukajtis 102425c28e83SPiotr Jasiukajtis faddd %f30,qq2,%f30 102525c28e83SPiotr Jasiukajtis fmuld %f24,pp2,%f28 102625c28e83SPiotr Jasiukajtis 102725c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 102825c28e83SPiotr Jasiukajtis faddd %f4,pp1,%f4 102925c28e83SPiotr Jasiukajtis 103025c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 103125c28e83SPiotr Jasiukajtis faddd %f12,pp1,%f12 103225c28e83SPiotr Jasiukajtis 103325c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 103425c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 103525c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 103625c28e83SPiotr Jasiukajtis 103725c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 103825c28e83SPiotr Jasiukajtis faddd %f28,pp1,%f28 103925c28e83SPiotr Jasiukajtis 104025c28e83SPiotr Jasiukajtis faddd %f6,qq1,%f6 104125c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 104225c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 104325c28e83SPiotr Jasiukajtis 104425c28e83SPiotr Jasiukajtis faddd %f14,qq1,%f14 104525c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 104625c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 104725c28e83SPiotr Jasiukajtis 104825c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 104925c28e83SPiotr Jasiukajtis 105025c28e83SPiotr Jasiukajtis faddd %f30,qq1,%f30 105125c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 105225c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 105325c28e83SPiotr Jasiukajtis 105425c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 105525c28e83SPiotr Jasiukajtis 105625c28e83SPiotr Jasiukajtis fmuld %f10,%f12,%f12 105725c28e83SPiotr Jasiukajtis 105825c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 105925c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 106025c28e83SPiotr Jasiukajtis 106125c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f28 106225c28e83SPiotr Jasiukajtis 106325c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 106425c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 106525c28e83SPiotr Jasiukajtis ldd [%l4+16],%f0 106625c28e83SPiotr Jasiukajtis 106725c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 106825c28e83SPiotr Jasiukajtis faddd %f12,%f34,%f12 106925c28e83SPiotr Jasiukajtis ldd [%l5+16],%f8 107025c28e83SPiotr Jasiukajtis 107125c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 107225c28e83SPiotr Jasiukajtis faddd %f36,%f22,%f22 107325c28e83SPiotr Jasiukajtis 107425c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 107525c28e83SPiotr Jasiukajtis faddd %f28,%f38,%f28 107625c28e83SPiotr Jasiukajtis ldd [%l7+16],%f24 107725c28e83SPiotr Jasiukajtis 107825c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 107925c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 108025c28e83SPiotr Jasiukajtis ldd [%l4+8],%f32 108125c28e83SPiotr Jasiukajtis 108225c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 108325c28e83SPiotr Jasiukajtis faddd %f12,%f10,%f12 108425c28e83SPiotr Jasiukajtis ldd [%l5+8],%f34 108525c28e83SPiotr Jasiukajtis 108625c28e83SPiotr Jasiukajtis faddd %f18,%f22,%f22 108725c28e83SPiotr Jasiukajtis ldd [%l6+16],%f36 108825c28e83SPiotr Jasiukajtis 108925c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 109025c28e83SPiotr Jasiukajtis faddd %f28,%f26,%f28 109125c28e83SPiotr Jasiukajtis ldd [%l7+8],%f38 109225c28e83SPiotr Jasiukajtis 109325c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 109425c28e83SPiotr Jasiukajtis 109525c28e83SPiotr Jasiukajtis fmuld %f34,%f12,%f12 109625c28e83SPiotr Jasiukajtis 109725c28e83SPiotr Jasiukajtis fmuld %f36,%f22,%f22 109825c28e83SPiotr Jasiukajtis 109925c28e83SPiotr Jasiukajtis fmuld %f38,%f28,%f28 110025c28e83SPiotr Jasiukajtis 110125c28e83SPiotr Jasiukajtis fsubd %f6,%f4,%f6 110225c28e83SPiotr Jasiukajtis 110325c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f14 110425c28e83SPiotr Jasiukajtis 110525c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 110625c28e83SPiotr Jasiukajtis 110725c28e83SPiotr Jasiukajtis fsubd %f30,%f28,%f30 110825c28e83SPiotr Jasiukajtis 110925c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 111025c28e83SPiotr Jasiukajtis 111125c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 111225c28e83SPiotr Jasiukajtis 111325c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 111425c28e83SPiotr Jasiukajtis 111525c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 111625c28e83SPiotr Jasiukajtis mov %l0,%l4 111725c28e83SPiotr Jasiukajtis 111825c28e83SPiotr Jasiukajtis fnegd %f6,%f4 111925c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 112025c28e83SPiotr Jasiukajtis 112125c28e83SPiotr Jasiukajtis fnegd %f14,%f12 112225c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 112325c28e83SPiotr Jasiukajtis 112425c28e83SPiotr Jasiukajtis fnegd %f22,%f20 112525c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 112625c28e83SPiotr Jasiukajtis 112725c28e83SPiotr Jasiukajtis fnegd %f30,%f28 112825c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 112925c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 113025c28e83SPiotr Jasiukajtis 113125c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 113225c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 113325c28e83SPiotr Jasiukajtis st %f6,[%o0] 113425c28e83SPiotr Jasiukajtis 113525c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 113625c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 113725c28e83SPiotr Jasiukajtis st %f14,[%o1] 113825c28e83SPiotr Jasiukajtis 113925c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 114025c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 114125c28e83SPiotr Jasiukajtis st %f22,[%o2] 114225c28e83SPiotr Jasiukajtis 114325c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 114425c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 114525c28e83SPiotr Jasiukajtis st %f30,[%o3] 114625c28e83SPiotr Jasiukajtis 114725c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 114825c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 114925c28e83SPiotr Jasiukajtis! delay slot 115025c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 115125c28e83SPiotr Jasiukajtis 115225c28e83SPiotr Jasiukajtis ba,pt %icc,.end 115325c28e83SPiotr Jasiukajtis! delay slot 115425c28e83SPiotr Jasiukajtis nop 115525c28e83SPiotr Jasiukajtis 115625c28e83SPiotr Jasiukajtis .align 16 115725c28e83SPiotr Jasiukajtis.case3: 115825c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 ! sin(x2) 115925c28e83SPiotr Jasiukajtis 116025c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 ! sin(x3) 116125c28e83SPiotr Jasiukajtis 116225c28e83SPiotr Jasiukajtis fmuld %f0,qq3,%f6 ! cos(x0) 116325c28e83SPiotr Jasiukajtis 116425c28e83SPiotr Jasiukajtis fmuld %f8,qq3,%f14 ! cos(x1) 116525c28e83SPiotr Jasiukajtis 116625c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 116725c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 116825c28e83SPiotr Jasiukajtis 116925c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 117025c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 117125c28e83SPiotr Jasiukajtis 117225c28e83SPiotr Jasiukajtis faddd %f6,qq2,%f6 117325c28e83SPiotr Jasiukajtis fmuld %f0,pp2,%f4 117425c28e83SPiotr Jasiukajtis 117525c28e83SPiotr Jasiukajtis faddd %f14,qq2,%f14 117625c28e83SPiotr Jasiukajtis fmuld %f8,pp2,%f12 117725c28e83SPiotr Jasiukajtis 117825c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 117925c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 118025c28e83SPiotr Jasiukajtis 118125c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 118225c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 118325c28e83SPiotr Jasiukajtis 118425c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 118525c28e83SPiotr Jasiukajtis faddd %f4,pp1,%f4 118625c28e83SPiotr Jasiukajtis 118725c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 118825c28e83SPiotr Jasiukajtis faddd %f12,pp1,%f12 118925c28e83SPiotr Jasiukajtis 119025c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 119125c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 119225c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 119325c28e83SPiotr Jasiukajtis 119425c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 119525c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 119625c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 119725c28e83SPiotr Jasiukajtis 119825c28e83SPiotr Jasiukajtis faddd %f6,qq1,%f6 119925c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 120025c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 120125c28e83SPiotr Jasiukajtis 120225c28e83SPiotr Jasiukajtis faddd %f14,qq1,%f14 120325c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 120425c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 120525c28e83SPiotr Jasiukajtis 120625c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 120725c28e83SPiotr Jasiukajtis 120825c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 120925c28e83SPiotr Jasiukajtis 121025c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 121125c28e83SPiotr Jasiukajtis 121225c28e83SPiotr Jasiukajtis fmuld %f10,%f12,%f12 121325c28e83SPiotr Jasiukajtis 121425c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 121525c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 121625c28e83SPiotr Jasiukajtis 121725c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 121825c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 121925c28e83SPiotr Jasiukajtis 122025c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 122125c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 122225c28e83SPiotr Jasiukajtis ldd [%l4+16],%f0 122325c28e83SPiotr Jasiukajtis 122425c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 122525c28e83SPiotr Jasiukajtis faddd %f12,%f34,%f12 122625c28e83SPiotr Jasiukajtis ldd [%l5+16],%f8 122725c28e83SPiotr Jasiukajtis 122825c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 122925c28e83SPiotr Jasiukajtis faddd %f36,%f22,%f22 123025c28e83SPiotr Jasiukajtis 123125c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 123225c28e83SPiotr Jasiukajtis faddd %f38,%f30,%f30 123325c28e83SPiotr Jasiukajtis 123425c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 123525c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 123625c28e83SPiotr Jasiukajtis ldd [%l4+8],%f32 123725c28e83SPiotr Jasiukajtis 123825c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 123925c28e83SPiotr Jasiukajtis faddd %f12,%f10,%f12 124025c28e83SPiotr Jasiukajtis ldd [%l5+8],%f34 124125c28e83SPiotr Jasiukajtis 124225c28e83SPiotr Jasiukajtis faddd %f18,%f22,%f22 124325c28e83SPiotr Jasiukajtis ldd [%l6+16],%f36 124425c28e83SPiotr Jasiukajtis 124525c28e83SPiotr Jasiukajtis faddd %f26,%f30,%f30 124625c28e83SPiotr Jasiukajtis ldd [%l7+16],%f38 124725c28e83SPiotr Jasiukajtis 124825c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 124925c28e83SPiotr Jasiukajtis 125025c28e83SPiotr Jasiukajtis fmuld %f34,%f12,%f12 125125c28e83SPiotr Jasiukajtis 125225c28e83SPiotr Jasiukajtis fmuld %f36,%f22,%f22 125325c28e83SPiotr Jasiukajtis 125425c28e83SPiotr Jasiukajtis fmuld %f38,%f30,%f30 125525c28e83SPiotr Jasiukajtis 125625c28e83SPiotr Jasiukajtis fsubd %f6,%f4,%f6 125725c28e83SPiotr Jasiukajtis 125825c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f14 125925c28e83SPiotr Jasiukajtis 126025c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 126125c28e83SPiotr Jasiukajtis 126225c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 126325c28e83SPiotr Jasiukajtis 126425c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 126525c28e83SPiotr Jasiukajtis 126625c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 126725c28e83SPiotr Jasiukajtis 126825c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 126925c28e83SPiotr Jasiukajtis 127025c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 127125c28e83SPiotr Jasiukajtis mov %l0,%l4 127225c28e83SPiotr Jasiukajtis 127325c28e83SPiotr Jasiukajtis fnegd %f6,%f4 127425c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 127525c28e83SPiotr Jasiukajtis 127625c28e83SPiotr Jasiukajtis fnegd %f14,%f12 127725c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 127825c28e83SPiotr Jasiukajtis 127925c28e83SPiotr Jasiukajtis fnegd %f22,%f20 128025c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 128125c28e83SPiotr Jasiukajtis 128225c28e83SPiotr Jasiukajtis fnegd %f30,%f28 128325c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 128425c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 128525c28e83SPiotr Jasiukajtis 128625c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 128725c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 128825c28e83SPiotr Jasiukajtis st %f6,[%o0] 128925c28e83SPiotr Jasiukajtis 129025c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 129125c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 129225c28e83SPiotr Jasiukajtis st %f14,[%o1] 129325c28e83SPiotr Jasiukajtis 129425c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 129525c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 129625c28e83SPiotr Jasiukajtis st %f22,[%o2] 129725c28e83SPiotr Jasiukajtis 129825c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 129925c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 130025c28e83SPiotr Jasiukajtis st %f30,[%o3] 130125c28e83SPiotr Jasiukajtis 130225c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 130325c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 130425c28e83SPiotr Jasiukajtis! delay slot 130525c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 130625c28e83SPiotr Jasiukajtis 130725c28e83SPiotr Jasiukajtis ba,pt %icc,.end 130825c28e83SPiotr Jasiukajtis! delay slot 130925c28e83SPiotr Jasiukajtis nop 131025c28e83SPiotr Jasiukajtis 131125c28e83SPiotr Jasiukajtis .align 16 131225c28e83SPiotr Jasiukajtis.case4: 131325c28e83SPiotr Jasiukajtis fmuld %f18,%f18,%f16 131425c28e83SPiotr Jasiukajtis andcc %l2,1,%g0 131525c28e83SPiotr Jasiukajtis bz,pn %icc,.case6 131625c28e83SPiotr Jasiukajtis! delay slot 131725c28e83SPiotr Jasiukajtis fxor %f22,%f36,%f36 131825c28e83SPiotr Jasiukajtis 131925c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 132025c28e83SPiotr Jasiukajtis andcc %l3,1,%g0 132125c28e83SPiotr Jasiukajtis bz,pn %icc,.case5 132225c28e83SPiotr Jasiukajtis! delay slot 132325c28e83SPiotr Jasiukajtis fxor %f30,%f38,%f38 132425c28e83SPiotr Jasiukajtis 132525c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 ! sin(x1) 132625c28e83SPiotr Jasiukajtis 132725c28e83SPiotr Jasiukajtis fmuld %f0,qq3,%f6 ! cos(x0) 132825c28e83SPiotr Jasiukajtis 132925c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 133025c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 133125c28e83SPiotr Jasiukajtis 133225c28e83SPiotr Jasiukajtis fmuld %f16,qq3,%f22 ! cos(x2) 133325c28e83SPiotr Jasiukajtis 133425c28e83SPiotr Jasiukajtis fmuld %f24,qq3,%f30 ! cos(x3) 133525c28e83SPiotr Jasiukajtis 133625c28e83SPiotr Jasiukajtis faddd %f6,qq2,%f6 133725c28e83SPiotr Jasiukajtis fmuld %f0,pp2,%f4 133825c28e83SPiotr Jasiukajtis 133925c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 134025c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 134125c28e83SPiotr Jasiukajtis 134225c28e83SPiotr Jasiukajtis faddd %f22,qq2,%f22 134325c28e83SPiotr Jasiukajtis fmuld %f16,pp2,%f20 134425c28e83SPiotr Jasiukajtis 134525c28e83SPiotr Jasiukajtis faddd %f30,qq2,%f30 134625c28e83SPiotr Jasiukajtis fmuld %f24,pp2,%f28 134725c28e83SPiotr Jasiukajtis 134825c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 134925c28e83SPiotr Jasiukajtis faddd %f4,pp1,%f4 135025c28e83SPiotr Jasiukajtis 135125c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 135225c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 135325c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 135425c28e83SPiotr Jasiukajtis 135525c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 135625c28e83SPiotr Jasiukajtis faddd %f20,pp1,%f20 135725c28e83SPiotr Jasiukajtis 135825c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 135925c28e83SPiotr Jasiukajtis faddd %f28,pp1,%f28 136025c28e83SPiotr Jasiukajtis 136125c28e83SPiotr Jasiukajtis faddd %f6,qq1,%f6 136225c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 136325c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 136425c28e83SPiotr Jasiukajtis 136525c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 136625c28e83SPiotr Jasiukajtis 136725c28e83SPiotr Jasiukajtis faddd %f22,qq1,%f22 136825c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 136925c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 137025c28e83SPiotr Jasiukajtis 137125c28e83SPiotr Jasiukajtis faddd %f30,qq1,%f30 137225c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 137325c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 137425c28e83SPiotr Jasiukajtis 137525c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 137625c28e83SPiotr Jasiukajtis 137725c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 137825c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 137925c28e83SPiotr Jasiukajtis 138025c28e83SPiotr Jasiukajtis fmuld %f18,%f20,%f20 138125c28e83SPiotr Jasiukajtis 138225c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f28 138325c28e83SPiotr Jasiukajtis 138425c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 138525c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 138625c28e83SPiotr Jasiukajtis ldd [%l4+16],%f0 138725c28e83SPiotr Jasiukajtis 138825c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 138925c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f14 139025c28e83SPiotr Jasiukajtis 139125c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 139225c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 139325c28e83SPiotr Jasiukajtis ldd [%l6+16],%f16 139425c28e83SPiotr Jasiukajtis 139525c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 139625c28e83SPiotr Jasiukajtis faddd %f28,%f38,%f28 139725c28e83SPiotr Jasiukajtis ldd [%l7+16],%f24 139825c28e83SPiotr Jasiukajtis 139925c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 140025c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 140125c28e83SPiotr Jasiukajtis ldd [%l4+8],%f32 140225c28e83SPiotr Jasiukajtis 140325c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f14 140425c28e83SPiotr Jasiukajtis ldd [%l5+16],%f34 140525c28e83SPiotr Jasiukajtis 140625c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 140725c28e83SPiotr Jasiukajtis faddd %f20,%f18,%f20 140825c28e83SPiotr Jasiukajtis ldd [%l6+8],%f36 140925c28e83SPiotr Jasiukajtis 141025c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 141125c28e83SPiotr Jasiukajtis faddd %f28,%f26,%f28 141225c28e83SPiotr Jasiukajtis ldd [%l7+8],%f38 141325c28e83SPiotr Jasiukajtis 141425c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 141525c28e83SPiotr Jasiukajtis 141625c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 141725c28e83SPiotr Jasiukajtis 141825c28e83SPiotr Jasiukajtis fmuld %f36,%f20,%f20 141925c28e83SPiotr Jasiukajtis 142025c28e83SPiotr Jasiukajtis fmuld %f38,%f28,%f28 142125c28e83SPiotr Jasiukajtis 142225c28e83SPiotr Jasiukajtis fsubd %f6,%f4,%f6 142325c28e83SPiotr Jasiukajtis 142425c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 142525c28e83SPiotr Jasiukajtis 142625c28e83SPiotr Jasiukajtis fsubd %f22,%f20,%f22 142725c28e83SPiotr Jasiukajtis 142825c28e83SPiotr Jasiukajtis fsubd %f30,%f28,%f30 142925c28e83SPiotr Jasiukajtis 143025c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 143125c28e83SPiotr Jasiukajtis 143225c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 143325c28e83SPiotr Jasiukajtis 143425c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 143525c28e83SPiotr Jasiukajtis 143625c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 143725c28e83SPiotr Jasiukajtis mov %l0,%l4 143825c28e83SPiotr Jasiukajtis 143925c28e83SPiotr Jasiukajtis fnegd %f6,%f4 144025c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 144125c28e83SPiotr Jasiukajtis 144225c28e83SPiotr Jasiukajtis fnegd %f14,%f12 144325c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 144425c28e83SPiotr Jasiukajtis 144525c28e83SPiotr Jasiukajtis fnegd %f22,%f20 144625c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 144725c28e83SPiotr Jasiukajtis 144825c28e83SPiotr Jasiukajtis fnegd %f30,%f28 144925c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 145025c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 145125c28e83SPiotr Jasiukajtis 145225c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 145325c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 145425c28e83SPiotr Jasiukajtis st %f6,[%o0] 145525c28e83SPiotr Jasiukajtis 145625c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 145725c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 145825c28e83SPiotr Jasiukajtis st %f14,[%o1] 145925c28e83SPiotr Jasiukajtis 146025c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 146125c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 146225c28e83SPiotr Jasiukajtis st %f22,[%o2] 146325c28e83SPiotr Jasiukajtis 146425c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 146525c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 146625c28e83SPiotr Jasiukajtis st %f30,[%o3] 146725c28e83SPiotr Jasiukajtis 146825c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 146925c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 147025c28e83SPiotr Jasiukajtis! delay slot 147125c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 147225c28e83SPiotr Jasiukajtis 147325c28e83SPiotr Jasiukajtis ba,pt %icc,.end 147425c28e83SPiotr Jasiukajtis! delay slot 147525c28e83SPiotr Jasiukajtis nop 147625c28e83SPiotr Jasiukajtis 147725c28e83SPiotr Jasiukajtis .align 16 147825c28e83SPiotr Jasiukajtis.case5: 147925c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 ! sin(x1) 148025c28e83SPiotr Jasiukajtis 148125c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 ! sin(x3) 148225c28e83SPiotr Jasiukajtis 148325c28e83SPiotr Jasiukajtis fmuld %f0,qq3,%f6 ! cos(x0) 148425c28e83SPiotr Jasiukajtis 148525c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 148625c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 148725c28e83SPiotr Jasiukajtis 148825c28e83SPiotr Jasiukajtis fmuld %f16,qq3,%f22 ! cos(x2) 148925c28e83SPiotr Jasiukajtis 149025c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 149125c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 149225c28e83SPiotr Jasiukajtis 149325c28e83SPiotr Jasiukajtis faddd %f6,qq2,%f6 149425c28e83SPiotr Jasiukajtis fmuld %f0,pp2,%f4 149525c28e83SPiotr Jasiukajtis 149625c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 149725c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 149825c28e83SPiotr Jasiukajtis 149925c28e83SPiotr Jasiukajtis faddd %f22,qq2,%f22 150025c28e83SPiotr Jasiukajtis fmuld %f16,pp2,%f20 150125c28e83SPiotr Jasiukajtis 150225c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 150325c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 150425c28e83SPiotr Jasiukajtis 150525c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 150625c28e83SPiotr Jasiukajtis faddd %f4,pp1,%f4 150725c28e83SPiotr Jasiukajtis 150825c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 150925c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 151025c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 151125c28e83SPiotr Jasiukajtis 151225c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 151325c28e83SPiotr Jasiukajtis faddd %f20,pp1,%f20 151425c28e83SPiotr Jasiukajtis 151525c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 151625c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 151725c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 151825c28e83SPiotr Jasiukajtis 151925c28e83SPiotr Jasiukajtis faddd %f6,qq1,%f6 152025c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 152125c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 152225c28e83SPiotr Jasiukajtis 152325c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 152425c28e83SPiotr Jasiukajtis 152525c28e83SPiotr Jasiukajtis faddd %f22,qq1,%f22 152625c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 152725c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 152825c28e83SPiotr Jasiukajtis 152925c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 153025c28e83SPiotr Jasiukajtis 153125c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 153225c28e83SPiotr Jasiukajtis 153325c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 153425c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 153525c28e83SPiotr Jasiukajtis 153625c28e83SPiotr Jasiukajtis fmuld %f18,%f20,%f20 153725c28e83SPiotr Jasiukajtis 153825c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 153925c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 154025c28e83SPiotr Jasiukajtis 154125c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 154225c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 154325c28e83SPiotr Jasiukajtis ldd [%l4+16],%f0 154425c28e83SPiotr Jasiukajtis 154525c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 154625c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f14 154725c28e83SPiotr Jasiukajtis 154825c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 154925c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 155025c28e83SPiotr Jasiukajtis ldd [%l6+16],%f16 155125c28e83SPiotr Jasiukajtis 155225c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 155325c28e83SPiotr Jasiukajtis faddd %f38,%f30,%f30 155425c28e83SPiotr Jasiukajtis 155525c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 155625c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 155725c28e83SPiotr Jasiukajtis ldd [%l4+8],%f32 155825c28e83SPiotr Jasiukajtis 155925c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f14 156025c28e83SPiotr Jasiukajtis ldd [%l5+16],%f34 156125c28e83SPiotr Jasiukajtis 156225c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 156325c28e83SPiotr Jasiukajtis faddd %f20,%f18,%f20 156425c28e83SPiotr Jasiukajtis ldd [%l6+8],%f36 156525c28e83SPiotr Jasiukajtis 156625c28e83SPiotr Jasiukajtis faddd %f26,%f30,%f30 156725c28e83SPiotr Jasiukajtis ldd [%l7+16],%f38 156825c28e83SPiotr Jasiukajtis 156925c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 157025c28e83SPiotr Jasiukajtis 157125c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 157225c28e83SPiotr Jasiukajtis 157325c28e83SPiotr Jasiukajtis fmuld %f36,%f20,%f20 157425c28e83SPiotr Jasiukajtis 157525c28e83SPiotr Jasiukajtis fmuld %f38,%f30,%f30 157625c28e83SPiotr Jasiukajtis 157725c28e83SPiotr Jasiukajtis fsubd %f6,%f4,%f6 157825c28e83SPiotr Jasiukajtis 157925c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 158025c28e83SPiotr Jasiukajtis 158125c28e83SPiotr Jasiukajtis fsubd %f22,%f20,%f22 158225c28e83SPiotr Jasiukajtis 158325c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 158425c28e83SPiotr Jasiukajtis 158525c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 158625c28e83SPiotr Jasiukajtis 158725c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 158825c28e83SPiotr Jasiukajtis 158925c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 159025c28e83SPiotr Jasiukajtis 159125c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 159225c28e83SPiotr Jasiukajtis mov %l0,%l4 159325c28e83SPiotr Jasiukajtis 159425c28e83SPiotr Jasiukajtis fnegd %f6,%f4 159525c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 159625c28e83SPiotr Jasiukajtis 159725c28e83SPiotr Jasiukajtis fnegd %f14,%f12 159825c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 159925c28e83SPiotr Jasiukajtis 160025c28e83SPiotr Jasiukajtis fnegd %f22,%f20 160125c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 160225c28e83SPiotr Jasiukajtis 160325c28e83SPiotr Jasiukajtis fnegd %f30,%f28 160425c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 160525c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 160625c28e83SPiotr Jasiukajtis 160725c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 160825c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 160925c28e83SPiotr Jasiukajtis st %f6,[%o0] 161025c28e83SPiotr Jasiukajtis 161125c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 161225c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 161325c28e83SPiotr Jasiukajtis st %f14,[%o1] 161425c28e83SPiotr Jasiukajtis 161525c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 161625c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 161725c28e83SPiotr Jasiukajtis st %f22,[%o2] 161825c28e83SPiotr Jasiukajtis 161925c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 162025c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 162125c28e83SPiotr Jasiukajtis st %f30,[%o3] 162225c28e83SPiotr Jasiukajtis 162325c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 162425c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 162525c28e83SPiotr Jasiukajtis! delay slot 162625c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 162725c28e83SPiotr Jasiukajtis 162825c28e83SPiotr Jasiukajtis ba,pt %icc,.end 162925c28e83SPiotr Jasiukajtis! delay slot 163025c28e83SPiotr Jasiukajtis nop 163125c28e83SPiotr Jasiukajtis 163225c28e83SPiotr Jasiukajtis .align 16 163325c28e83SPiotr Jasiukajtis.case6: 163425c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 163525c28e83SPiotr Jasiukajtis andcc %l3,1,%g0 163625c28e83SPiotr Jasiukajtis bz,pn %icc,.case7 163725c28e83SPiotr Jasiukajtis! delay slot 163825c28e83SPiotr Jasiukajtis fxor %f30,%f38,%f38 163925c28e83SPiotr Jasiukajtis 164025c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 ! sin(x1) 164125c28e83SPiotr Jasiukajtis 164225c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 ! sin(x2) 164325c28e83SPiotr Jasiukajtis 164425c28e83SPiotr Jasiukajtis fmuld %f0,qq3,%f6 ! cos(x0) 164525c28e83SPiotr Jasiukajtis 164625c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 164725c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 164825c28e83SPiotr Jasiukajtis 164925c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 165025c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 165125c28e83SPiotr Jasiukajtis 165225c28e83SPiotr Jasiukajtis fmuld %f24,qq3,%f30 ! cos(x3) 165325c28e83SPiotr Jasiukajtis 165425c28e83SPiotr Jasiukajtis faddd %f6,qq2,%f6 165525c28e83SPiotr Jasiukajtis fmuld %f0,pp2,%f4 165625c28e83SPiotr Jasiukajtis 165725c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 165825c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 165925c28e83SPiotr Jasiukajtis 166025c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 166125c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 166225c28e83SPiotr Jasiukajtis 166325c28e83SPiotr Jasiukajtis faddd %f30,qq2,%f30 166425c28e83SPiotr Jasiukajtis fmuld %f24,pp2,%f28 166525c28e83SPiotr Jasiukajtis 166625c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 166725c28e83SPiotr Jasiukajtis faddd %f4,pp1,%f4 166825c28e83SPiotr Jasiukajtis 166925c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 167025c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 167125c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 167225c28e83SPiotr Jasiukajtis 167325c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 167425c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 167525c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 167625c28e83SPiotr Jasiukajtis 167725c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 167825c28e83SPiotr Jasiukajtis faddd %f28,pp1,%f28 167925c28e83SPiotr Jasiukajtis 168025c28e83SPiotr Jasiukajtis faddd %f6,qq1,%f6 168125c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 168225c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 168325c28e83SPiotr Jasiukajtis 168425c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 168525c28e83SPiotr Jasiukajtis 168625c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 168725c28e83SPiotr Jasiukajtis 168825c28e83SPiotr Jasiukajtis faddd %f30,qq1,%f30 168925c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 169025c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 169125c28e83SPiotr Jasiukajtis 169225c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 169325c28e83SPiotr Jasiukajtis 169425c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 169525c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 169625c28e83SPiotr Jasiukajtis 169725c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 169825c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 169925c28e83SPiotr Jasiukajtis 170025c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f28 170125c28e83SPiotr Jasiukajtis 170225c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 170325c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 170425c28e83SPiotr Jasiukajtis ldd [%l4+16],%f0 170525c28e83SPiotr Jasiukajtis 170625c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 170725c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f14 170825c28e83SPiotr Jasiukajtis 170925c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 171025c28e83SPiotr Jasiukajtis faddd %f36,%f22,%f22 171125c28e83SPiotr Jasiukajtis 171225c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 171325c28e83SPiotr Jasiukajtis faddd %f28,%f38,%f28 171425c28e83SPiotr Jasiukajtis ldd [%l7+16],%f24 171525c28e83SPiotr Jasiukajtis 171625c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 171725c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 171825c28e83SPiotr Jasiukajtis ldd [%l4+8],%f32 171925c28e83SPiotr Jasiukajtis 172025c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f14 172125c28e83SPiotr Jasiukajtis ldd [%l5+16],%f34 172225c28e83SPiotr Jasiukajtis 172325c28e83SPiotr Jasiukajtis faddd %f18,%f22,%f22 172425c28e83SPiotr Jasiukajtis ldd [%l6+16],%f36 172525c28e83SPiotr Jasiukajtis 172625c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 172725c28e83SPiotr Jasiukajtis faddd %f28,%f26,%f28 172825c28e83SPiotr Jasiukajtis ldd [%l7+8],%f38 172925c28e83SPiotr Jasiukajtis 173025c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 173125c28e83SPiotr Jasiukajtis 173225c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 173325c28e83SPiotr Jasiukajtis 173425c28e83SPiotr Jasiukajtis fmuld %f36,%f22,%f22 173525c28e83SPiotr Jasiukajtis 173625c28e83SPiotr Jasiukajtis fmuld %f38,%f28,%f28 173725c28e83SPiotr Jasiukajtis 173825c28e83SPiotr Jasiukajtis fsubd %f6,%f4,%f6 173925c28e83SPiotr Jasiukajtis 174025c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 174125c28e83SPiotr Jasiukajtis 174225c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 174325c28e83SPiotr Jasiukajtis 174425c28e83SPiotr Jasiukajtis fsubd %f30,%f28,%f30 174525c28e83SPiotr Jasiukajtis 174625c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 174725c28e83SPiotr Jasiukajtis 174825c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 174925c28e83SPiotr Jasiukajtis 175025c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 175125c28e83SPiotr Jasiukajtis 175225c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 175325c28e83SPiotr Jasiukajtis mov %l0,%l4 175425c28e83SPiotr Jasiukajtis 175525c28e83SPiotr Jasiukajtis fnegd %f6,%f4 175625c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 175725c28e83SPiotr Jasiukajtis 175825c28e83SPiotr Jasiukajtis fnegd %f14,%f12 175925c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 176025c28e83SPiotr Jasiukajtis 176125c28e83SPiotr Jasiukajtis fnegd %f22,%f20 176225c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 176325c28e83SPiotr Jasiukajtis 176425c28e83SPiotr Jasiukajtis fnegd %f30,%f28 176525c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 176625c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 176725c28e83SPiotr Jasiukajtis 176825c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 176925c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 177025c28e83SPiotr Jasiukajtis st %f6,[%o0] 177125c28e83SPiotr Jasiukajtis 177225c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 177325c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 177425c28e83SPiotr Jasiukajtis st %f14,[%o1] 177525c28e83SPiotr Jasiukajtis 177625c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 177725c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 177825c28e83SPiotr Jasiukajtis st %f22,[%o2] 177925c28e83SPiotr Jasiukajtis 178025c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 178125c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 178225c28e83SPiotr Jasiukajtis st %f30,[%o3] 178325c28e83SPiotr Jasiukajtis 178425c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 178525c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 178625c28e83SPiotr Jasiukajtis! delay slot 178725c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 178825c28e83SPiotr Jasiukajtis 178925c28e83SPiotr Jasiukajtis ba,pt %icc,.end 179025c28e83SPiotr Jasiukajtis! delay slot 179125c28e83SPiotr Jasiukajtis nop 179225c28e83SPiotr Jasiukajtis 179325c28e83SPiotr Jasiukajtis .align 16 179425c28e83SPiotr Jasiukajtis.case7: 179525c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 ! sin(x1) 179625c28e83SPiotr Jasiukajtis 179725c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 ! sin(x2) 179825c28e83SPiotr Jasiukajtis 179925c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 ! sin(x3) 180025c28e83SPiotr Jasiukajtis 180125c28e83SPiotr Jasiukajtis fmuld %f0,qq3,%f6 ! cos(x0) 180225c28e83SPiotr Jasiukajtis 180325c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 180425c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 180525c28e83SPiotr Jasiukajtis 180625c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 180725c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 180825c28e83SPiotr Jasiukajtis 180925c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 181025c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 181125c28e83SPiotr Jasiukajtis 181225c28e83SPiotr Jasiukajtis faddd %f6,qq2,%f6 181325c28e83SPiotr Jasiukajtis fmuld %f0,pp2,%f4 181425c28e83SPiotr Jasiukajtis 181525c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 181625c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 181725c28e83SPiotr Jasiukajtis 181825c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 181925c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 182025c28e83SPiotr Jasiukajtis 182125c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 182225c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 182325c28e83SPiotr Jasiukajtis 182425c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 182525c28e83SPiotr Jasiukajtis faddd %f4,pp1,%f4 182625c28e83SPiotr Jasiukajtis 182725c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 182825c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 182925c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 183025c28e83SPiotr Jasiukajtis 183125c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 183225c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 183325c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 183425c28e83SPiotr Jasiukajtis 183525c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 183625c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 183725c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 183825c28e83SPiotr Jasiukajtis 183925c28e83SPiotr Jasiukajtis faddd %f6,qq1,%f6 184025c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 184125c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 184225c28e83SPiotr Jasiukajtis 184325c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 184425c28e83SPiotr Jasiukajtis 184525c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 184625c28e83SPiotr Jasiukajtis 184725c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 184825c28e83SPiotr Jasiukajtis 184925c28e83SPiotr Jasiukajtis fmuld %f2,%f4,%f4 185025c28e83SPiotr Jasiukajtis 185125c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 185225c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 185325c28e83SPiotr Jasiukajtis 185425c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 185525c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 185625c28e83SPiotr Jasiukajtis 185725c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 185825c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 185925c28e83SPiotr Jasiukajtis 186025c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 186125c28e83SPiotr Jasiukajtis faddd %f4,%f32,%f4 186225c28e83SPiotr Jasiukajtis ldd [%l4+16],%f0 186325c28e83SPiotr Jasiukajtis 186425c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 186525c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f14 186625c28e83SPiotr Jasiukajtis 186725c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 186825c28e83SPiotr Jasiukajtis faddd %f36,%f22,%f22 186925c28e83SPiotr Jasiukajtis 187025c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 187125c28e83SPiotr Jasiukajtis faddd %f38,%f30,%f30 187225c28e83SPiotr Jasiukajtis 187325c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 187425c28e83SPiotr Jasiukajtis faddd %f4,%f2,%f4 187525c28e83SPiotr Jasiukajtis ldd [%l4+8],%f32 187625c28e83SPiotr Jasiukajtis 187725c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f14 187825c28e83SPiotr Jasiukajtis ldd [%l5+16],%f34 187925c28e83SPiotr Jasiukajtis 188025c28e83SPiotr Jasiukajtis faddd %f18,%f22,%f22 188125c28e83SPiotr Jasiukajtis ldd [%l6+16],%f36 188225c28e83SPiotr Jasiukajtis 188325c28e83SPiotr Jasiukajtis faddd %f26,%f30,%f30 188425c28e83SPiotr Jasiukajtis ldd [%l7+16],%f38 188525c28e83SPiotr Jasiukajtis 188625c28e83SPiotr Jasiukajtis fmuld %f32,%f4,%f4 188725c28e83SPiotr Jasiukajtis 188825c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 188925c28e83SPiotr Jasiukajtis 189025c28e83SPiotr Jasiukajtis fmuld %f36,%f22,%f22 189125c28e83SPiotr Jasiukajtis 189225c28e83SPiotr Jasiukajtis fmuld %f38,%f30,%f30 189325c28e83SPiotr Jasiukajtis 189425c28e83SPiotr Jasiukajtis fsubd %f6,%f4,%f6 189525c28e83SPiotr Jasiukajtis 189625c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 189725c28e83SPiotr Jasiukajtis 189825c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 189925c28e83SPiotr Jasiukajtis 190025c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 190125c28e83SPiotr Jasiukajtis 190225c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 190325c28e83SPiotr Jasiukajtis 190425c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 190525c28e83SPiotr Jasiukajtis 190625c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 190725c28e83SPiotr Jasiukajtis 190825c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 190925c28e83SPiotr Jasiukajtis mov %l0,%l4 191025c28e83SPiotr Jasiukajtis 191125c28e83SPiotr Jasiukajtis fnegd %f6,%f4 191225c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 191325c28e83SPiotr Jasiukajtis 191425c28e83SPiotr Jasiukajtis fnegd %f14,%f12 191525c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 191625c28e83SPiotr Jasiukajtis 191725c28e83SPiotr Jasiukajtis fnegd %f22,%f20 191825c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 191925c28e83SPiotr Jasiukajtis 192025c28e83SPiotr Jasiukajtis fnegd %f30,%f28 192125c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 192225c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 192325c28e83SPiotr Jasiukajtis 192425c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 192525c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 192625c28e83SPiotr Jasiukajtis st %f6,[%o0] 192725c28e83SPiotr Jasiukajtis 192825c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 192925c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 193025c28e83SPiotr Jasiukajtis st %f14,[%o1] 193125c28e83SPiotr Jasiukajtis 193225c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 193325c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 193425c28e83SPiotr Jasiukajtis st %f22,[%o2] 193525c28e83SPiotr Jasiukajtis 193625c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 193725c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 193825c28e83SPiotr Jasiukajtis st %f30,[%o3] 193925c28e83SPiotr Jasiukajtis 194025c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 194125c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 194225c28e83SPiotr Jasiukajtis! delay slot 194325c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 194425c28e83SPiotr Jasiukajtis 194525c28e83SPiotr Jasiukajtis ba,pt %icc,.end 194625c28e83SPiotr Jasiukajtis! delay slot 194725c28e83SPiotr Jasiukajtis nop 194825c28e83SPiotr Jasiukajtis 194925c28e83SPiotr Jasiukajtis .align 16 195025c28e83SPiotr Jasiukajtis.case8: 195125c28e83SPiotr Jasiukajtis fmuld %f10,%f10,%f8 195225c28e83SPiotr Jasiukajtis andcc %l1,1,%g0 195325c28e83SPiotr Jasiukajtis bz,pn %icc,.case12 195425c28e83SPiotr Jasiukajtis! delay slot 195525c28e83SPiotr Jasiukajtis fxor %f14,%f34,%f34 195625c28e83SPiotr Jasiukajtis 195725c28e83SPiotr Jasiukajtis fmuld %f18,%f18,%f16 195825c28e83SPiotr Jasiukajtis andcc %l2,1,%g0 195925c28e83SPiotr Jasiukajtis bz,pn %icc,.case10 196025c28e83SPiotr Jasiukajtis! delay slot 196125c28e83SPiotr Jasiukajtis fxor %f22,%f36,%f36 196225c28e83SPiotr Jasiukajtis 196325c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 196425c28e83SPiotr Jasiukajtis andcc %l3,1,%g0 196525c28e83SPiotr Jasiukajtis bz,pn %icc,.case9 196625c28e83SPiotr Jasiukajtis! delay slot 196725c28e83SPiotr Jasiukajtis fxor %f30,%f38,%f38 196825c28e83SPiotr Jasiukajtis 196925c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 ! sin(x0) 197025c28e83SPiotr Jasiukajtis 197125c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 197225c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 197325c28e83SPiotr Jasiukajtis 197425c28e83SPiotr Jasiukajtis fmuld %f8,qq3,%f14 ! cos(x1) 197525c28e83SPiotr Jasiukajtis 197625c28e83SPiotr Jasiukajtis fmuld %f16,qq3,%f22 ! cos(x2) 197725c28e83SPiotr Jasiukajtis 197825c28e83SPiotr Jasiukajtis fmuld %f24,qq3,%f30 ! cos(x3) 197925c28e83SPiotr Jasiukajtis 198025c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 198125c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 198225c28e83SPiotr Jasiukajtis 198325c28e83SPiotr Jasiukajtis faddd %f14,qq2,%f14 198425c28e83SPiotr Jasiukajtis fmuld %f8,pp2,%f12 198525c28e83SPiotr Jasiukajtis 198625c28e83SPiotr Jasiukajtis faddd %f22,qq2,%f22 198725c28e83SPiotr Jasiukajtis fmuld %f16,pp2,%f20 198825c28e83SPiotr Jasiukajtis 198925c28e83SPiotr Jasiukajtis faddd %f30,qq2,%f30 199025c28e83SPiotr Jasiukajtis fmuld %f24,pp2,%f28 199125c28e83SPiotr Jasiukajtis 199225c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 199325c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 199425c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 199525c28e83SPiotr Jasiukajtis 199625c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 199725c28e83SPiotr Jasiukajtis faddd %f12,pp1,%f12 199825c28e83SPiotr Jasiukajtis 199925c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 200025c28e83SPiotr Jasiukajtis faddd %f20,pp1,%f20 200125c28e83SPiotr Jasiukajtis 200225c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 200325c28e83SPiotr Jasiukajtis faddd %f28,pp1,%f28 200425c28e83SPiotr Jasiukajtis 200525c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 200625c28e83SPiotr Jasiukajtis 200725c28e83SPiotr Jasiukajtis faddd %f14,qq1,%f14 200825c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 200925c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 201025c28e83SPiotr Jasiukajtis 201125c28e83SPiotr Jasiukajtis faddd %f22,qq1,%f22 201225c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 201325c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 201425c28e83SPiotr Jasiukajtis 201525c28e83SPiotr Jasiukajtis faddd %f30,qq1,%f30 201625c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 201725c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 201825c28e83SPiotr Jasiukajtis 201925c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 202025c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 202125c28e83SPiotr Jasiukajtis 202225c28e83SPiotr Jasiukajtis fmuld %f10,%f12,%f12 202325c28e83SPiotr Jasiukajtis 202425c28e83SPiotr Jasiukajtis fmuld %f18,%f20,%f20 202525c28e83SPiotr Jasiukajtis 202625c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f28 202725c28e83SPiotr Jasiukajtis 202825c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 202925c28e83SPiotr Jasiukajtis faddd %f32,%f6,%f6 203025c28e83SPiotr Jasiukajtis 203125c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 203225c28e83SPiotr Jasiukajtis faddd %f12,%f34,%f12 203325c28e83SPiotr Jasiukajtis ldd [%l5+16],%f8 203425c28e83SPiotr Jasiukajtis 203525c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 203625c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 203725c28e83SPiotr Jasiukajtis ldd [%l6+16],%f16 203825c28e83SPiotr Jasiukajtis 203925c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 204025c28e83SPiotr Jasiukajtis faddd %f28,%f38,%f28 204125c28e83SPiotr Jasiukajtis ldd [%l7+16],%f24 204225c28e83SPiotr Jasiukajtis 204325c28e83SPiotr Jasiukajtis faddd %f2,%f6,%f6 204425c28e83SPiotr Jasiukajtis ldd [%l4+16],%f32 204525c28e83SPiotr Jasiukajtis 204625c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 204725c28e83SPiotr Jasiukajtis faddd %f12,%f10,%f12 204825c28e83SPiotr Jasiukajtis ldd [%l5+8],%f34 204925c28e83SPiotr Jasiukajtis 205025c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 205125c28e83SPiotr Jasiukajtis faddd %f20,%f18,%f20 205225c28e83SPiotr Jasiukajtis ldd [%l6+8],%f36 205325c28e83SPiotr Jasiukajtis 205425c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 205525c28e83SPiotr Jasiukajtis faddd %f28,%f26,%f28 205625c28e83SPiotr Jasiukajtis ldd [%l7+8],%f38 205725c28e83SPiotr Jasiukajtis 205825c28e83SPiotr Jasiukajtis fmuld %f32,%f6,%f6 205925c28e83SPiotr Jasiukajtis 206025c28e83SPiotr Jasiukajtis fmuld %f34,%f12,%f12 206125c28e83SPiotr Jasiukajtis 206225c28e83SPiotr Jasiukajtis fmuld %f36,%f20,%f20 206325c28e83SPiotr Jasiukajtis 206425c28e83SPiotr Jasiukajtis fmuld %f38,%f28,%f28 206525c28e83SPiotr Jasiukajtis 206625c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 206725c28e83SPiotr Jasiukajtis 206825c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f14 206925c28e83SPiotr Jasiukajtis 207025c28e83SPiotr Jasiukajtis fsubd %f22,%f20,%f22 207125c28e83SPiotr Jasiukajtis 207225c28e83SPiotr Jasiukajtis fsubd %f30,%f28,%f30 207325c28e83SPiotr Jasiukajtis 207425c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 207525c28e83SPiotr Jasiukajtis 207625c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 207725c28e83SPiotr Jasiukajtis 207825c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 207925c28e83SPiotr Jasiukajtis 208025c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 208125c28e83SPiotr Jasiukajtis mov %l0,%l4 208225c28e83SPiotr Jasiukajtis 208325c28e83SPiotr Jasiukajtis fnegd %f6,%f4 208425c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 208525c28e83SPiotr Jasiukajtis 208625c28e83SPiotr Jasiukajtis fnegd %f14,%f12 208725c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 208825c28e83SPiotr Jasiukajtis 208925c28e83SPiotr Jasiukajtis fnegd %f22,%f20 209025c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 209125c28e83SPiotr Jasiukajtis 209225c28e83SPiotr Jasiukajtis fnegd %f30,%f28 209325c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 209425c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 209525c28e83SPiotr Jasiukajtis 209625c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 209725c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 209825c28e83SPiotr Jasiukajtis st %f6,[%o0] 209925c28e83SPiotr Jasiukajtis 210025c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 210125c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 210225c28e83SPiotr Jasiukajtis st %f14,[%o1] 210325c28e83SPiotr Jasiukajtis 210425c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 210525c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 210625c28e83SPiotr Jasiukajtis st %f22,[%o2] 210725c28e83SPiotr Jasiukajtis 210825c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 210925c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 211025c28e83SPiotr Jasiukajtis st %f30,[%o3] 211125c28e83SPiotr Jasiukajtis 211225c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 211325c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 211425c28e83SPiotr Jasiukajtis! delay slot 211525c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 211625c28e83SPiotr Jasiukajtis 211725c28e83SPiotr Jasiukajtis ba,pt %icc,.end 211825c28e83SPiotr Jasiukajtis! delay slot 211925c28e83SPiotr Jasiukajtis nop 212025c28e83SPiotr Jasiukajtis 212125c28e83SPiotr Jasiukajtis .align 16 212225c28e83SPiotr Jasiukajtis.case9: 212325c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 ! sin(x0) 212425c28e83SPiotr Jasiukajtis 212525c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 ! sin(x3) 212625c28e83SPiotr Jasiukajtis 212725c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 212825c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 212925c28e83SPiotr Jasiukajtis 213025c28e83SPiotr Jasiukajtis fmuld %f8,qq3,%f14 ! cos(x1) 213125c28e83SPiotr Jasiukajtis 213225c28e83SPiotr Jasiukajtis fmuld %f16,qq3,%f22 ! cos(x2) 213325c28e83SPiotr Jasiukajtis 213425c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 213525c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 213625c28e83SPiotr Jasiukajtis 213725c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 213825c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 213925c28e83SPiotr Jasiukajtis 214025c28e83SPiotr Jasiukajtis faddd %f14,qq2,%f14 214125c28e83SPiotr Jasiukajtis fmuld %f8,pp2,%f12 214225c28e83SPiotr Jasiukajtis 214325c28e83SPiotr Jasiukajtis faddd %f22,qq2,%f22 214425c28e83SPiotr Jasiukajtis fmuld %f16,pp2,%f20 214525c28e83SPiotr Jasiukajtis 214625c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 214725c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 214825c28e83SPiotr Jasiukajtis 214925c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 215025c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 215125c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 215225c28e83SPiotr Jasiukajtis 215325c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 215425c28e83SPiotr Jasiukajtis faddd %f12,pp1,%f12 215525c28e83SPiotr Jasiukajtis 215625c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 215725c28e83SPiotr Jasiukajtis faddd %f20,pp1,%f20 215825c28e83SPiotr Jasiukajtis 215925c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 216025c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 216125c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 216225c28e83SPiotr Jasiukajtis 216325c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 216425c28e83SPiotr Jasiukajtis 216525c28e83SPiotr Jasiukajtis faddd %f14,qq1,%f14 216625c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 216725c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 216825c28e83SPiotr Jasiukajtis 216925c28e83SPiotr Jasiukajtis faddd %f22,qq1,%f22 217025c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 217125c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 217225c28e83SPiotr Jasiukajtis 217325c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 217425c28e83SPiotr Jasiukajtis 217525c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 217625c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 217725c28e83SPiotr Jasiukajtis 217825c28e83SPiotr Jasiukajtis fmuld %f10,%f12,%f12 217925c28e83SPiotr Jasiukajtis 218025c28e83SPiotr Jasiukajtis fmuld %f18,%f20,%f20 218125c28e83SPiotr Jasiukajtis 218225c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 218325c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 218425c28e83SPiotr Jasiukajtis 218525c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 218625c28e83SPiotr Jasiukajtis faddd %f32,%f6,%f6 218725c28e83SPiotr Jasiukajtis 218825c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 218925c28e83SPiotr Jasiukajtis faddd %f12,%f34,%f12 219025c28e83SPiotr Jasiukajtis ldd [%l5+16],%f8 219125c28e83SPiotr Jasiukajtis 219225c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 219325c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 219425c28e83SPiotr Jasiukajtis ldd [%l6+16],%f16 219525c28e83SPiotr Jasiukajtis 219625c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 219725c28e83SPiotr Jasiukajtis faddd %f38,%f30,%f30 219825c28e83SPiotr Jasiukajtis 219925c28e83SPiotr Jasiukajtis faddd %f2,%f6,%f6 220025c28e83SPiotr Jasiukajtis ldd [%l4+16],%f32 220125c28e83SPiotr Jasiukajtis 220225c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 220325c28e83SPiotr Jasiukajtis faddd %f12,%f10,%f12 220425c28e83SPiotr Jasiukajtis ldd [%l5+8],%f34 220525c28e83SPiotr Jasiukajtis 220625c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 220725c28e83SPiotr Jasiukajtis faddd %f20,%f18,%f20 220825c28e83SPiotr Jasiukajtis ldd [%l6+8],%f36 220925c28e83SPiotr Jasiukajtis 221025c28e83SPiotr Jasiukajtis faddd %f26,%f30,%f30 221125c28e83SPiotr Jasiukajtis ldd [%l7+16],%f38 221225c28e83SPiotr Jasiukajtis 221325c28e83SPiotr Jasiukajtis fmuld %f32,%f6,%f6 221425c28e83SPiotr Jasiukajtis 221525c28e83SPiotr Jasiukajtis fmuld %f34,%f12,%f12 221625c28e83SPiotr Jasiukajtis 221725c28e83SPiotr Jasiukajtis fmuld %f36,%f20,%f20 221825c28e83SPiotr Jasiukajtis 221925c28e83SPiotr Jasiukajtis fmuld %f38,%f30,%f30 222025c28e83SPiotr Jasiukajtis 222125c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 222225c28e83SPiotr Jasiukajtis 222325c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f14 222425c28e83SPiotr Jasiukajtis 222525c28e83SPiotr Jasiukajtis fsubd %f22,%f20,%f22 222625c28e83SPiotr Jasiukajtis 222725c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 222825c28e83SPiotr Jasiukajtis 222925c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 223025c28e83SPiotr Jasiukajtis 223125c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 223225c28e83SPiotr Jasiukajtis 223325c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 223425c28e83SPiotr Jasiukajtis 223525c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 223625c28e83SPiotr Jasiukajtis mov %l0,%l4 223725c28e83SPiotr Jasiukajtis 223825c28e83SPiotr Jasiukajtis fnegd %f6,%f4 223925c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 224025c28e83SPiotr Jasiukajtis 224125c28e83SPiotr Jasiukajtis fnegd %f14,%f12 224225c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 224325c28e83SPiotr Jasiukajtis 224425c28e83SPiotr Jasiukajtis fnegd %f22,%f20 224525c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 224625c28e83SPiotr Jasiukajtis 224725c28e83SPiotr Jasiukajtis fnegd %f30,%f28 224825c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 224925c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 225025c28e83SPiotr Jasiukajtis 225125c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 225225c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 225325c28e83SPiotr Jasiukajtis st %f6,[%o0] 225425c28e83SPiotr Jasiukajtis 225525c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 225625c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 225725c28e83SPiotr Jasiukajtis st %f14,[%o1] 225825c28e83SPiotr Jasiukajtis 225925c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 226025c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 226125c28e83SPiotr Jasiukajtis st %f22,[%o2] 226225c28e83SPiotr Jasiukajtis 226325c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 226425c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 226525c28e83SPiotr Jasiukajtis st %f30,[%o3] 226625c28e83SPiotr Jasiukajtis 226725c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 226825c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 226925c28e83SPiotr Jasiukajtis! delay slot 227025c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 227125c28e83SPiotr Jasiukajtis 227225c28e83SPiotr Jasiukajtis ba,pt %icc,.end 227325c28e83SPiotr Jasiukajtis! delay slot 227425c28e83SPiotr Jasiukajtis nop 227525c28e83SPiotr Jasiukajtis 227625c28e83SPiotr Jasiukajtis .align 16 227725c28e83SPiotr Jasiukajtis.case10: 227825c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 227925c28e83SPiotr Jasiukajtis andcc %l3,1,%g0 228025c28e83SPiotr Jasiukajtis bz,pn %icc,.case11 228125c28e83SPiotr Jasiukajtis! delay slot 228225c28e83SPiotr Jasiukajtis fxor %f30,%f38,%f38 228325c28e83SPiotr Jasiukajtis 228425c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 ! sin(x0) 228525c28e83SPiotr Jasiukajtis 228625c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 ! sin(x2) 228725c28e83SPiotr Jasiukajtis 228825c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 228925c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 229025c28e83SPiotr Jasiukajtis 229125c28e83SPiotr Jasiukajtis fmuld %f8,qq3,%f14 ! cos(x1) 229225c28e83SPiotr Jasiukajtis 229325c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 229425c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 229525c28e83SPiotr Jasiukajtis 229625c28e83SPiotr Jasiukajtis fmuld %f24,qq3,%f30 ! cos(x3) 229725c28e83SPiotr Jasiukajtis 229825c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 229925c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 230025c28e83SPiotr Jasiukajtis 230125c28e83SPiotr Jasiukajtis faddd %f14,qq2,%f14 230225c28e83SPiotr Jasiukajtis fmuld %f8,pp2,%f12 230325c28e83SPiotr Jasiukajtis 230425c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 230525c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 230625c28e83SPiotr Jasiukajtis 230725c28e83SPiotr Jasiukajtis faddd %f30,qq2,%f30 230825c28e83SPiotr Jasiukajtis fmuld %f24,pp2,%f28 230925c28e83SPiotr Jasiukajtis 231025c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 231125c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 231225c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 231325c28e83SPiotr Jasiukajtis 231425c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 231525c28e83SPiotr Jasiukajtis faddd %f12,pp1,%f12 231625c28e83SPiotr Jasiukajtis 231725c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 231825c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 231925c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 232025c28e83SPiotr Jasiukajtis 232125c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 232225c28e83SPiotr Jasiukajtis faddd %f28,pp1,%f28 232325c28e83SPiotr Jasiukajtis 232425c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 232525c28e83SPiotr Jasiukajtis 232625c28e83SPiotr Jasiukajtis faddd %f14,qq1,%f14 232725c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 232825c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 232925c28e83SPiotr Jasiukajtis 233025c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 233125c28e83SPiotr Jasiukajtis 233225c28e83SPiotr Jasiukajtis faddd %f30,qq1,%f30 233325c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 233425c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 233525c28e83SPiotr Jasiukajtis 233625c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 233725c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 233825c28e83SPiotr Jasiukajtis 233925c28e83SPiotr Jasiukajtis fmuld %f10,%f12,%f12 234025c28e83SPiotr Jasiukajtis 234125c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 234225c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 234325c28e83SPiotr Jasiukajtis 234425c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f28 234525c28e83SPiotr Jasiukajtis 234625c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 234725c28e83SPiotr Jasiukajtis faddd %f32,%f6,%f6 234825c28e83SPiotr Jasiukajtis 234925c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 235025c28e83SPiotr Jasiukajtis faddd %f12,%f34,%f12 235125c28e83SPiotr Jasiukajtis ldd [%l5+16],%f8 235225c28e83SPiotr Jasiukajtis 235325c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 235425c28e83SPiotr Jasiukajtis faddd %f36,%f22,%f22 235525c28e83SPiotr Jasiukajtis 235625c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 235725c28e83SPiotr Jasiukajtis faddd %f28,%f38,%f28 235825c28e83SPiotr Jasiukajtis ldd [%l7+16],%f24 235925c28e83SPiotr Jasiukajtis 236025c28e83SPiotr Jasiukajtis faddd %f2,%f6,%f6 236125c28e83SPiotr Jasiukajtis ldd [%l4+16],%f32 236225c28e83SPiotr Jasiukajtis 236325c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 236425c28e83SPiotr Jasiukajtis faddd %f12,%f10,%f12 236525c28e83SPiotr Jasiukajtis ldd [%l5+8],%f34 236625c28e83SPiotr Jasiukajtis 236725c28e83SPiotr Jasiukajtis faddd %f18,%f22,%f22 236825c28e83SPiotr Jasiukajtis ldd [%l6+16],%f36 236925c28e83SPiotr Jasiukajtis 237025c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 237125c28e83SPiotr Jasiukajtis faddd %f28,%f26,%f28 237225c28e83SPiotr Jasiukajtis ldd [%l7+8],%f38 237325c28e83SPiotr Jasiukajtis 237425c28e83SPiotr Jasiukajtis fmuld %f32,%f6,%f6 237525c28e83SPiotr Jasiukajtis 237625c28e83SPiotr Jasiukajtis fmuld %f34,%f12,%f12 237725c28e83SPiotr Jasiukajtis 237825c28e83SPiotr Jasiukajtis fmuld %f36,%f22,%f22 237925c28e83SPiotr Jasiukajtis 238025c28e83SPiotr Jasiukajtis fmuld %f38,%f28,%f28 238125c28e83SPiotr Jasiukajtis 238225c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 238325c28e83SPiotr Jasiukajtis 238425c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f14 238525c28e83SPiotr Jasiukajtis 238625c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 238725c28e83SPiotr Jasiukajtis 238825c28e83SPiotr Jasiukajtis fsubd %f30,%f28,%f30 238925c28e83SPiotr Jasiukajtis 239025c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 239125c28e83SPiotr Jasiukajtis 239225c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 239325c28e83SPiotr Jasiukajtis 239425c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 239525c28e83SPiotr Jasiukajtis 239625c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 239725c28e83SPiotr Jasiukajtis mov %l0,%l4 239825c28e83SPiotr Jasiukajtis 239925c28e83SPiotr Jasiukajtis fnegd %f6,%f4 240025c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 240125c28e83SPiotr Jasiukajtis 240225c28e83SPiotr Jasiukajtis fnegd %f14,%f12 240325c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 240425c28e83SPiotr Jasiukajtis 240525c28e83SPiotr Jasiukajtis fnegd %f22,%f20 240625c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 240725c28e83SPiotr Jasiukajtis 240825c28e83SPiotr Jasiukajtis fnegd %f30,%f28 240925c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 241025c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 241125c28e83SPiotr Jasiukajtis 241225c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 241325c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 241425c28e83SPiotr Jasiukajtis st %f6,[%o0] 241525c28e83SPiotr Jasiukajtis 241625c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 241725c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 241825c28e83SPiotr Jasiukajtis st %f14,[%o1] 241925c28e83SPiotr Jasiukajtis 242025c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 242125c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 242225c28e83SPiotr Jasiukajtis st %f22,[%o2] 242325c28e83SPiotr Jasiukajtis 242425c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 242525c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 242625c28e83SPiotr Jasiukajtis st %f30,[%o3] 242725c28e83SPiotr Jasiukajtis 242825c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 242925c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 243025c28e83SPiotr Jasiukajtis! delay slot 243125c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 243225c28e83SPiotr Jasiukajtis 243325c28e83SPiotr Jasiukajtis ba,pt %icc,.end 243425c28e83SPiotr Jasiukajtis! delay slot 243525c28e83SPiotr Jasiukajtis nop 243625c28e83SPiotr Jasiukajtis 243725c28e83SPiotr Jasiukajtis .align 16 243825c28e83SPiotr Jasiukajtis.case11: 243925c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 ! sin(x0) 244025c28e83SPiotr Jasiukajtis 244125c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 ! sin(x2) 244225c28e83SPiotr Jasiukajtis 244325c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 ! sin(x3) 244425c28e83SPiotr Jasiukajtis 244525c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 244625c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 244725c28e83SPiotr Jasiukajtis 244825c28e83SPiotr Jasiukajtis fmuld %f8,qq3,%f14 ! cos(x1) 244925c28e83SPiotr Jasiukajtis 245025c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 245125c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 245225c28e83SPiotr Jasiukajtis 245325c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 245425c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 245525c28e83SPiotr Jasiukajtis 245625c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 245725c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 245825c28e83SPiotr Jasiukajtis 245925c28e83SPiotr Jasiukajtis faddd %f14,qq2,%f14 246025c28e83SPiotr Jasiukajtis fmuld %f8,pp2,%f12 246125c28e83SPiotr Jasiukajtis 246225c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 246325c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 246425c28e83SPiotr Jasiukajtis 246525c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 246625c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 246725c28e83SPiotr Jasiukajtis 246825c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 246925c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 247025c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 247125c28e83SPiotr Jasiukajtis 247225c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 247325c28e83SPiotr Jasiukajtis faddd %f12,pp1,%f12 247425c28e83SPiotr Jasiukajtis 247525c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 247625c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 247725c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 247825c28e83SPiotr Jasiukajtis 247925c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 248025c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 248125c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 248225c28e83SPiotr Jasiukajtis 248325c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 248425c28e83SPiotr Jasiukajtis 248525c28e83SPiotr Jasiukajtis faddd %f14,qq1,%f14 248625c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 248725c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 248825c28e83SPiotr Jasiukajtis 248925c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 249025c28e83SPiotr Jasiukajtis 249125c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 249225c28e83SPiotr Jasiukajtis 249325c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 249425c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 249525c28e83SPiotr Jasiukajtis 249625c28e83SPiotr Jasiukajtis fmuld %f10,%f12,%f12 249725c28e83SPiotr Jasiukajtis 249825c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 249925c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 250025c28e83SPiotr Jasiukajtis 250125c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 250225c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 250325c28e83SPiotr Jasiukajtis 250425c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 250525c28e83SPiotr Jasiukajtis faddd %f32,%f6,%f6 250625c28e83SPiotr Jasiukajtis 250725c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 250825c28e83SPiotr Jasiukajtis faddd %f12,%f34,%f12 250925c28e83SPiotr Jasiukajtis ldd [%l5+16],%f8 251025c28e83SPiotr Jasiukajtis 251125c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 251225c28e83SPiotr Jasiukajtis faddd %f36,%f22,%f22 251325c28e83SPiotr Jasiukajtis 251425c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 251525c28e83SPiotr Jasiukajtis faddd %f38,%f30,%f30 251625c28e83SPiotr Jasiukajtis 251725c28e83SPiotr Jasiukajtis faddd %f2,%f6,%f6 251825c28e83SPiotr Jasiukajtis ldd [%l4+16],%f32 251925c28e83SPiotr Jasiukajtis 252025c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 252125c28e83SPiotr Jasiukajtis faddd %f12,%f10,%f12 252225c28e83SPiotr Jasiukajtis ldd [%l5+8],%f34 252325c28e83SPiotr Jasiukajtis 252425c28e83SPiotr Jasiukajtis faddd %f18,%f22,%f22 252525c28e83SPiotr Jasiukajtis ldd [%l6+16],%f36 252625c28e83SPiotr Jasiukajtis 252725c28e83SPiotr Jasiukajtis faddd %f26,%f30,%f30 252825c28e83SPiotr Jasiukajtis ldd [%l7+16],%f38 252925c28e83SPiotr Jasiukajtis 253025c28e83SPiotr Jasiukajtis fmuld %f32,%f6,%f6 253125c28e83SPiotr Jasiukajtis 253225c28e83SPiotr Jasiukajtis fmuld %f34,%f12,%f12 253325c28e83SPiotr Jasiukajtis 253425c28e83SPiotr Jasiukajtis fmuld %f36,%f22,%f22 253525c28e83SPiotr Jasiukajtis 253625c28e83SPiotr Jasiukajtis fmuld %f38,%f30,%f30 253725c28e83SPiotr Jasiukajtis 253825c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 253925c28e83SPiotr Jasiukajtis 254025c28e83SPiotr Jasiukajtis fsubd %f14,%f12,%f14 254125c28e83SPiotr Jasiukajtis 254225c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 254325c28e83SPiotr Jasiukajtis 254425c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 254525c28e83SPiotr Jasiukajtis 254625c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 254725c28e83SPiotr Jasiukajtis 254825c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 254925c28e83SPiotr Jasiukajtis 255025c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 255125c28e83SPiotr Jasiukajtis 255225c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 255325c28e83SPiotr Jasiukajtis mov %l0,%l4 255425c28e83SPiotr Jasiukajtis 255525c28e83SPiotr Jasiukajtis fnegd %f6,%f4 255625c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 255725c28e83SPiotr Jasiukajtis 255825c28e83SPiotr Jasiukajtis fnegd %f14,%f12 255925c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 256025c28e83SPiotr Jasiukajtis 256125c28e83SPiotr Jasiukajtis fnegd %f22,%f20 256225c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 256325c28e83SPiotr Jasiukajtis 256425c28e83SPiotr Jasiukajtis fnegd %f30,%f28 256525c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 256625c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 256725c28e83SPiotr Jasiukajtis 256825c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 256925c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 257025c28e83SPiotr Jasiukajtis st %f6,[%o0] 257125c28e83SPiotr Jasiukajtis 257225c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 257325c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 257425c28e83SPiotr Jasiukajtis st %f14,[%o1] 257525c28e83SPiotr Jasiukajtis 257625c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 257725c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 257825c28e83SPiotr Jasiukajtis st %f22,[%o2] 257925c28e83SPiotr Jasiukajtis 258025c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 258125c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 258225c28e83SPiotr Jasiukajtis st %f30,[%o3] 258325c28e83SPiotr Jasiukajtis 258425c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 258525c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 258625c28e83SPiotr Jasiukajtis! delay slot 258725c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 258825c28e83SPiotr Jasiukajtis 258925c28e83SPiotr Jasiukajtis ba,pt %icc,.end 259025c28e83SPiotr Jasiukajtis! delay slot 259125c28e83SPiotr Jasiukajtis nop 259225c28e83SPiotr Jasiukajtis 259325c28e83SPiotr Jasiukajtis .align 16 259425c28e83SPiotr Jasiukajtis.case12: 259525c28e83SPiotr Jasiukajtis fmuld %f18,%f18,%f16 259625c28e83SPiotr Jasiukajtis andcc %l2,1,%g0 259725c28e83SPiotr Jasiukajtis bz,pn %icc,.case14 259825c28e83SPiotr Jasiukajtis! delay slot 259925c28e83SPiotr Jasiukajtis fxor %f22,%f36,%f36 260025c28e83SPiotr Jasiukajtis 260125c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 260225c28e83SPiotr Jasiukajtis andcc %l3,1,%g0 260325c28e83SPiotr Jasiukajtis bz,pn %icc,.case13 260425c28e83SPiotr Jasiukajtis! delay slot 260525c28e83SPiotr Jasiukajtis fxor %f30,%f38,%f38 260625c28e83SPiotr Jasiukajtis 260725c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 ! sin(x0) 260825c28e83SPiotr Jasiukajtis 260925c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 ! sin(x1) 261025c28e83SPiotr Jasiukajtis 261125c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 261225c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 261325c28e83SPiotr Jasiukajtis 261425c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 261525c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 261625c28e83SPiotr Jasiukajtis 261725c28e83SPiotr Jasiukajtis fmuld %f16,qq3,%f22 ! cos(x2) 261825c28e83SPiotr Jasiukajtis 261925c28e83SPiotr Jasiukajtis fmuld %f24,qq3,%f30 ! cos(x3) 262025c28e83SPiotr Jasiukajtis 262125c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 262225c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 262325c28e83SPiotr Jasiukajtis 262425c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 262525c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 262625c28e83SPiotr Jasiukajtis 262725c28e83SPiotr Jasiukajtis faddd %f22,qq2,%f22 262825c28e83SPiotr Jasiukajtis fmuld %f16,pp2,%f20 262925c28e83SPiotr Jasiukajtis 263025c28e83SPiotr Jasiukajtis faddd %f30,qq2,%f30 263125c28e83SPiotr Jasiukajtis fmuld %f24,pp2,%f28 263225c28e83SPiotr Jasiukajtis 263325c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 263425c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 263525c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 263625c28e83SPiotr Jasiukajtis 263725c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 263825c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 263925c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 264025c28e83SPiotr Jasiukajtis 264125c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 264225c28e83SPiotr Jasiukajtis faddd %f20,pp1,%f20 264325c28e83SPiotr Jasiukajtis 264425c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 264525c28e83SPiotr Jasiukajtis faddd %f28,pp1,%f28 264625c28e83SPiotr Jasiukajtis 264725c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 264825c28e83SPiotr Jasiukajtis 264925c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 265025c28e83SPiotr Jasiukajtis 265125c28e83SPiotr Jasiukajtis faddd %f22,qq1,%f22 265225c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 265325c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 265425c28e83SPiotr Jasiukajtis 265525c28e83SPiotr Jasiukajtis faddd %f30,qq1,%f30 265625c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 265725c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 265825c28e83SPiotr Jasiukajtis 265925c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 266025c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 266125c28e83SPiotr Jasiukajtis 266225c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 266325c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 266425c28e83SPiotr Jasiukajtis 266525c28e83SPiotr Jasiukajtis fmuld %f18,%f20,%f20 266625c28e83SPiotr Jasiukajtis 266725c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f28 266825c28e83SPiotr Jasiukajtis 266925c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 267025c28e83SPiotr Jasiukajtis faddd %f32,%f6,%f6 267125c28e83SPiotr Jasiukajtis 267225c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 267325c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f14 267425c28e83SPiotr Jasiukajtis 267525c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 267625c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 267725c28e83SPiotr Jasiukajtis ldd [%l6+16],%f16 267825c28e83SPiotr Jasiukajtis 267925c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 268025c28e83SPiotr Jasiukajtis faddd %f28,%f38,%f28 268125c28e83SPiotr Jasiukajtis ldd [%l7+16],%f24 268225c28e83SPiotr Jasiukajtis 268325c28e83SPiotr Jasiukajtis faddd %f2,%f6,%f6 268425c28e83SPiotr Jasiukajtis ldd [%l4+16],%f32 268525c28e83SPiotr Jasiukajtis 268625c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f14 268725c28e83SPiotr Jasiukajtis ldd [%l5+16],%f34 268825c28e83SPiotr Jasiukajtis 268925c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 269025c28e83SPiotr Jasiukajtis faddd %f20,%f18,%f20 269125c28e83SPiotr Jasiukajtis ldd [%l6+8],%f36 269225c28e83SPiotr Jasiukajtis 269325c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 269425c28e83SPiotr Jasiukajtis faddd %f28,%f26,%f28 269525c28e83SPiotr Jasiukajtis ldd [%l7+8],%f38 269625c28e83SPiotr Jasiukajtis 269725c28e83SPiotr Jasiukajtis fmuld %f32,%f6,%f6 269825c28e83SPiotr Jasiukajtis 269925c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 270025c28e83SPiotr Jasiukajtis 270125c28e83SPiotr Jasiukajtis fmuld %f36,%f20,%f20 270225c28e83SPiotr Jasiukajtis 270325c28e83SPiotr Jasiukajtis fmuld %f38,%f28,%f28 270425c28e83SPiotr Jasiukajtis 270525c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 270625c28e83SPiotr Jasiukajtis 270725c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 270825c28e83SPiotr Jasiukajtis 270925c28e83SPiotr Jasiukajtis fsubd %f22,%f20,%f22 271025c28e83SPiotr Jasiukajtis 271125c28e83SPiotr Jasiukajtis fsubd %f30,%f28,%f30 271225c28e83SPiotr Jasiukajtis 271325c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 271425c28e83SPiotr Jasiukajtis 271525c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 271625c28e83SPiotr Jasiukajtis 271725c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 271825c28e83SPiotr Jasiukajtis 271925c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 272025c28e83SPiotr Jasiukajtis mov %l0,%l4 272125c28e83SPiotr Jasiukajtis 272225c28e83SPiotr Jasiukajtis fnegd %f6,%f4 272325c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 272425c28e83SPiotr Jasiukajtis 272525c28e83SPiotr Jasiukajtis fnegd %f14,%f12 272625c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 272725c28e83SPiotr Jasiukajtis 272825c28e83SPiotr Jasiukajtis fnegd %f22,%f20 272925c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 273025c28e83SPiotr Jasiukajtis 273125c28e83SPiotr Jasiukajtis fnegd %f30,%f28 273225c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 273325c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 273425c28e83SPiotr Jasiukajtis 273525c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 273625c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 273725c28e83SPiotr Jasiukajtis st %f6,[%o0] 273825c28e83SPiotr Jasiukajtis 273925c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 274025c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 274125c28e83SPiotr Jasiukajtis st %f14,[%o1] 274225c28e83SPiotr Jasiukajtis 274325c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 274425c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 274525c28e83SPiotr Jasiukajtis st %f22,[%o2] 274625c28e83SPiotr Jasiukajtis 274725c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 274825c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 274925c28e83SPiotr Jasiukajtis st %f30,[%o3] 275025c28e83SPiotr Jasiukajtis 275125c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 275225c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 275325c28e83SPiotr Jasiukajtis! delay slot 275425c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 275525c28e83SPiotr Jasiukajtis 275625c28e83SPiotr Jasiukajtis ba,pt %icc,.end 275725c28e83SPiotr Jasiukajtis! delay slot 275825c28e83SPiotr Jasiukajtis nop 275925c28e83SPiotr Jasiukajtis 276025c28e83SPiotr Jasiukajtis .align 16 276125c28e83SPiotr Jasiukajtis.case13: 276225c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 ! sin(x0) 276325c28e83SPiotr Jasiukajtis 276425c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 ! sin(x1) 276525c28e83SPiotr Jasiukajtis 276625c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 ! sin(x3) 276725c28e83SPiotr Jasiukajtis 276825c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 276925c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 277025c28e83SPiotr Jasiukajtis 277125c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 277225c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 277325c28e83SPiotr Jasiukajtis 277425c28e83SPiotr Jasiukajtis fmuld %f16,qq3,%f22 ! cos(x2) 277525c28e83SPiotr Jasiukajtis 277625c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 277725c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 277825c28e83SPiotr Jasiukajtis 277925c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 278025c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 278125c28e83SPiotr Jasiukajtis 278225c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 278325c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 278425c28e83SPiotr Jasiukajtis 278525c28e83SPiotr Jasiukajtis faddd %f22,qq2,%f22 278625c28e83SPiotr Jasiukajtis fmuld %f16,pp2,%f20 278725c28e83SPiotr Jasiukajtis 278825c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 278925c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 279025c28e83SPiotr Jasiukajtis 279125c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 279225c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 279325c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 279425c28e83SPiotr Jasiukajtis 279525c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 279625c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 279725c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 279825c28e83SPiotr Jasiukajtis 279925c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 280025c28e83SPiotr Jasiukajtis faddd %f20,pp1,%f20 280125c28e83SPiotr Jasiukajtis 280225c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 280325c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 280425c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 280525c28e83SPiotr Jasiukajtis 280625c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 280725c28e83SPiotr Jasiukajtis 280825c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 280925c28e83SPiotr Jasiukajtis 281025c28e83SPiotr Jasiukajtis faddd %f22,qq1,%f22 281125c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 281225c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 281325c28e83SPiotr Jasiukajtis 281425c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 281525c28e83SPiotr Jasiukajtis 281625c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 281725c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 281825c28e83SPiotr Jasiukajtis 281925c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 282025c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 282125c28e83SPiotr Jasiukajtis 282225c28e83SPiotr Jasiukajtis fmuld %f18,%f20,%f20 282325c28e83SPiotr Jasiukajtis 282425c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 282525c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 282625c28e83SPiotr Jasiukajtis 282725c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 282825c28e83SPiotr Jasiukajtis faddd %f32,%f6,%f6 282925c28e83SPiotr Jasiukajtis 283025c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 283125c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f14 283225c28e83SPiotr Jasiukajtis 283325c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 283425c28e83SPiotr Jasiukajtis faddd %f20,%f36,%f20 283525c28e83SPiotr Jasiukajtis ldd [%l6+16],%f16 283625c28e83SPiotr Jasiukajtis 283725c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 283825c28e83SPiotr Jasiukajtis faddd %f38,%f30,%f30 283925c28e83SPiotr Jasiukajtis 284025c28e83SPiotr Jasiukajtis faddd %f2,%f6,%f6 284125c28e83SPiotr Jasiukajtis ldd [%l4+16],%f32 284225c28e83SPiotr Jasiukajtis 284325c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f14 284425c28e83SPiotr Jasiukajtis ldd [%l5+16],%f34 284525c28e83SPiotr Jasiukajtis 284625c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 284725c28e83SPiotr Jasiukajtis faddd %f20,%f18,%f20 284825c28e83SPiotr Jasiukajtis ldd [%l6+8],%f36 284925c28e83SPiotr Jasiukajtis 285025c28e83SPiotr Jasiukajtis faddd %f26,%f30,%f30 285125c28e83SPiotr Jasiukajtis ldd [%l7+16],%f38 285225c28e83SPiotr Jasiukajtis 285325c28e83SPiotr Jasiukajtis fmuld %f32,%f6,%f6 285425c28e83SPiotr Jasiukajtis 285525c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 285625c28e83SPiotr Jasiukajtis 285725c28e83SPiotr Jasiukajtis fmuld %f36,%f20,%f20 285825c28e83SPiotr Jasiukajtis 285925c28e83SPiotr Jasiukajtis fmuld %f38,%f30,%f30 286025c28e83SPiotr Jasiukajtis 286125c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 286225c28e83SPiotr Jasiukajtis 286325c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 286425c28e83SPiotr Jasiukajtis 286525c28e83SPiotr Jasiukajtis fsubd %f22,%f20,%f22 286625c28e83SPiotr Jasiukajtis 286725c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 286825c28e83SPiotr Jasiukajtis 286925c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 287025c28e83SPiotr Jasiukajtis 287125c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 287225c28e83SPiotr Jasiukajtis 287325c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 287425c28e83SPiotr Jasiukajtis 287525c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 287625c28e83SPiotr Jasiukajtis mov %l0,%l4 287725c28e83SPiotr Jasiukajtis 287825c28e83SPiotr Jasiukajtis fnegd %f6,%f4 287925c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 288025c28e83SPiotr Jasiukajtis 288125c28e83SPiotr Jasiukajtis fnegd %f14,%f12 288225c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 288325c28e83SPiotr Jasiukajtis 288425c28e83SPiotr Jasiukajtis fnegd %f22,%f20 288525c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 288625c28e83SPiotr Jasiukajtis 288725c28e83SPiotr Jasiukajtis fnegd %f30,%f28 288825c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 288925c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 289025c28e83SPiotr Jasiukajtis 289125c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 289225c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 289325c28e83SPiotr Jasiukajtis st %f6,[%o0] 289425c28e83SPiotr Jasiukajtis 289525c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 289625c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 289725c28e83SPiotr Jasiukajtis st %f14,[%o1] 289825c28e83SPiotr Jasiukajtis 289925c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 290025c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 290125c28e83SPiotr Jasiukajtis st %f22,[%o2] 290225c28e83SPiotr Jasiukajtis 290325c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 290425c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 290525c28e83SPiotr Jasiukajtis st %f30,[%o3] 290625c28e83SPiotr Jasiukajtis 290725c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 290825c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 290925c28e83SPiotr Jasiukajtis! delay slot 291025c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 291125c28e83SPiotr Jasiukajtis 291225c28e83SPiotr Jasiukajtis ba,pt %icc,.end 291325c28e83SPiotr Jasiukajtis! delay slot 291425c28e83SPiotr Jasiukajtis nop 291525c28e83SPiotr Jasiukajtis 291625c28e83SPiotr Jasiukajtis .align 16 291725c28e83SPiotr Jasiukajtis.case14: 291825c28e83SPiotr Jasiukajtis fmuld %f26,%f26,%f24 291925c28e83SPiotr Jasiukajtis andcc %l3,1,%g0 292025c28e83SPiotr Jasiukajtis bz,pn %icc,.case15 292125c28e83SPiotr Jasiukajtis! delay slot 292225c28e83SPiotr Jasiukajtis fxor %f30,%f38,%f38 292325c28e83SPiotr Jasiukajtis 292425c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 ! sin(x0) 292525c28e83SPiotr Jasiukajtis 292625c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 ! sin(x1) 292725c28e83SPiotr Jasiukajtis 292825c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 ! sin(x2) 292925c28e83SPiotr Jasiukajtis 293025c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 293125c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 293225c28e83SPiotr Jasiukajtis 293325c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 293425c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 293525c28e83SPiotr Jasiukajtis 293625c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 293725c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 293825c28e83SPiotr Jasiukajtis 293925c28e83SPiotr Jasiukajtis fmuld %f24,qq3,%f30 ! cos(x3) 294025c28e83SPiotr Jasiukajtis 294125c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 294225c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 294325c28e83SPiotr Jasiukajtis 294425c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 294525c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 294625c28e83SPiotr Jasiukajtis 294725c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 294825c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 294925c28e83SPiotr Jasiukajtis 295025c28e83SPiotr Jasiukajtis faddd %f30,qq2,%f30 295125c28e83SPiotr Jasiukajtis fmuld %f24,pp2,%f28 295225c28e83SPiotr Jasiukajtis 295325c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 295425c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 295525c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 295625c28e83SPiotr Jasiukajtis 295725c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 295825c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 295925c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 296025c28e83SPiotr Jasiukajtis 296125c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 296225c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 296325c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 296425c28e83SPiotr Jasiukajtis 296525c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 296625c28e83SPiotr Jasiukajtis faddd %f28,pp1,%f28 296725c28e83SPiotr Jasiukajtis 296825c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 296925c28e83SPiotr Jasiukajtis 297025c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 297125c28e83SPiotr Jasiukajtis 297225c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 297325c28e83SPiotr Jasiukajtis 297425c28e83SPiotr Jasiukajtis faddd %f30,qq1,%f30 297525c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 297625c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 297725c28e83SPiotr Jasiukajtis 297825c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 297925c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 298025c28e83SPiotr Jasiukajtis 298125c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 298225c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 298325c28e83SPiotr Jasiukajtis 298425c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 298525c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 298625c28e83SPiotr Jasiukajtis 298725c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f28 298825c28e83SPiotr Jasiukajtis 298925c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 299025c28e83SPiotr Jasiukajtis faddd %f32,%f6,%f6 299125c28e83SPiotr Jasiukajtis 299225c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 299325c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f14 299425c28e83SPiotr Jasiukajtis 299525c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 299625c28e83SPiotr Jasiukajtis faddd %f36,%f22,%f22 299725c28e83SPiotr Jasiukajtis 299825c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 299925c28e83SPiotr Jasiukajtis faddd %f28,%f38,%f28 300025c28e83SPiotr Jasiukajtis ldd [%l7+16],%f24 300125c28e83SPiotr Jasiukajtis 300225c28e83SPiotr Jasiukajtis faddd %f2,%f6,%f6 300325c28e83SPiotr Jasiukajtis ldd [%l4+16],%f32 300425c28e83SPiotr Jasiukajtis 300525c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f14 300625c28e83SPiotr Jasiukajtis ldd [%l5+16],%f34 300725c28e83SPiotr Jasiukajtis 300825c28e83SPiotr Jasiukajtis faddd %f18,%f22,%f22 300925c28e83SPiotr Jasiukajtis ldd [%l6+16],%f36 301025c28e83SPiotr Jasiukajtis 301125c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 301225c28e83SPiotr Jasiukajtis faddd %f28,%f26,%f28 301325c28e83SPiotr Jasiukajtis ldd [%l7+8],%f38 301425c28e83SPiotr Jasiukajtis 301525c28e83SPiotr Jasiukajtis fmuld %f32,%f6,%f6 301625c28e83SPiotr Jasiukajtis 301725c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 301825c28e83SPiotr Jasiukajtis 301925c28e83SPiotr Jasiukajtis fmuld %f36,%f22,%f22 302025c28e83SPiotr Jasiukajtis 302125c28e83SPiotr Jasiukajtis fmuld %f38,%f28,%f28 302225c28e83SPiotr Jasiukajtis 302325c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 302425c28e83SPiotr Jasiukajtis 302525c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 302625c28e83SPiotr Jasiukajtis 302725c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 302825c28e83SPiotr Jasiukajtis 302925c28e83SPiotr Jasiukajtis fsubd %f30,%f28,%f30 303025c28e83SPiotr Jasiukajtis 303125c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 303225c28e83SPiotr Jasiukajtis 303325c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 303425c28e83SPiotr Jasiukajtis 303525c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 303625c28e83SPiotr Jasiukajtis 303725c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 303825c28e83SPiotr Jasiukajtis mov %l0,%l4 303925c28e83SPiotr Jasiukajtis 304025c28e83SPiotr Jasiukajtis fnegd %f6,%f4 304125c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 304225c28e83SPiotr Jasiukajtis 304325c28e83SPiotr Jasiukajtis fnegd %f14,%f12 304425c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 304525c28e83SPiotr Jasiukajtis 304625c28e83SPiotr Jasiukajtis fnegd %f22,%f20 304725c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 304825c28e83SPiotr Jasiukajtis 304925c28e83SPiotr Jasiukajtis fnegd %f30,%f28 305025c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 305125c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 305225c28e83SPiotr Jasiukajtis 305325c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 305425c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 305525c28e83SPiotr Jasiukajtis st %f6,[%o0] 305625c28e83SPiotr Jasiukajtis 305725c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 305825c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 305925c28e83SPiotr Jasiukajtis st %f14,[%o1] 306025c28e83SPiotr Jasiukajtis 306125c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 306225c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 306325c28e83SPiotr Jasiukajtis st %f22,[%o2] 306425c28e83SPiotr Jasiukajtis 306525c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 306625c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 306725c28e83SPiotr Jasiukajtis st %f30,[%o3] 306825c28e83SPiotr Jasiukajtis 306925c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 307025c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 307125c28e83SPiotr Jasiukajtis! delay slot 307225c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 307325c28e83SPiotr Jasiukajtis 307425c28e83SPiotr Jasiukajtis ba,pt %icc,.end 307525c28e83SPiotr Jasiukajtis! delay slot 307625c28e83SPiotr Jasiukajtis nop 307725c28e83SPiotr Jasiukajtis 307825c28e83SPiotr Jasiukajtis .align 16 307925c28e83SPiotr Jasiukajtis.case15: 308025c28e83SPiotr Jasiukajtis fmuld %f0,pp3,%f6 ! sin(x0) 308125c28e83SPiotr Jasiukajtis 308225c28e83SPiotr Jasiukajtis fmuld %f8,pp3,%f14 ! sin(x1) 308325c28e83SPiotr Jasiukajtis 308425c28e83SPiotr Jasiukajtis fmuld %f16,pp3,%f22 ! sin(x2) 308525c28e83SPiotr Jasiukajtis 308625c28e83SPiotr Jasiukajtis fmuld %f24,pp3,%f30 ! sin(x3) 308725c28e83SPiotr Jasiukajtis 308825c28e83SPiotr Jasiukajtis faddd %f6,pp2,%f6 308925c28e83SPiotr Jasiukajtis fmuld %f0,qq2,%f4 309025c28e83SPiotr Jasiukajtis 309125c28e83SPiotr Jasiukajtis faddd %f14,pp2,%f14 309225c28e83SPiotr Jasiukajtis fmuld %f8,qq2,%f12 309325c28e83SPiotr Jasiukajtis 309425c28e83SPiotr Jasiukajtis faddd %f22,pp2,%f22 309525c28e83SPiotr Jasiukajtis fmuld %f16,qq2,%f20 309625c28e83SPiotr Jasiukajtis 309725c28e83SPiotr Jasiukajtis faddd %f30,pp2,%f30 309825c28e83SPiotr Jasiukajtis fmuld %f24,qq2,%f28 309925c28e83SPiotr Jasiukajtis 310025c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 310125c28e83SPiotr Jasiukajtis faddd %f4,qq1,%f4 310225c28e83SPiotr Jasiukajtis 310325c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 310425c28e83SPiotr Jasiukajtis faddd %f12,qq1,%f12 310525c28e83SPiotr Jasiukajtis 310625c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 310725c28e83SPiotr Jasiukajtis faddd %f20,qq1,%f20 310825c28e83SPiotr Jasiukajtis 310925c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 311025c28e83SPiotr Jasiukajtis faddd %f28,qq1,%f28 311125c28e83SPiotr Jasiukajtis 311225c28e83SPiotr Jasiukajtis faddd %f6,pp1,%f6 311325c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 311425c28e83SPiotr Jasiukajtis add %l4,%g1,%l4 311525c28e83SPiotr Jasiukajtis 311625c28e83SPiotr Jasiukajtis faddd %f14,pp1,%f14 311725c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 311825c28e83SPiotr Jasiukajtis add %l5,%g1,%l5 311925c28e83SPiotr Jasiukajtis 312025c28e83SPiotr Jasiukajtis faddd %f22,pp1,%f22 312125c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 312225c28e83SPiotr Jasiukajtis add %l6,%g1,%l6 312325c28e83SPiotr Jasiukajtis 312425c28e83SPiotr Jasiukajtis faddd %f30,pp1,%f30 312525c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 312625c28e83SPiotr Jasiukajtis add %l7,%g1,%l7 312725c28e83SPiotr Jasiukajtis 312825c28e83SPiotr Jasiukajtis fmuld %f0,%f6,%f6 312925c28e83SPiotr Jasiukajtis 313025c28e83SPiotr Jasiukajtis fmuld %f8,%f14,%f14 313125c28e83SPiotr Jasiukajtis 313225c28e83SPiotr Jasiukajtis fmuld %f16,%f22,%f22 313325c28e83SPiotr Jasiukajtis 313425c28e83SPiotr Jasiukajtis fmuld %f24,%f30,%f30 313525c28e83SPiotr Jasiukajtis 313625c28e83SPiotr Jasiukajtis fmuld %f2,%f6,%f6 313725c28e83SPiotr Jasiukajtis ldd [%l4+8],%f0 313825c28e83SPiotr Jasiukajtis 313925c28e83SPiotr Jasiukajtis fmuld %f10,%f14,%f14 314025c28e83SPiotr Jasiukajtis ldd [%l5+8],%f8 314125c28e83SPiotr Jasiukajtis 314225c28e83SPiotr Jasiukajtis fmuld %f18,%f22,%f22 314325c28e83SPiotr Jasiukajtis ldd [%l6+8],%f16 314425c28e83SPiotr Jasiukajtis 314525c28e83SPiotr Jasiukajtis fmuld %f26,%f30,%f30 314625c28e83SPiotr Jasiukajtis ldd [%l7+8],%f24 314725c28e83SPiotr Jasiukajtis 314825c28e83SPiotr Jasiukajtis fmuld %f0,%f4,%f4 314925c28e83SPiotr Jasiukajtis faddd %f32,%f6,%f6 315025c28e83SPiotr Jasiukajtis 315125c28e83SPiotr Jasiukajtis fmuld %f8,%f12,%f12 315225c28e83SPiotr Jasiukajtis faddd %f34,%f14,%f14 315325c28e83SPiotr Jasiukajtis 315425c28e83SPiotr Jasiukajtis fmuld %f16,%f20,%f20 315525c28e83SPiotr Jasiukajtis faddd %f36,%f22,%f22 315625c28e83SPiotr Jasiukajtis 315725c28e83SPiotr Jasiukajtis fmuld %f24,%f28,%f28 315825c28e83SPiotr Jasiukajtis faddd %f38,%f30,%f30 315925c28e83SPiotr Jasiukajtis 316025c28e83SPiotr Jasiukajtis faddd %f2,%f6,%f6 316125c28e83SPiotr Jasiukajtis ldd [%l4+16],%f32 316225c28e83SPiotr Jasiukajtis 316325c28e83SPiotr Jasiukajtis faddd %f10,%f14,%f14 316425c28e83SPiotr Jasiukajtis ldd [%l5+16],%f34 316525c28e83SPiotr Jasiukajtis 316625c28e83SPiotr Jasiukajtis faddd %f18,%f22,%f22 316725c28e83SPiotr Jasiukajtis ldd [%l6+16],%f36 316825c28e83SPiotr Jasiukajtis 316925c28e83SPiotr Jasiukajtis faddd %f26,%f30,%f30 317025c28e83SPiotr Jasiukajtis ldd [%l7+16],%f38 317125c28e83SPiotr Jasiukajtis 317225c28e83SPiotr Jasiukajtis fmuld %f32,%f6,%f6 317325c28e83SPiotr Jasiukajtis 317425c28e83SPiotr Jasiukajtis fmuld %f34,%f14,%f14 317525c28e83SPiotr Jasiukajtis 317625c28e83SPiotr Jasiukajtis fmuld %f36,%f22,%f22 317725c28e83SPiotr Jasiukajtis 317825c28e83SPiotr Jasiukajtis fmuld %f38,%f30,%f30 317925c28e83SPiotr Jasiukajtis 318025c28e83SPiotr Jasiukajtis faddd %f6,%f4,%f6 318125c28e83SPiotr Jasiukajtis 318225c28e83SPiotr Jasiukajtis faddd %f14,%f12,%f14 318325c28e83SPiotr Jasiukajtis 318425c28e83SPiotr Jasiukajtis faddd %f22,%f20,%f22 318525c28e83SPiotr Jasiukajtis 318625c28e83SPiotr Jasiukajtis faddd %f30,%f28,%f30 318725c28e83SPiotr Jasiukajtis 318825c28e83SPiotr Jasiukajtis faddd %f6,%f0,%f6 318925c28e83SPiotr Jasiukajtis 319025c28e83SPiotr Jasiukajtis faddd %f14,%f8,%f14 319125c28e83SPiotr Jasiukajtis 319225c28e83SPiotr Jasiukajtis faddd %f22,%f16,%f22 319325c28e83SPiotr Jasiukajtis 319425c28e83SPiotr Jasiukajtis faddd %f30,%f24,%f30 319525c28e83SPiotr Jasiukajtis mov %l0,%l4 319625c28e83SPiotr Jasiukajtis 319725c28e83SPiotr Jasiukajtis fnegd %f6,%f4 319825c28e83SPiotr Jasiukajtis lda [%i1]%asi,%l0 ! preload next argument 319925c28e83SPiotr Jasiukajtis 320025c28e83SPiotr Jasiukajtis fnegd %f14,%f12 320125c28e83SPiotr Jasiukajtis lda [%i1]%asi,%f0 320225c28e83SPiotr Jasiukajtis 320325c28e83SPiotr Jasiukajtis fnegd %f22,%f20 320425c28e83SPiotr Jasiukajtis lda [%i1+4]%asi,%f3 320525c28e83SPiotr Jasiukajtis 320625c28e83SPiotr Jasiukajtis fnegd %f30,%f28 320725c28e83SPiotr Jasiukajtis andn %l0,%i5,%l0 320825c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 320925c28e83SPiotr Jasiukajtis 321025c28e83SPiotr Jasiukajtis andcc %l4,2,%g0 321125c28e83SPiotr Jasiukajtis fmovdnz %icc,%f4,%f6 321225c28e83SPiotr Jasiukajtis st %f6,[%o0] 321325c28e83SPiotr Jasiukajtis 321425c28e83SPiotr Jasiukajtis andcc %l1,2,%g0 321525c28e83SPiotr Jasiukajtis fmovdnz %icc,%f12,%f14 321625c28e83SPiotr Jasiukajtis st %f14,[%o1] 321725c28e83SPiotr Jasiukajtis 321825c28e83SPiotr Jasiukajtis andcc %l2,2,%g0 321925c28e83SPiotr Jasiukajtis fmovdnz %icc,%f20,%f22 322025c28e83SPiotr Jasiukajtis st %f22,[%o2] 322125c28e83SPiotr Jasiukajtis 322225c28e83SPiotr Jasiukajtis andcc %l3,2,%g0 322325c28e83SPiotr Jasiukajtis fmovdnz %icc,%f28,%f30 322425c28e83SPiotr Jasiukajtis st %f30,[%o3] 322525c28e83SPiotr Jasiukajtis 322625c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 322725c28e83SPiotr Jasiukajtis bg,pt %icc,.loop0 322825c28e83SPiotr Jasiukajtis! delay slot 322925c28e83SPiotr Jasiukajtis st %f7,[%o0+4] 323025c28e83SPiotr Jasiukajtis 323125c28e83SPiotr Jasiukajtis ba,pt %icc,.end 323225c28e83SPiotr Jasiukajtis! delay slot 323325c28e83SPiotr Jasiukajtis nop 323425c28e83SPiotr Jasiukajtis 323525c28e83SPiotr Jasiukajtis 323625c28e83SPiotr Jasiukajtis .align 16 323725c28e83SPiotr Jasiukajtis.end: 323825c28e83SPiotr Jasiukajtis st %f15,[%o1+4] 323925c28e83SPiotr Jasiukajtis st %f23,[%o2+4] 324025c28e83SPiotr Jasiukajtis st %f31,[%o3+4] 324125c28e83SPiotr Jasiukajtis ld [%fp+biguns],%i5 324225c28e83SPiotr Jasiukajtis tst %i5 ! check for huge arguments remaining 324325c28e83SPiotr Jasiukajtis be,pt %icc,.exit 324425c28e83SPiotr Jasiukajtis! delay slot 324525c28e83SPiotr Jasiukajtis nop 324625c28e83SPiotr Jasiukajtis#ifdef __sparcv9 324725c28e83SPiotr Jasiukajtis ldx [%fp+xsave],%o1 324825c28e83SPiotr Jasiukajtis ldx [%fp+ysave],%o3 324925c28e83SPiotr Jasiukajtis#else 325025c28e83SPiotr Jasiukajtis ld [%fp+xsave],%o1 325125c28e83SPiotr Jasiukajtis ld [%fp+ysave],%o3 325225c28e83SPiotr Jasiukajtis#endif 325325c28e83SPiotr Jasiukajtis ld [%fp+nsave],%o0 325425c28e83SPiotr Jasiukajtis ld [%fp+sxsave],%o2 325525c28e83SPiotr Jasiukajtis ld [%fp+sysave],%o4 325625c28e83SPiotr Jasiukajtis sra %o2,0,%o2 ! sign-extend for V9 325725c28e83SPiotr Jasiukajtis sra %o4,0,%o4 325825c28e83SPiotr Jasiukajtis call __vlibm_vsin_big_ultra3 325925c28e83SPiotr Jasiukajtis sra %o5,0,%o5 ! delay slot 326025c28e83SPiotr Jasiukajtis 326125c28e83SPiotr Jasiukajtis.exit: 326225c28e83SPiotr Jasiukajtis ret 326325c28e83SPiotr Jasiukajtis restore 326425c28e83SPiotr Jasiukajtis 326525c28e83SPiotr Jasiukajtis 326625c28e83SPiotr Jasiukajtis .align 16 326725c28e83SPiotr Jasiukajtis.last1: 326825c28e83SPiotr Jasiukajtis faddd %f2,c3two44,%f4 326925c28e83SPiotr Jasiukajtis st %f15,[%o1+4] 327025c28e83SPiotr Jasiukajtis.last1_from_range1: 327125c28e83SPiotr Jasiukajtis mov 0,%l1 327225c28e83SPiotr Jasiukajtis fzeros %f8 327325c28e83SPiotr Jasiukajtis fzero %f10 327425c28e83SPiotr Jasiukajtis add %fp,junk,%o1 327525c28e83SPiotr Jasiukajtis.last2: 327625c28e83SPiotr Jasiukajtis faddd %f10,c3two44,%f12 327725c28e83SPiotr Jasiukajtis st %f23,[%o2+4] 327825c28e83SPiotr Jasiukajtis.last2_from_range2: 327925c28e83SPiotr Jasiukajtis mov 0,%l2 328025c28e83SPiotr Jasiukajtis fzeros %f16 328125c28e83SPiotr Jasiukajtis fzero %f18 328225c28e83SPiotr Jasiukajtis add %fp,junk,%o2 328325c28e83SPiotr Jasiukajtis.last3: 328425c28e83SPiotr Jasiukajtis faddd %f18,c3two44,%f20 328525c28e83SPiotr Jasiukajtis st %f31,[%o3+4] 328625c28e83SPiotr Jasiukajtis st %f5,[%fp+nk0] 328725c28e83SPiotr Jasiukajtis st %f13,[%fp+nk1] 328825c28e83SPiotr Jasiukajtis.last3_from_range3: 328925c28e83SPiotr Jasiukajtis mov 0,%l3 329025c28e83SPiotr Jasiukajtis fzeros %f24 329125c28e83SPiotr Jasiukajtis fzero %f26 329225c28e83SPiotr Jasiukajtis ba,pt %icc,.cont 329325c28e83SPiotr Jasiukajtis! delay slot 329425c28e83SPiotr Jasiukajtis add %fp,junk,%o3 329525c28e83SPiotr Jasiukajtis 329625c28e83SPiotr Jasiukajtis 329725c28e83SPiotr Jasiukajtis .align 16 329825c28e83SPiotr Jasiukajtis.range0: 329925c28e83SPiotr Jasiukajtis cmp %l0,%o4 330025c28e83SPiotr Jasiukajtis bl,pt %icc,1f ! hx < 0x3e400000 330125c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 330225c28e83SPiotr Jasiukajtis sethi %hi(0x7ff00000),%o7 330325c28e83SPiotr Jasiukajtis cmp %l0,%o7 330425c28e83SPiotr Jasiukajtis bl,a,pt %icc,2f ! branch if finite 330525c28e83SPiotr Jasiukajtis! delay slot, squashed if branch not taken 330625c28e83SPiotr Jasiukajtis st %o4,[%fp+biguns] ! set biguns 330725c28e83SPiotr Jasiukajtis fzero %f0 330825c28e83SPiotr Jasiukajtis fmuld %f2,%f0,%f2 330925c28e83SPiotr Jasiukajtis st %f2,[%o0] 331025c28e83SPiotr Jasiukajtis ba,pt %icc,2f 331125c28e83SPiotr Jasiukajtis! delay slot 331225c28e83SPiotr Jasiukajtis st %f3,[%o0+4] 331325c28e83SPiotr Jasiukajtis1: 331425c28e83SPiotr Jasiukajtis fdtoi %f2,%f4 ! raise inexact if not zero 331525c28e83SPiotr Jasiukajtis st %f0,[%o0] 331625c28e83SPiotr Jasiukajtis st %f3,[%o0+4] 331725c28e83SPiotr Jasiukajtis2: 331825c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 331925c28e83SPiotr Jasiukajtis ble,pn %icc,.end 332025c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 332125c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 332225c28e83SPiotr Jasiukajtis andn %l1,%i5,%l0 ! hx &= ~0x80000000 332325c28e83SPiotr Jasiukajtis fmovs %f8,%f0 332425c28e83SPiotr Jasiukajtis fmovs %f11,%f3 332525c28e83SPiotr Jasiukajtis ba,pt %icc,.loop0 332625c28e83SPiotr Jasiukajtis! delay slot 332725c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 332825c28e83SPiotr Jasiukajtis 332925c28e83SPiotr Jasiukajtis 333025c28e83SPiotr Jasiukajtis .align 16 333125c28e83SPiotr Jasiukajtis.range1: 333225c28e83SPiotr Jasiukajtis cmp %l1,%o4 333325c28e83SPiotr Jasiukajtis bl,pt %icc,1f ! hx < 0x3e400000 333425c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 333525c28e83SPiotr Jasiukajtis sethi %hi(0x7ff00000),%o7 333625c28e83SPiotr Jasiukajtis cmp %l1,%o7 333725c28e83SPiotr Jasiukajtis bl,a,pt %icc,2f ! branch if finite 333825c28e83SPiotr Jasiukajtis! delay slot, squashed if branch not taken 333925c28e83SPiotr Jasiukajtis st %o4,[%fp+biguns] ! set biguns 334025c28e83SPiotr Jasiukajtis fzero %f8 334125c28e83SPiotr Jasiukajtis fmuld %f10,%f8,%f10 334225c28e83SPiotr Jasiukajtis st %f10,[%o1] 334325c28e83SPiotr Jasiukajtis ba,pt %icc,2f 334425c28e83SPiotr Jasiukajtis! delay slot 334525c28e83SPiotr Jasiukajtis st %f11,[%o1+4] 334625c28e83SPiotr Jasiukajtis1: 334725c28e83SPiotr Jasiukajtis fdtoi %f10,%f12 ! raise inexact if not zero 334825c28e83SPiotr Jasiukajtis st %f8,[%o1] 334925c28e83SPiotr Jasiukajtis st %f11,[%o1+4] 335025c28e83SPiotr Jasiukajtis2: 335125c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 335225c28e83SPiotr Jasiukajtis ble,pn %icc,.last1_from_range1 335325c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 335425c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 335525c28e83SPiotr Jasiukajtis andn %l2,%i5,%l1 ! hx &= ~0x80000000 335625c28e83SPiotr Jasiukajtis fmovs %f16,%f8 335725c28e83SPiotr Jasiukajtis fmovs %f19,%f11 335825c28e83SPiotr Jasiukajtis ba,pt %icc,.loop1 335925c28e83SPiotr Jasiukajtis! delay slot 336025c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 336125c28e83SPiotr Jasiukajtis 336225c28e83SPiotr Jasiukajtis 336325c28e83SPiotr Jasiukajtis .align 16 336425c28e83SPiotr Jasiukajtis.range2: 336525c28e83SPiotr Jasiukajtis cmp %l2,%o4 336625c28e83SPiotr Jasiukajtis bl,pt %icc,1f ! hx < 0x3e400000 336725c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 336825c28e83SPiotr Jasiukajtis sethi %hi(0x7ff00000),%o7 336925c28e83SPiotr Jasiukajtis cmp %l2,%o7 337025c28e83SPiotr Jasiukajtis bl,a,pt %icc,2f ! branch if finite 337125c28e83SPiotr Jasiukajtis! delay slot, squashed if branch not taken 337225c28e83SPiotr Jasiukajtis st %o4,[%fp+biguns] ! set biguns 337325c28e83SPiotr Jasiukajtis fzero %f16 337425c28e83SPiotr Jasiukajtis fmuld %f18,%f16,%f18 337525c28e83SPiotr Jasiukajtis st %f18,[%o2] 337625c28e83SPiotr Jasiukajtis ba,pt %icc,2f 337725c28e83SPiotr Jasiukajtis! delay slot 337825c28e83SPiotr Jasiukajtis st %f19,[%o2+4] 337925c28e83SPiotr Jasiukajtis1: 338025c28e83SPiotr Jasiukajtis fdtoi %f18,%f20 ! raise inexact if not zero 338125c28e83SPiotr Jasiukajtis st %f16,[%o2] 338225c28e83SPiotr Jasiukajtis st %f19,[%o2+4] 338325c28e83SPiotr Jasiukajtis2: 338425c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 338525c28e83SPiotr Jasiukajtis ble,pn %icc,.last2_from_range2 338625c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 338725c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 338825c28e83SPiotr Jasiukajtis andn %l3,%i5,%l2 ! hx &= ~0x80000000 338925c28e83SPiotr Jasiukajtis fmovs %f24,%f16 339025c28e83SPiotr Jasiukajtis fmovs %f27,%f19 339125c28e83SPiotr Jasiukajtis ba,pt %icc,.loop2 339225c28e83SPiotr Jasiukajtis! delay slot 339325c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 339425c28e83SPiotr Jasiukajtis 339525c28e83SPiotr Jasiukajtis 339625c28e83SPiotr Jasiukajtis .align 16 339725c28e83SPiotr Jasiukajtis.range3: 339825c28e83SPiotr Jasiukajtis cmp %l3,%o4 339925c28e83SPiotr Jasiukajtis bl,pt %icc,1f ! hx < 0x3e400000 340025c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 340125c28e83SPiotr Jasiukajtis sethi %hi(0x7ff00000),%o7 340225c28e83SPiotr Jasiukajtis cmp %l3,%o7 340325c28e83SPiotr Jasiukajtis bl,a,pt %icc,2f ! branch if finite 340425c28e83SPiotr Jasiukajtis! delay slot, squashed if branch not taken 340525c28e83SPiotr Jasiukajtis st %o4,[%fp+biguns] ! set biguns 340625c28e83SPiotr Jasiukajtis fzero %f24 340725c28e83SPiotr Jasiukajtis fmuld %f26,%f24,%f26 340825c28e83SPiotr Jasiukajtis st %f26,[%o3] 340925c28e83SPiotr Jasiukajtis ba,pt %icc,2f 341025c28e83SPiotr Jasiukajtis! delay slot 341125c28e83SPiotr Jasiukajtis st %f27,[%o3+4] 341225c28e83SPiotr Jasiukajtis1: 341325c28e83SPiotr Jasiukajtis fdtoi %f26,%f28 ! raise inexact if not zero 341425c28e83SPiotr Jasiukajtis st %f24,[%o3] 341525c28e83SPiotr Jasiukajtis st %f27,[%o3+4] 341625c28e83SPiotr Jasiukajtis2: 341725c28e83SPiotr Jasiukajtis addcc %i0,-1,%i0 341825c28e83SPiotr Jasiukajtis ble,pn %icc,.last3_from_range3 341925c28e83SPiotr Jasiukajtis! delay slot, harmless if branch taken 342025c28e83SPiotr Jasiukajtis add %i3,%i4,%i3 ! y += stridey 342125c28e83SPiotr Jasiukajtis ld [%i1],%l3 342225c28e83SPiotr Jasiukajtis ld [%i1],%f24 342325c28e83SPiotr Jasiukajtis ld [%i1+4],%f27 342425c28e83SPiotr Jasiukajtis andn %l3,%i5,%l3 ! hx &= ~0x80000000 342525c28e83SPiotr Jasiukajtis ba,pt %icc,.loop3 342625c28e83SPiotr Jasiukajtis! delay slot 342725c28e83SPiotr Jasiukajtis add %i1,%i2,%i1 ! x += stridex 342825c28e83SPiotr Jasiukajtis 342925c28e83SPiotr Jasiukajtis SET_SIZE(__vsin_ultra3) 343025c28e83SPiotr Jasiukajtis 3431