| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543 | 
							- /*
 
- * Math library
 
- *
 
- * Copyright (C) 2016 Intel Corporation. All rights reserved.
 
- *
 
- * Redistribution and use in source and binary forms, with or without
 
- * modification, are permitted provided that the following conditions
 
- * are met:
 
- *
 
- *   * Redistributions of source code must retain the above copyright
 
- *     notice, this list of conditions and the following disclaimer.
 
- *   * Redistributions in binary form must reproduce the above copyright
 
- *     notice, this list of conditions and the following disclaimer in
 
- *     the documentation and/or other materials provided with the
 
- *     distribution.
 
- *   * Neither the name of Intel Corporation nor the names of its
 
- *     contributors may be used to endorse or promote products derived
 
- *     from this software without specific prior written permission.
 
- *
 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
- *
 
- *
 
- * Author Name <jingwei.zhang@intel.com>
 
- *   History:
 
- *   03-14-2016 Initial version. numerics svn rev. 12864
 
- */
 
- 	.file "cosf_gen.c"
 
- 	.text
 
- ..TXTST0:
 
- # -- Begin  cosf
 
- 	.text
 
-        .align    16,0x90
 
- 	.globl cosf
 
- cosf:
 
- # parameter 1: %xmm0
 
- ..B1.1:
 
- 	.cfi_startproc
 
- ..___tag_value_cosf.1:
 
- ..L2:
 
- ..B1.2:
 
-         subq      $32, %rsp
 
- 	.cfi_def_cfa_offset 40
 
-         stmxcsr   8(%rsp)
 
-         cmpl      $-24577, 8(%rsp)
 
-         jne       .L_2TAG_PACKET_0.0.1
 
- .L_2TAG_PACKET_1.0.1:
 
-         pshuflw   $68, %xmm0, %xmm1
 
-         movd      %xmm0, %ecx
 
-         cvtps2pd  %xmm1, %xmm1
 
-         movq      $0x40445f306e000000, %rax
 
-         movd      %rax, %xmm2
 
-         movl      $2147483647, %r10d
 
-         movl      $1241513983, %r8d
 
-         andl      %ecx, %r10d
 
-         subl      %r10d, %r8d
 
-         subl      $964689920, %r10d
 
-         orl       %r10d, %r8d
 
-         jl        .L_2TAG_PACKET_2.0.1
 
-         movq      $0x4338000000000000, %r11
 
-         movd      %r11, %xmm4
 
-         mulsd     %xmm1, %xmm2
 
-         movq      $0xbe5b1bbead603d8b, %rdx
 
-         movd      %rdx, %xmm3
 
-         movapd    %xmm2, %xmm5
 
-         addsd     %xmm4, %xmm2
 
-         movd      %xmm2, %r9d
 
-         subsd     %xmm4, %xmm2
 
-         mulsd     %xmm3, %xmm1
 
- .L_2TAG_PACKET_3.0.1:
 
-         lea       Ctable(%rip), %r10
 
-         movl      $384, %eax
 
-         movq      $0x40c37423899a1558, %rdx
 
-         movd      %rdx, %xmm4
 
-         subsd     %xmm2, %xmm5
 
-         addl      %r9d, %r9d
 
-         movl      %r9d, %r8d
 
-         sarb      $7, %r9b
 
-         andl      %r8d, %eax
 
-         addb      %r9b, %r8b
 
-         xorb      %r9b, %r8b
 
-         addsd     %xmm5, %xmm1
 
-         andl      $254, %r8d
 
-         movsd     (%r10,%r8,8), %xmm3
 
-         movq      $0x40a9f02f6222c720, %r11
 
-         movd      %r11, %xmm0
 
-         movapd    %xmm1, %xmm2
 
-         unpcklpd  %xmm1, %xmm2
 
-         mulsd     %xmm1, %xmm1
 
-         movsd     8(%r10,%r8,8), %xmm5
 
-         movl      %eax, %r9d
 
-         andl      $256, %r9d
 
