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