4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
25 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
26 * Use is subject to license terms.
36 .word 0xbfc55554,0x60000000
37 .word 0x3f811077,0xe0000000
38 .word 0xbf29956b,0x60000000
39 .word 0x3ff00000,0x00000000
40 .word 0xbfe00000,0x00000000
41 .word 0x3fa55554,0xa0000000
42 .word 0xbf56c0c1,0xe0000000
43 .word 0x3ef99e24,0xe0000000
44 .word 0x3fe45f30,0x6dc9c883
45 .word 0x43380000,0x00000000
46 .word 0x3ff921fb,0x54400000
47 .word 0x3dd0b461,0x1a626331
70 ! local storage indices
72 #define xsave STACK_BIAS-0x8
73 #define ysave STACK_BIAS-0x10
74 #define nsave STACK_BIAS-0x14
75 #define sxsave STACK_BIAS-0x18
76 #define sysave STACK_BIAS-0x1c
77 #define junk STACK_BIAS-0x20
78 #define n3 STACK_BIAS-0x24
79 #define n2 STACK_BIAS-0x28
80 #define n1 STACK_BIAS-0x2c
81 #define n0 STACK_BIAS-0x30
82 ! sizeof temp storage - must be a multiple of 16 for V9
103 ! the following are 64-bit registers in both V8+ and V9
125 ! f18 thresh2 (2^19 pi)
150 save %sp,-SA(MINFRAME)-tmps,%sp
152 PIC_SET(l7,constants,l0)
154 wr %g0,0x82,%asi ! set %asi for non-faulting loads
156 stx %i1,[%fp+xsave] ! save arguments
159 st %i1,[%fp+xsave] ! save arguments
165 mov 0,%i5 ! biguns = 0
166 ldd [%g1+S0],%f40 ! load constants
174 ldd [%g1+invpio2],%f56
176 ldd [%g1+pio2_1],%f60
177 ldd [%g1+pio2_t],%f62
178 ldd [%g1+thresh1],%f8
179 ldd [%g1+thresh2],%f18
181 ldd [%g1+signbit],%f28
182 sll %i2,2,%i2 ! scale strides
184 fzero %f10 ! loop prologue
198 add %i1,%i2,%i1 ! x += stridex
203 mov %i3,%o0 ! py0 = y
206 add %i3,%i4,%i3 ! y += stridey
209 add %i1,%i2,%i1 ! x += stridex
214 mov %i3,%o1 ! py1 = y
217 add %i3,%i4,%i3 ! y += stridey
220 add %i1,%i2,%i1 ! x += stridex
225 mov %i3,%o2 ! py2 = y
228 add %i3,%i4,%i3 ! y += stridey
231 add %i1,%i2,%i1 ! x += stridex
236 mov %i3,%o3 ! py3 = y
237 add %i3,%i4,%i3 ! y += stridey
246 fcmple32 %f30,%f18,%l0
248 fcmple32 %f32,%f18,%l1
250 fcmple32 %f34,%f18,%l2
252 fcmple32 %f36,%f18,%l3
257 bz,pn %icc,.range0 ! branch if > 2^19 pi
259 fcmple32 %f30,%f8,%l0
263 bz,pn %icc,.range1 ! branch if > 2^19 pi
265 fcmple32 %f32,%f8,%l1
269 bz,pn %icc,.range2 ! branch if > 2^19 pi
271 fcmple32 %f34,%f8,%l2
275 bz,pn %icc,.range3 ! branch if > 2^19 pi
277 fcmple32 %f36,%f8,%l3
299 bz,pn %icc,.medium ! branch if any argument is > pi/4
455 fmuld %f30,%f54,%f10 ! cos(x0)
458 fmuld %f32,%f54,%f12 ! cos(x1)
461 fmuld %f34,%f54,%f14 ! cos(x2)
464 fmuld %f36,%f54,%f16 ! cos(x3)
508 fmovrdnz %g1,%f28,%f0
511 fmovrdnz %g5,%f28,%f2
514 fmovrdnz %o4,%f28,%f4
517 fmovrdnz %o5,%f28,%f6
544 fmuld %f30,%f54,%f10 ! cos(x0)
547 fmuld %f32,%f54,%f12 ! cos(x1)
550 fmuld %f34,%f54,%f14 ! cos(x2)
553 fmuld %f36,%f44,%f16 ! sin(x3)
595 fmovrdnz %g1,%f28,%f0
598 fmovrdnz %g5,%f28,%f2
601 fmovrdnz %o4,%f28,%f4
613 fmovrdnz %o5,%f28,%f36
637 fmuld %f30,%f54,%f10 ! cos(x0)
640 fmuld %f32,%f54,%f12 ! cos(x1)
643 fmuld %f34,%f44,%f14 ! sin(x2)
645 fmuld %f36,%f54,%f16 ! cos(x3)
688 fmovrdnz %g1,%f28,%f0
691 fmovrdnz %g5,%f28,%f2
697 fmovrdnz %o5,%f28,%f6
704 fmovrdnz %o4,%f28,%f34
725 fmuld %f30,%f54,%f10 ! cos(x0)
728 fmuld %f32,%f54,%f12 ! cos(x1)
731 fmuld %f34,%f44,%f14 ! sin(x2)
733 fmuld %f36,%f44,%f16 ! sin(x3)
774 fmovrdnz %g1,%f28,%f0
777 fmovrdnz %g5,%f28,%f2
790 fmovrdnz %o4,%f28,%f34
793 fmovrdnz %o5,%f28,%f36
822 fmuld %f30,%f54,%f10 ! cos(x0)
825 fmuld %f32,%f44,%f12 ! sin(x1)
827 fmuld %f34,%f54,%f14 ! cos(x2)
830 fmuld %f36,%f54,%f16 ! cos(x3)
873 fmovrdnz %g1,%f28,%f0
879 fmovrdnz %o4,%f28,%f4
882 fmovrdnz %o5,%f28,%f6
887 fmovrdnz %g5,%f28,%f32
910 fmuld %f30,%f54,%f10 ! cos(x0)
913 fmuld %f32,%f44,%f12 ! sin(x1)
915 fmuld %f34,%f54,%f14 ! cos(x2)
918 fmuld %f36,%f44,%f16 ! sin(x3)
959 fmovrdnz %g1,%f28,%f0
965 fmovrdnz %o4,%f28,%f4
973 fmovrdnz %g5,%f28,%f32
978 fmovrdnz %o5,%f28,%f36
1002 fmuld %f30,%f54,%f10 ! cos(x0)
1005 fmuld %f32,%f44,%f12 ! sin(x1)
1007 fmuld %f34,%f44,%f14 ! sin(x2)
1009 fmuld %f36,%f54,%f16 ! cos(x3)
1012 fmuld %f30,%f48,%f20
1013 faddd %f10,%f52,%f10
1015 fmuld %f32,%f40,%f22
1016 faddd %f12,%f42,%f12
1018 fmuld %f34,%f40,%f24
1019 faddd %f14,%f42,%f14
1021 fmuld %f36,%f48,%f26
1022 faddd %f16,%f52,%f16
1024 fmuld %f30,%f10,%f10
1025 faddd %f20,%f46,%f20
1027 fmuld %f32,%f32,%f32
1028 faddd %f22,%f46,%f22
1030 fmuld %f34,%f34,%f34
1031 faddd %f24,%f46,%f24
1033 fmuld %f36,%f16,%f16
1034 faddd %f26,%f46,%f26
1036 fmuld %f30,%f30,%f30
1037 faddd %f10,%f50,%f10
1040 fmuld %f32,%f12,%f12
1043 fmuld %f34,%f14,%f14
1046 fmuld %f36,%f36,%f36
1047 faddd %f16,%f50,%f16
1050 fmuld %f30,%f10,%f10
1051 fmovrdnz %g1,%f28,%f0
1053 faddd %f12,%f22,%f12
1056 faddd %f14,%f24,%f14
1059 fmuld %f36,%f16,%f16
1060 fmovrdnz %o5,%f28,%f6
1062 faddd %f10,%f20,%f10
1065 fmovrdnz %g5,%f28,%f32
1068 fmovrdnz %o4,%f28,%f34
1070 faddd %f16,%f26,%f16
1089 fmuld %f30,%f54,%f10 ! cos(x0)
1092 fmuld %f32,%f44,%f12 ! sin(x1)
1094 fmuld %f34,%f44,%f14 ! sin(x2)
1096 fmuld %f36,%f44,%f16 ! sin(x3)
1098 fmuld %f30,%f48,%f20
1099 faddd %f10,%f52,%f10
1101 fmuld %f32,%f40,%f22
1102 faddd %f12,%f42,%f12
1104 fmuld %f34,%f40,%f24
1105 faddd %f14,%f42,%f14
1107 fmuld %f36,%f40,%f26
1108 faddd %f16,%f42,%f16
1110 fmuld %f30,%f10,%f10
1111 faddd %f20,%f46,%f20
1113 fmuld %f32,%f32,%f32
1114 faddd %f22,%f46,%f22
1116 fmuld %f34,%f34,%f34
1117 faddd %f24,%f46,%f24
1119 fmuld %f36,%f36,%f36
1120 faddd %f26,%f46,%f26
1122 fmuld %f30,%f30,%f30
1123 faddd %f10,%f50,%f10
1126 fmuld %f32,%f12,%f12
1129 fmuld %f34,%f14,%f14
1132 fmuld %f36,%f16,%f16
1135 fmuld %f30,%f10,%f10
1136 fmovrdnz %g1,%f28,%f0
1138 faddd %f12,%f22,%f12
1141 faddd %f14,%f24,%f14
1144 faddd %f16,%f26,%f16
1147 faddd %f10,%f20,%f10
1150 fmovrdnz %g5,%f28,%f32
1153 fmovrdnz %o4,%f28,%f34
1156 fmovrdnz %o5,%f28,%f36
1191 fmuld %f30,%f44,%f10 ! sin(x0)
1193 fmuld %f32,%f54,%f12 ! cos(x1)
1196 fmuld %f34,%f54,%f14 ! cos(x2)
1199 fmuld %f36,%f54,%f16 ! cos(x3)
1202 fmuld %f30,%f40,%f20
1203 faddd %f10,%f42,%f10
1205 fmuld %f32,%f48,%f22
1206 faddd %f12,%f52,%f12
1208 fmuld %f34,%f48,%f24
1209 faddd %f14,%f52,%f14
1211 fmuld %f36,%f48,%f26
1212 faddd %f16,%f52,%f16
1214 fmuld %f30,%f30,%f30
1215 faddd %f20,%f46,%f20
1217 fmuld %f32,%f12,%f12
1218 faddd %f22,%f46,%f22
1220 fmuld %f34,%f14,%f14
1221 faddd %f24,%f46,%f24
1223 fmuld %f36,%f16,%f16
1224 faddd %f26,%f46,%f26
1226 fmuld %f30,%f10,%f10
1229 fmuld %f32,%f32,%f32
1230 faddd %f12,%f50,%f12
1233 fmuld %f34,%f34,%f34
1234 faddd %f14,%f50,%f14
1237 fmuld %f36,%f36,%f36
1238 faddd %f16,%f50,%f16
1241 faddd %f10,%f20,%f10
1244 fmuld %f32,%f12,%f12
1245 fmovrdnz %g5,%f28,%f2
1247 fmuld %f34,%f14,%f14
1248 fmovrdnz %o4,%f28,%f4
1250 fmuld %f36,%f16,%f16
1251 fmovrdnz %o5,%f28,%f6
1254 fmovrdnz %g1,%f28,%f30
1256 faddd %f12,%f22,%f12
1258 faddd %f14,%f24,%f14
1260 faddd %f16,%f26,%f16
1279 fmuld %f30,%f44,%f10 ! sin(x0)
1281 fmuld %f32,%f54,%f12 ! cos(x1)
1284 fmuld %f34,%f54,%f14 ! cos(x2)
1287 fmuld %f36,%f44,%f16 ! sin(x3)
1289 fmuld %f30,%f40,%f20
1290 faddd %f10,%f42,%f10
1292 fmuld %f32,%f48,%f22
1293 faddd %f12,%f52,%f12
1295 fmuld %f34,%f48,%f24
1296 faddd %f14,%f52,%f14
1298 fmuld %f36,%f40,%f26
1299 faddd %f16,%f42,%f16
1301 fmuld %f30,%f30,%f30
1302 faddd %f20,%f46,%f20
1304 fmuld %f32,%f12,%f12
1305 faddd %f22,%f46,%f22
1307 fmuld %f34,%f14,%f14
1308 faddd %f24,%f46,%f24
1310 fmuld %f36,%f36,%f36
1311 faddd %f26,%f46,%f26
1313 fmuld %f30,%f10,%f10
1316 fmuld %f32,%f32,%f32
1317 faddd %f12,%f50,%f12
1320 fmuld %f34,%f34,%f34
1321 faddd %f14,%f50,%f14
1324 fmuld %f36,%f16,%f16
1327 faddd %f10,%f20,%f10
1330 fmuld %f32,%f12,%f12
1331 fmovrdnz %g5,%f28,%f2
1333 fmuld %f34,%f14,%f14
1334 fmovrdnz %o4,%f28,%f4
1336 faddd %f16,%f26,%f16
1340 fmovrdnz %g1,%f28,%f30
1342 faddd %f12,%f22,%f12
1344 faddd %f14,%f24,%f14
1347 fmovrdnz %o5,%f28,%f36
1371 fmuld %f30,%f44,%f10 ! sin(x0)
1373 fmuld %f32,%f54,%f12 ! cos(x1)
1376 fmuld %f34,%f44,%f14 ! sin(x2)
1378 fmuld %f36,%f54,%f16 ! cos(x3)
1381 fmuld %f30,%f40,%f20
1382 faddd %f10,%f42,%f10
1384 fmuld %f32,%f48,%f22
1385 faddd %f12,%f52,%f12
1387 fmuld %f34,%f40,%f24
1388 faddd %f14,%f42,%f14
1390 fmuld %f36,%f48,%f26
1391 faddd %f16,%f52,%f16
1393 fmuld %f30,%f30,%f30
1394 faddd %f20,%f46,%f20
1396 fmuld %f32,%f12,%f12
1397 faddd %f22,%f46,%f22
1399 fmuld %f34,%f34,%f34
1400 faddd %f24,%f46,%f24
1402 fmuld %f36,%f16,%f16
1403 faddd %f26,%f46,%f26
1405 fmuld %f30,%f10,%f10
1408 fmuld %f32,%f32,%f32
1409 faddd %f12,%f50,%f12
1412 fmuld %f34,%f14,%f14
1415 fmuld %f36,%f36,%f36
1416 faddd %f16,%f50,%f16
1419 faddd %f10,%f20,%f10
1422 fmuld %f32,%f12,%f12
1423 fmovrdnz %g5,%f28,%f2
1425 faddd %f14,%f24,%f14
1428 fmuld %f36,%f16,%f16
1429 fmovrdnz %o5,%f28,%f6
1432 fmovrdnz %g1,%f28,%f30
1434 faddd %f12,%f22,%f12
1437 fmovrdnz %o4,%f28,%f34
1439 faddd %f16,%f26,%f16
1458 fmuld %f30,%f44,%f10 ! sin(x0)
1460 fmuld %f32,%f54,%f12 ! cos(x1)
1463 fmuld %f34,%f44,%f14 ! sin(x2)
1465 fmuld %f36,%f44,%f16 ! sin(x3)
1467 fmuld %f30,%f40,%f20
1468 faddd %f10,%f42,%f10
1470 fmuld %f32,%f48,%f22
1471 faddd %f12,%f52,%f12
1473 fmuld %f34,%f40,%f24
1474 faddd %f14,%f42,%f14
1476 fmuld %f36,%f40,%f26
1477 faddd %f16,%f42,%f16
1479 fmuld %f30,%f30,%f30
1480 faddd %f20,%f46,%f20
1482 fmuld %f32,%f12,%f12
1483 faddd %f22,%f46,%f22
1485 fmuld %f34,%f34,%f34
1486 faddd %f24,%f46,%f24
1488 fmuld %f36,%f36,%f36
1489 faddd %f26,%f46,%f26
1491 fmuld %f30,%f10,%f10
1494 fmuld %f32,%f32,%f32
1495 faddd %f12,%f50,%f12
1498 fmuld %f34,%f14,%f14
1501 fmuld %f36,%f16,%f16
1504 faddd %f10,%f20,%f10
1507 fmuld %f32,%f12,%f12
1508 fmovrdnz %g5,%f28,%f2
1510 faddd %f14,%f24,%f14
1513 faddd %f16,%f26,%f16
1517 fmovrdnz %g1,%f28,%f30
1519 faddd %f12,%f22,%f12
1522 fmovrdnz %o4,%f28,%f34
1525 fmovrdnz %o5,%f28,%f36
1554 fmuld %f30,%f44,%f10 ! sin(x0)
1556 fmuld %f32,%f44,%f12 ! sin(x1)
1558 fmuld %f34,%f54,%f14 ! cos(x2)
1561 fmuld %f36,%f54,%f16 ! cos(x3)
1564 fmuld %f30,%f40,%f20
1565 faddd %f10,%f42,%f10
1567 fmuld %f32,%f40,%f22
1568 faddd %f12,%f42,%f12
1570 fmuld %f34,%f48,%f24
1571 faddd %f14,%f52,%f14
1573 fmuld %f36,%f48,%f26
1574 faddd %f16,%f52,%f16
1576 fmuld %f30,%f30,%f30
1577 faddd %f20,%f46,%f20
1579 fmuld %f32,%f32,%f32
1580 faddd %f22,%f46,%f22
1582 fmuld %f34,%f14,%f14
1583 faddd %f24,%f46,%f24
1585 fmuld %f36,%f16,%f16
1586 faddd %f26,%f46,%f26
1588 fmuld %f30,%f10,%f10
1591 fmuld %f32,%f12,%f12
1594 fmuld %f34,%f34,%f34
1595 faddd %f14,%f50,%f14
1598 fmuld %f36,%f36,%f36
1599 faddd %f16,%f50,%f16
1602 faddd %f10,%f20,%f10
1605 faddd %f12,%f22,%f12
1608 fmuld %f34,%f14,%f14
1609 fmovrdnz %o4,%f28,%f4
1611 fmuld %f36,%f16,%f16
1612 fmovrdnz %o5,%f28,%f6
1615 fmovrdnz %g1,%f28,%f30
1618 fmovrdnz %g5,%f28,%f32
1620 faddd %f14,%f24,%f14
1622 faddd %f16,%f26,%f16
1641 fmuld %f30,%f44,%f10 ! sin(x0)
1643 fmuld %f32,%f44,%f12 ! sin(x1)
1645 fmuld %f34,%f54,%f14 ! cos(x2)
1648 fmuld %f36,%f44,%f16 ! sin(x3)
1650 fmuld %f30,%f40,%f20
1651 faddd %f10,%f42,%f10
1653 fmuld %f32,%f40,%f22
1654 faddd %f12,%f42,%f12
1656 fmuld %f34,%f48,%f24
1657 faddd %f14,%f52,%f14
1659 fmuld %f36,%f40,%f26
1660 faddd %f16,%f42,%f16
1662 fmuld %f30,%f30,%f30
1663 faddd %f20,%f46,%f20
1665 fmuld %f32,%f32,%f32
1666 faddd %f22,%f46,%f22
1668 fmuld %f34,%f14,%f14
1669 faddd %f24,%f46,%f24
1671 fmuld %f36,%f36,%f36
1672 faddd %f26,%f46,%f26
1674 fmuld %f30,%f10,%f10
1677 fmuld %f32,%f12,%f12
1680 fmuld %f34,%f34,%f34
1681 faddd %f14,%f50,%f14
1684 fmuld %f36,%f16,%f16
1687 faddd %f10,%f20,%f10
1690 faddd %f12,%f22,%f12
1693 fmuld %f34,%f14,%f14
1694 fmovrdnz %o4,%f28,%f4
1696 faddd %f16,%f26,%f16
1700 fmovrdnz %g1,%f28,%f30
1703 fmovrdnz %g5,%f28,%f32
1705 faddd %f14,%f24,%f14
1708 fmovrdnz %o5,%f28,%f36
1732 fmuld %f30,%f44,%f10 ! sin(x0)
1734 fmuld %f32,%f44,%f12 ! sin(x1)
1736 fmuld %f34,%f44,%f14 ! sin(x2)
1738 fmuld %f36,%f54,%f16 ! cos(x3)
1741 fmuld %f30,%f40,%f20
1742 faddd %f10,%f42,%f10
1744 fmuld %f32,%f40,%f22
1745 faddd %f12,%f42,%f12
1747 fmuld %f34,%f40,%f24
1748 faddd %f14,%f42,%f14
1750 fmuld %f36,%f48,%f26
1751 faddd %f16,%f52,%f16
1753 fmuld %f30,%f30,%f30
1754 faddd %f20,%f46,%f20
1756 fmuld %f32,%f32,%f32
1757 faddd %f22,%f46,%f22
1759 fmuld %f34,%f34,%f34
1760 faddd %f24,%f46,%f24
1762 fmuld %f36,%f16,%f16
1763 faddd %f26,%f46,%f26
1765 fmuld %f30,%f10,%f10
1768 fmuld %f32,%f12,%f12
1771 fmuld %f34,%f14,%f14
1774 fmuld %f36,%f36,%f36
1775 faddd %f16,%f50,%f16
1778 faddd %f10,%f20,%f10
1781 faddd %f12,%f22,%f12
1784 faddd %f14,%f24,%f14
1787 fmuld %f36,%f16,%f16
1788 fmovrdnz %o5,%f28,%f6
1791 fmovrdnz %g1,%f28,%f30
1794 fmovrdnz %g5,%f28,%f32
1797 fmovrdnz %o4,%f28,%f34
1799 faddd %f16,%f26,%f16
1818 fmuld %f30,%f44,%f10 ! sin(x0)
1820 fmuld %f32,%f44,%f12 ! sin(x1)
1822 fmuld %f34,%f44,%f14 ! sin(x2)
1824 fmuld %f36,%f44,%f16 ! sin(x3)
1826 fmuld %f30,%f40,%f20
1827 faddd %f10,%f42,%f10
1829 fmuld %f32,%f40,%f22
1830 faddd %f12,%f42,%f12
1832 fmuld %f34,%f40,%f24
1833 faddd %f14,%f42,%f14
1835 fmuld %f36,%f40,%f26
1836 faddd %f16,%f42,%f16
1838 fmuld %f30,%f30,%f30
1839 faddd %f20,%f46,%f20
1841 fmuld %f32,%f32,%f32
1842 faddd %f22,%f46,%f22
1844 fmuld %f34,%f34,%f34
1845 faddd %f24,%f46,%f24
1847 fmuld %f36,%f36,%f36
1848 faddd %f26,%f46,%f26
1850 fmuld %f30,%f10,%f10
1853 fmuld %f32,%f12,%f12
1856 fmuld %f34,%f14,%f14
1859 fmuld %f36,%f16,%f16
1862 faddd %f10,%f20,%f10
1865 faddd %f12,%f22,%f12
1868 faddd %f14,%f24,%f14
1871 faddd %f16,%f26,%f16
1875 fmovrdnz %g1,%f28,%f30
1878 fmovrdnz %g5,%f28,%f32
1881 fmovrdnz %o4,%f28,%f34
1884 fmovrdnz %o5,%f28,%f36
1911 tst %i5 ! check for huge arguments remaining
1925 sra %o2,0,%o2 ! sign-extend for V9
1926 call __vlibm_vcos_bigf
1927 sra %o4,0,%o4 ! delay slot
1956 fcmpgt32 %f38,%f30,%l0
1958 bnz,a,pt %icc,1f ! branch if finite
1959 ! delay slot, squashed if branch not taken
1960 mov 1,%i5 ! set biguns
1974 fcmple32 %f30,%f18,%l0
1981 fcmple32 %f30,%f8,%l0
1983 fzero %f0 ! set up dummy argument
1993 fcmpgt32 %f38,%f32,%l1
1995 bnz,a,pt %icc,1f ! branch if finite
1996 ! delay slot, squashed if branch not taken
1997 mov 1,%i5 ! set biguns
2011 fcmple32 %f32,%f18,%l1
2018 fcmple32 %f32,%f8,%l1
2020 fzero %f2 ! set up dummy argument
2030 fcmpgt32 %f38,%f34,%l2
2032 bnz,a,pt %icc,1f ! branch if finite
2033 ! delay slot, squashed if branch not taken
2034 mov 1,%i5 ! set biguns
2048 fcmple32 %f34,%f18,%l2
2055 fcmple32 %f34,%f8,%l2
2057 fzero %f4 ! set up dummy argument
2067 fcmpgt32 %f38,%f36,%l3
2069 bnz,a,pt %icc,1f ! branch if finite
2070 ! delay slot, squashed if branch not taken
2071 mov 1,%i5 ! set biguns
2085 fcmple32 %f36,%f18,%l3
2090 ba,pt %icc,.checkprimary
2092 fcmple32 %f36,%f8,%l3
2094 fzero %f6 ! set up dummy argument
2097 ba,pt %icc,.checkprimary