-         shlq      $55, %r9
 
-         mulsd     %xmm2, %xmm3
 
-         movd      %r9, %xmm2
 
-         subsd     %xmm1, %xmm0
 
-         addl      $128, %eax
 
-         andl      $256, %eax
 
-         shlq      $55, %rax
 
-         subsd     %xmm1, %xmm4
 
-         movd      %rax, %xmm1
 
-         xorpd     %xmm2, %xmm4
 
-         mulsd     %xmm5, %xmm0
 
-         mulsd     %xmm4, %xmm3
 
-         xorpd     %xmm1, %xmm0
 
-         addsd     %xmm3, %xmm0
 
-         movl      8(%rsp), %eax
 
-         andl      $-24577, %eax
 
-         cmpl      8(%rsp), %eax
 
-         je        .L_2TAG_PACKET_4.0.1
 
-         stmxcsr   16(%rsp)
 
-         movl      8(%rsp), %eax
 
-         andl      $24576, %eax
 
-         orl       %eax, 16(%rsp)
 
-         ldmxcsr   16(%rsp)
 
- .L_2TAG_PACKET_4.0.1:
 
-         cvtpd2ps  %xmm0, %xmm0
 
-         addq      $32, %rsp
 
-         ret       
 
- .L_2TAG_PACKET_2.0.1:
 
-         andl      $2147483647, %ecx
 
-         cmpl      $1040187392, %ecx
 
-         ja        .L_2TAG_PACKET_5.0.1
 
-         movl      $1065353216, %eax
 
-         movd      %rax, %xmm0
 
-         cmpl      $0, %ecx
 
-         je        .L_2TAG_PACKET_6.0.1
 
-         movl      $805306368, %eax
 
-         movd      %rax, %xmm1
 
-         subss     %xmm1, %xmm0
 
- .L_2TAG_PACKET_6.0.1:
 
-         movl      8(%rsp), %eax
 
-         andl      $-24577, %eax
 
-         cmpl      8(%rsp), %eax
 
-         jne       .L_2TAG_PACKET_7.0.1
 
- .L_2TAG_PACKET_8.0.1:
 
-         addq      $32, %rsp
 
-         ret       
 
- .L_2TAG_PACKET_5.0.1:
 
-         movd      %xmm0, %eax
 
-         andl      $2139095040, %eax
 
-         cmpl      $2139095040, %eax
 
-         je        .L_2TAG_PACKET_9.0.1
 
-         shrl      $23, %r10d
 
-         subl      $27, %r10d
 
-         andl      $65528, %r10d
 
-         lea       Pitable(%rip), %rax
 
-         movsd     (%rax,%r10,2), %xmm3
 
-         movsd     8(%rax,%r10,2), %xmm5
 
-         movq      $0xffffffffff000000, %r9
 
-         movd      %r9, %xmm2
 
-         movq      $0x4338000000000000, %r11
 
-         movd      %r11, %xmm4
 
-         andpd     %xmm3, %xmm2
 
-         psllq     $40, %xmm3
 
-         mulsd     %xmm1, %xmm2
 
-         mulsd     %xmm1, %xmm3
 
-         mulsd     %xmm5, %xmm1
 
-         movapd    %xmm2, %xmm0
 
-         addsd     %xmm3, %xmm2
 
-         movapd    %xmm2, %xmm5
 
-         subsd     %xmm2, %xmm0
 
-         addsd     %xmm4, %xmm2
 
-         addsd     %xmm0, %xmm3
 
-         movd      %xmm2, %r9d
 
-         subsd     %xmm4, %xmm2
 
-         addsd     %xmm3, %xmm1
 
-         jmp       .L_2TAG_PACKET_3.0.1
 
- .L_2TAG_PACKET_9.0.1:
 
-         subss     %xmm0, %xmm0
 
-         movl      8(%rsp), %eax
 
-         andl      $-24577, %eax
 
-         cmpl      8(%rsp), %eax
 
-         jne       .L_2TAG_PACKET_7.0.1
 
-         jmp       .L_2TAG_PACKET_8.0.1
 
- .L_2TAG_PACKET_0.0.1:
 
-         movl      8(%rsp), %eax
 
-         andl      $-24577, %eax
 
-         movl      %eax, 16(%rsp)
 
-         ldmxcsr   16(%rsp)
 
-         jmp       .L_2TAG_PACKET_1.0.1
 
- .L_2TAG_PACKET_7.0.1:
 
-         stmxcsr   16(%rsp)
 
-         movl      8(%rsp), %eax
 
-         andl      $24576, %eax
 
-         orl       %eax, 16(%rsp)
 
-         ldmxcsr   16(%rsp)
 
-         jmp       .L_2TAG_PACKET_8.0.1
 
- 	.cfi_def_cfa_offset 8
 
- ..B1.3:
 
-         .align    16,0x90
 
- 	.cfi_endproc
 
- 	.type	cosf,@function
 
- 	.size	cosf,.-cosf
 
- 	.data
 
- # -- End  cosf
 
- 	.section .rodata, "a"
 
- 	.align 16
 
- 	.align 16
 
- Ctable:
 
- 	.long	0
 
- 	.long	0
 
- 	.long	3384690142
 
- 	.long	1060355388
 
- 	.long	918535681
 
- 	.long	3195026356
 
- 	.long	735532773
 
- 	.long	1060354999
 
- 	.long	3431923622
 
- 	.long	3196074611
 
- 	.long	2385983684
 
- 	.long	1060353830
 
- 	.long	3670374716
 
- 	.long	3196605580
 
- 	.long	2769466396
 
- 	.long	1060351883
 
- 	.long	3087185898
 
- 	.long	3197121906
 
- 	.long	2627920248
 
- 	.long	1060349159
 
- 	.long	624330694
 
- 	.long	3197386271
 
- 	.long	418831766
 
- 	.long	1060345660
 
- 	.long	1991825541
 
- 	.long	3197649836
 
- 	.long	900924147
 
- 	.long	1060341387
 
- 	.long	3917367244
 
- 	.long	3197912443
 
- 	.long	2243801771
 
- 	.long	1060336343
 
- 	.long	2803392399
 
- 	.long	3198165367
 
- 	.long	316258674
 
- 	.long	1060330532
 
- 	.long	2429158325
 
- 	.long	3198295476
 
- 	.long	1563320407
 
- 	.long	1060323956
 
- 	.long	1382541649
 
- 	.long	3198424870
 
- 	.long	1522351063
 
- 	.long	1060316620
 
- 	.long	4207787592
 
- 	.long	3198553470
 
- 	.long	1992674941
 
- 	.long	1060308528
 
- 	.long	321119318
 
- 	.long	3198681201
 
- 	.long	2434209605
 
- 	.long	1060299685
 
- 	.long	2865853451
 
- 	.long	3198807983
 
- 	.long	4249822861
 
- 	.long	1060290096
 
- 	.long	1666812989
 
- 	.long	3198933742
 
- 	.long	2181617495
 
- 	.long	1060279768
 
- 	.long	2082609563
 
- 	.long	3199058401
 
- 	.long	1475857720
 
- 	.long	1060268706
 
- 	.long	3726787968
 
- 	.long	3199181885
 
- 	.long	687004205
 
- 	.long	1060256917
 
- 	.long	2478530408
 
- 	.long	3199254748
 
- 	.long	250409509
 
- 	.long	1060244408
 
- 	.long	3681356269
 
- 	.long	3199315204
 
- 	.long	2463945945
 
- 	.long	1060231186
 
- 	.long	1535093810
 
- 	.long	3199374963
 
- 	.long	2878576948
 
- 	.long	1060217260
 
- 	.long	350661592
 
- 	.long	3199433988
 
- 	.long	3162654741
 
- 	.long	1060202638
 
- 	.long	2042383238
 
- 	.long	3199492243
 
- 	.long	2490283769
 
- 	.long	1060187329
 
- 	.long	1925003623
 
- 	.long	3199549694
 
- 	.long	1813501338
 
- 	.long	1060171342
 
- 	.long	1689375324
 
- 	.long	3199606306
 
- 	.long	3838419993
 
- 	.long	1060154686
 
- 	.long	902054988
 
- 	.long	3199662045
 
- 	.long	115411415
 
- 	.long	1060137373
 
- 	.long	1388494065
 
- 	.long	3199716877
 
- 	.long	1077921708
 
- 	.long	1060119411
 
- 	.long	3024934267
 
- 	.long	3199770769
 
- 	.long	3311502568
 
- 	.long	1060091288
 
- 	.long	3823857331
 
- 	.long	3199823689
 
- 	.long	1148832537
 
- 	.long	1060052839
 
- 	.long	17970311
 
- 	.long	3199875606
 
- 	.long	652328457
 
- 	.long	1060013161
 
- 	.long	3322544997
 
- 	.long	3199926486
 
- 	.long	1395127179
 
- 	.long	1059972278
 
- 	.long	2361617751
 
- 	.long	3199976301
 
- 	.long	1772140623
 
- 	.long	1059930215
 
- 	.long	1401987205
 
- 	.long	3200025020
 
- 	.long	3231311734
 
- 	.long	1059886997
 
- 	.long	3250975870
 
- 	.long	3200072613
 
- 	.long	1618129506
 
- 	.long	1059842651
 
- 	.long	742418353
 
- 	.long	3200119053
 
- 	.long	4288148241
 
- 	.long	1059797202
 
- 	.long	2580634211
 
- 	.long	3200164310
 
- 	.long	4268074870
 
- 	.long	1059750679
 
- 	.long	3348027550
 
- 	.long	3200208358
 
- 	.long	1659779181
 
- 	.long	1059703110
 
- 	.long	755484892
 
- 	.long	3200251171
 
- 	.long	3567792879
 
- 	.long	1059654522
 
- 	.long	2993330
 
- 	.long	3200273337
 
- 	.long	2550341159
 
- 	.long	1059604946
 
- 	.long	488211833
 
- 	.long	3200293469
 
- 	.long	2313428161
 
- 	.long	1059554411
 
- 	.long	3436142021
 
- 	.long	3200312945
 
- 	.long	453708735
 
- 	.long	1059502948
 
- 	.long	1407782048
 
- 	.long	3200331755
 
- 	.long	1264637048
 
- 	.long	1059450587
 
- 	.long	1575056534
 
- 	.long	3200349886
 
- 	.long	2771364651
 
- 	.long	1059397360
 
- 	.long	4275292648
 
- 	.long	3200367327
 
- 	.long	944109265
 
- 	.long	1059343300
 
- 	.long	3039475318
 
- 	.long	3200384069
 
- 	.long	2500108843
 
- 	.long	1059288438
 
- 	.long	1799297257
 
- 	.long	3200400101
 
- 	.long	3344537919
 
- 	.long	1059232808
 
- 	.long	2028347177
 
- 	.long	3200415413
 
- 	.long	1369913724
 
- 	.long	1059176444
 
- 	.long	2767093429
 
- 	.long	3200429996
 
- 	.long	664370609
 
- 	.long	1059119379
 
- 	.long	646746141
 
- 	.long	3200443842
 
- 	.long	1372808103
 
- 	.long	1059061535
 
- 	.long	2796885356
 
- 	.long	3200456941
 
- 	.long	941816458
 
- 	.long	1058944809
 
- 	.long	1097233945
 
- 	.long	3200469287
 
- 	.long	1373383079
 
- 	.long	1058826890
 
- 	.long	2262842797
 
- 	.long	3200480871
 
- 	.long	2796081240
 
- 	.long	1058707849
 
- 	.long	2093526290
 
- 	.long	3200491687
 
- 	.long	3945677176
 
- 	.long	1058587758
 
- 	.long	2671784286
 
- 	.long	3200501728
 
- 	.long	1979618421
 
- 	.long	1058466690
 
- 	.long	3789723003
 
- 	.long	3200510988
 
- 	.long	879820317
 
- 	.long	1058344717
 
- 	.long	2964703016
 
- 	.long	3200519462
 
- 	.long	2674059679
 
- 	.long	1058221912
 
- 	.long	4043704933
 
- 	.long	3200527144
 
- 	.long	2950925715
 
- 	.long	1058098350
 
- 	.long	36665700
 
- 	.long	3200534031
 
- 	.long	2811721921
 
- 	.long	1057935027
 
- 	.long	3193221610
 
- 	.long	3200540116
 
- 	.long	3297207428
 
- 	.long	1057685321
 
- 	.long	2063766514
 
- 	.long	3200545398
 
- 	.long	544295963
 
- 	.long	1057434550
 
- 	.long	163641427
 
- 	.long	3200549873
 
- 	.long	3381119115
 
- 	.long	1057182863
 
- 	.long	3096463640
 
- 	.long	3200553537
 
- 	.long	3054827835
 
- 	.long	1056896220
 
- 	.long	1381230637
 
- 	.long	3200556390
 
- 	.long	3419039295
 
- 	.long	1056390099
 
- 	.long	522802171
 
- 	.long	3200558429
 
- 	.long	1693671239
 
- 	.long	1055850091
 
- 	.long	3836476539
 
- 	.long	3200559652
 
- 	.long	1466910230
 
- 	.long	1054802127
 
- 	.long	3861233235
 
- 	.long	3200560060
 
- 	.long	0
 
- 	.long	0
 
- 	.type	Ctable,@object
 
- 	.size	Ctable,1040
 
- 	.align 16
 
- Pitable:
 
- 	.long	1832810809
 
- 	.long	1078222640
 
- 	.long	4036845384
 
- 	.long	1030771879
 
- 	.long	1832810809
 
- 	.long	1078222640
 
- 	.long	4036845384
 
- 	.long	1030771879
 
- 	.long	1916669064
 
- 	.long	1072155675
 
- 	.long	660066805
 
- 	.long	1024797180
 
- 	.long	3829231700
 
- 	.long	1062745828
 
- 	.long	2884172442
 
- 	.long	1017445907
 
- 	.long	540874025
 
- 	.long	1055617650
 
- 	.long	4198409884
 
- 	.long	1011844330
 
- 	.long	2839315448
 
- 	.long	1046639136
 
- 	.long	4204424928
 
- 	.long	1000582120
 
- 	.long	1329339431
 
- 	.long	1038229673
 
- 	.long	1295478839
 
- 	.long	993391741
 
- 	.long	658191860
 
- 	.long	1024797180
 
- 	.long	3691886121
 
- 	.long	979325773
 
- 	.long	1966800710
 
- 	.long	1020436418
 
- 	.long	1882642597
 
- 	.long	977095991
 
- 	.long	2100977488
 
- 	.long	1012908661
 
- 	.long	1840335565
 
- 	.long	967470816
 
- 	.long	4198093645
 
- 	.long	1000582120
 
- 	.long	3307942521
 
- 	.long	957055414
 
- 	.long	2839123165
 
- 	.long	996851343
 
- 	.long	1387472776
 
- 	.long	952638316
 
- 	.long	2788761024
 
- 	.long	988712873
 
- 	.long	3005712498
 
- 	.long	944467026
 
- 	.long	3694676832
 
- 	.long	979325773
 
- 	.long	1326507024
 
- 	.long	934847846
 
- 	.long	221775557
 
- 	.long	970149340
 
- 	.long	1133527550
 
- 	.long	924162364
 
- 	.type	Pitable,@object
 
- 	.size	Pitable,240
 
- 	.data
 
- 	.section .note.GNU-stack, ""
 
- // -- Begin DWARF2 SEGMENT .eh_frame
 
- 	.section .eh_frame,"a",@progbits
 
- .eh_frame_seg:
 
- 	.align 1
 
- # End
 
 
  |