1 Star 1 Fork 1

life/RISC-V-math-library

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
sincos.S 25.87 KB
一键复制 编辑 原始数据 按行查看 历史
life 提交于 2022-07-06 09:26 . function
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299
.file "_rv_sincos.c"
.option nopic
.attribute arch, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0_v1p0_zvamo1p0_zvlsseg1p0"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.section .rodata
.align 3
.LC0:
.string "@(
.section .sdata,"aw"
.align 3
.type sccsid, @object
.size sccsid, 8
sccsid:
.dword .LC0
.section .rodata
.align 3
.type table_data_sin1, @object
.size table_data_sin1, 1032
table_data_sin1:
.dword 0
.dword 4578227681973159812
.dword 4582730748936808062
.dword 4585465300892538317
.dword 4587232218149935124
.dword 4588998070480937184
.dword 4589965306122607094
.dword 4590846768565625881
.dword 4591727299969791020
.dword 4592606767730311893
.dword 4593485039402578702
.dword 4594016801320007031
.dword 4594454542771183930
.dword 4594891488091520602
.dword 4595327571478659014
.dword 4595762727260045105
.dword 4596196889902818827
.dword 4596629994023683153
.dword 4597061974398750563
.dword 4597492765973365521
.dword 4597922303871901467
.dword 4598262871476403630
.dword 4598476289818621559
.dword 4598688984595225406
.dword 4598900923775164166
.dword 4599112075441176914
.dword 4599322407794599425
.dword 4599531889160152938
.dword 4599740487990714333
.dword 4599948172872067014
.dword 4600154912527631775
.dword 4600360675823176935
.dword 4600565431771507043
.dword 4600769149537129431
.dword 4600971798440897930
.dword 4601173347964633034
.dword 4601373767755717824
.dword 4601573027631668967
.dword 4601771097584682078
.dword 4601967947786150793
.dword 4602163548591158843
.dword 4602357870542944470
.dword 4602550884377336506
.dword 4602710690099904183
.dword 4602805845399633902
.dword 4602900303344142735
.dword 4602994049708411683
.dword 4603087070374583113
.dword 4603179351334086856
.dword 4603270878689749849
.dword 4603361638657888991
.dword 4603451617570386922
.dword 4603540801876750389
.dword 4603629178146150899
.dword 4603716733069447353
.dword 4603803453461190356
.dword 4603889326261607894
.dword 4603974338538572089
.dword 4604058477489546729
.dword 4604141730443515286
.dword 4604224084862889120
.dword 4604305528345395596
.dword 4604386048625945823
.dword 4604465633578481725
.dword 4604544271217802189
.dword 4604621949701367983
.dword 4604698657331085206
.dword 4604774382555066977
.dword 4604849113969373103
.dword 4604922840319727473
.dword 4604995550503212910
.dword 4605067233569943231
.dword 4605137878724712257
.dword 4605207475328619533
.dword 4605276012900672507
.dword 4605343481119364930
.dword 4605409869824231233
.dword 4605475169017376660
.dword 4605539368864982914
.dword 4605602459698789090
.dword 4605664432017547683
.dword 4605725276488455441
.dword 4605784983948558848
.dword 4605843545406134034
.dword 4605900952042040894
.dword 4605957195211051218
.dword 4606012266443150634
.dword 4606066157444814153
.dword 4606118860100255153
.dword 4606170366472647579
.dword 4606220668805321205
.dword 4606269759522929756
.dword 4606317631232591731
.dword 4606364276725003740
.dword 4606409688975526202
.dword 4606453861145241227
.dword 4606496786581982534
.dword 4606538458821337243
.dword 4606578871587619388
.dword 4606618018794815019
.dword 4606655894547498725
.dword 4606692493141721470
.dword 4606727809065869586
.dword 4606761837001494797
.dword 4606794571824115162
.dword 4606826008603986804
.dword 4606856142606846307
.dword 4606884969294623682
.dword 4606912484326125783
.dword 4606938683557690074
.dword 4606963563043808649
.dword 4606987119037722413
.dword 4607009347991985328
.dword 4607030246558998647
.dword 4607049811591515049
.dword 4607068040143112603
.dword 4607084929468638487
.dword 4607100477024622401
.dword 4607114680469659603
.dword 4607127537664763515
.dword 4607139046673687846
.dword 4607149205763218185
.dword 4607158013403433018
.dword 4607165468267934125
.dword 4607171569234046334
.dword 4607176315382986589
.dword 4607179706000002317
.dword 4607181740574479067
.dword 4607182418800017408
.align 3
.type table_data_sin2, @object
.size table_data_sin2, 1032
table_data_sin2:
.dword 0
.dword 4580160821035794432
.dword 4582412620849479680
.dword 4584664420663164928
.dword 4586916220476850176
.dword 4589168020290535424
.dword 4589730970243956736
.dword 4590856870150799360
.dword 4591982770057641984
.dword 4592545720011063296
.dword 4593671619917905920
.dword 4593953094894616576
.dword 4594516044848037888
.dword 4594797519824748544
.dword 4595360469778169856
.dword 4595641944754880512
.dword 4596204894708301824
.dword 4596767844661723136
.dword 4597049319638433792
.dword 4597612269591855104
.dword 4597893744568565760
.dword 4598315957033631744
.dword 4598456694521987072
.dword 4598738169498697728
.dword 4598878906987053056
.dword 4599160381963763712
.dword 4599301119452119040
.dword 4599582594428829696
.dword 4599723331917185024
.dword 4600004806893895680
.dword 4600145544382251008
.dword 4600427019358961664
.dword 4600567756847316992
.dword 4600708494335672320
.dword 4600989969312382976
.dword 4601130706800738304
.dword 4601412181777448960
.dword 4601552919265804288
.dword 4601834394242514944
.dword 4601975131730870272
.dword 4602115869219225600
.dword 4602397344195936256
.dword 4602538081684291584
.dword 4602678819172646912
.dword 4602819556661002240
.dword 4602889925405179904
.dword 4602960294149357568
.dword 4603101031637712896
.dword 4603171400381890560
.dword 4603241769126068224
.dword 4603382506614423552
.dword 4603452875358601216
.dword 4603523244102778880
.dword 4603663981591134208
.dword 4603734350335311872
.dword 4603804719079489536
.dword 4603875087823667200
.dword 4603945456567844864
.dword 4604086194056200192
.dword 4604156562800377856
.dword 4604226931544555520
.dword 4604297300288733184
.dword 4604367669032910848
.dword 4604438037777088512
.dword 4604578775265443840
.dword 4604649144009621504
.dword 4604719512753799168
.dword 4604789881497976832
.dword 4604860250242154496
.dword 4604930618986332160
.dword 4605000987730509824
.dword 4605071356474687488
.dword 4605141725218865152
.dword 4605212093963042816
.dword 4605282462707220480
.dword 4605352831451398144
.dword 4605423200195575808
.dword 4605493568939753472
.dword 4605563937683931136
.dword 4605634306428108800
.dword 4605634306428108800
.dword 4605704675172286464
.dword 4605775043916464128
.dword 4605845412660641792
.dword 4605915781404819456
.dword 4605986150148997120
.dword 4605986150148997120
.dword 4606056518893174784
.dword 4606056518893174784
.dword 4606197256381530112
.dword 4606197256381530112
.dword 4606337993869885440
.dword 4606337993869885440
.dword 4606337993869885440
.dword 4606478731358240768
.dword 4606478731358240768
.dword 4606478731358240768
.dword 4606478731358240768
.dword 4606619468846596096
.dword 4606619468846596096
.dword 4606619468846596096
.dword 4606760206334951424
.dword 4606760206334951424
.dword 4606760206334951424
.dword 4606760206334951424
.dword 4606760206334951424
.dword 4606900943823306752
.dword 4606900943823306752
.dword 4606900943823306752
.dword 4606900943823306752
.dword 4606900943823306752
.dword 4606900943823306752
.dword 4606900943823306752
.dword 4606900943823306752
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.dword 4607182418800017408
.align 3
.type table_data_sin3, @object
.size table_data_sin3, 1032
table_data_sin3:
.dword 0
.dword 4335145163472203165
.dword -4901291458270985936
.dword 4334300084048575168
.dword -4888355317352064368
.dword -4890097842119327746
.dword -4879192212472108244
.dword -4877609353152074598
.dword -4882421958459861368
.dword -4889515435735385311
.dword 4344327690608371053
.dword -4871448649967911686
.dword 4346307894776041952
.dword -4876688514565408847
.dword 4351939588216707782
.dword 4350993937160215343
.dword -4872211889599312510
.dword -4870509930327538515
.dword -4892332772463339211
.dword 4352548248161945517
.dword -4871718392637316412
.dword -4898769819921972276
.dword 4357273055303019162
.dword -4870888376601718370
.dword -4866752316540952275
.dword -4867323570598518686
.dword 4355202375338304792
.dword 4351112148285991000
.dword -4891193140619446752
.dword 4346269594972209441
.dword -4867182722767500195
.dword 4330672776990157017
.dword -4870875072005036528
.dword 4352311438545180081
.dword 4352406338174442411
.dword -4864627498305598217
.dword 4352081851827306883
.dword -4866117773365784058
.dword 4347808786954813327
.dword 4356477191370573173
.dword 4349929172638656577
.dword -4864502259939090714
.dword -4885583024605399368
.dword -4867465176875387252
.dword -4860973886322818964
.dword -4861402873643210318
.dword -4859680610896321295
.dword -4861654546138200715
.dword 4362622295802340864
.dword -4862858791969452110
.dword -4862240029869377780
.dword -4877036099717370298
.dword -4868676219153462673
.dword -4863328274113603609
.dword 4358989821794142564
.dword 4360444409054777441
.dword 4352737192456341171
.dword -4863185140937811052
.dword 4351535605575758631
.dword -4865555644581019049
.dword -4861821475202794574
.dword 4359600895655920426
.dword -4867738416600634825
.dword 4362929642948386339
.dword -4860548157077822378
.dword -4860021698431409554
.dword 4359718562510508380
.dword 4356616700595275407
.dword -4868121577715201321
.dword -4861133489265456873
.dword -4866433924875013003
.dword -4863084146412526387
.dword -4863107076662938771
.dword -4870960027386055951
.dword 4360562070901546763
.dword -4863513241193519522
.dword -4863026806549044108
.dword 4358110035633784258
.dword -4868064938563866251
.dword -4864291043934958320
.dword 4339770405871344328
.dword -4862621243502844600
.dword -4861311604218659634
.dword -4859746043290344301
.dword -4860572985770218143
.dword 4361712385783190454
.dword -4861594397706522614
.dword 4349093503986182470
.dword -4866455294542312185
.dword 4354284620230295387
.dword -4876558961751071229
.dword 4359017564461397675
.dword -4873322044228675410
.dword -4877114884757646582
.dword -4862498559673345294
.dword -4864296195948200619
.dword 4356203385198942914
.dword -4865331359760608160
.dword 4361802449352162739
.dword -4862457225135631001
.dword -4863864750815943385
.dword 4362447865955764354
.dword -4872495300658038956
.dword -4864719934700429814
.dword 4361561081263683614
.dword 4358477889572598391
.dword 4359065283000114370
.dword 4361227209919067983
.dword 4356437120746473865
.dword -4863310662714157909
.dword -4864596027902037274
.dword -4865877705442874363
.dword 4356496066182782931
.dword 4361823314591816028
.dword 4357991673877232822
.dword -4859899802321316293
.dword -4861740625917946081
.dword 4355473062038588424
.dword 4360025976301464814
.dword -4866740351294157815
.dword -4861497301299359289
.dword 4353331448211212366
.dword 4351921915922120245
.dword 4359513631676320670
.dword -4869420631354725867
.dword -4861437001734137514
.dword -4863547516591348533
.dword 4361135509685124365
.dword 0
.align 3
.type table_trig, @object
.size table_trig, 256
table_trig:
.dword 0
.dword 0
.dword 11468322278445317
.dword 5368020095383457079
.dword 8085888385887965412
.dword 1188831936269233905
.dword 6371970167992259444
.dword -5187704441804786588
.dword -8701086993659180439
.dword -3478431970125697327
.dword 2394339522019923935
.dword -8048385028001835826
.dword 9018213165308018250
.dword 1065099276058067302
.dword 287047045600412315
.dword 5177817544904012482
.dword 7913899385982261242
.dword -8404480040066418308
.dword 6831751514875401380
.dword -5000404232905956521
.dword 4761853794973589210
.dword -1514278272976372467
.dword -8688999608927929978
.dword -4460421387663366118
.dword 1162913823868542153
.dword -3728556606817657622
.dword 3627711755131755217
.dword -1079050979313763838
.dword 5377533736397235591
.dword 3005989822563468865
.dword 5740259670209060748
.dword -428773562000208737
.align 3
.type sign, @object
.size sign, 40
sign:
.dword 4607182418800017408
.dword 4607182418800017408
.dword -4616189618054758400
.dword -4616189618054758400
.dword 4607182418800017408
.section .srodata,"a"
.align 3
.type m2bypi, @object
.size m2bypi, 8
m2bypi:
.dword 4603909380684499075
.align 3
.type piby2h, @object
.size piby2h, 8
piby2h:
.dword 4609753056924401664
.align 3
.type piby2m, @object
.size piby2m, 8
piby2m:
.dword 4454258360618844160
.align 3
.type piby2mm, @object
.size piby2mm, 8
piby2mm:
.dword 4454258360616903473
.align 3
.type piby2l, @object
.size piby2l, 8
piby2l:
.dword -4909595607062048270
.align 3
.type piby4h, @object
.size piby4h, 8
piby4h:
.dword 4605249457359945728
.align 3
.type piby4l, @object
.size piby4l, 8
piby4l:
.dword -4738386491765736646
.align 3
.type k1, @object
.size k1, 8
k1:
.dword 4895412794951729152
.align 3
.type k2, @object
.size k2, 8
k2:
.dword 4318952042648305664
.align 3
.type Nanq, @object
.size Nanq, 8
Nanq:
.dword -2251799813685248
.align 3
.type big, @object
.size big, 8
big:
.dword 4812096201845374976
.section .rodata
.align 3
.type table_sin, @object
.size table_sin, 32
table_sin:
.dword -4600427008238148034
.dword -4597049325438204734
.dword -4637206426200980640
.dword -4647414570522036229
.text
.align 1
.globl _rv_sincos
.type _rv_sincos, @function
_rv_sincos:
addi sp,sp,-832
sd s0,824(sp)
addi s0,sp,832
fsd fa0,-808(s0)
sd a0,-816(s0)
sd a1,-824(s0)
li a5,-1
srli a3,a5,1
li a5,2047
slli a6,a5,52
li a5,8192
addi a5,a5,-221
slli a7,a5,49
li a5,341
slli t1,a5,49
addi a5,s0,-808
ld a5,0(a5)
and t2,a5,a3
and t3,t2,a6
sub a4,t2,a7
bgeu a4,t1,.L2
lui a5,%hi(.LC1)
fld fa4,%lo(.LC1)(a5)
fmul.d fa5,fa4,fa0
lui a5,%hi(.LC2)
fld fa4,%lo(.LC2)(a5)
fadd.d fa4,fa4,fa5
fsd fa4,-776(s0)
lui a5,%hi(.LC2)
fld fa5,%lo(.LC2)(a5)
fsub.d fa1,fa4,fa5
addi a5,s0,-776
ld a1,0(a5)
lui a5,%hi(.LC3)
fld fa5,%lo(.LC3)(a5)
fmul.d fa2,fa1,fa5
lui a5,%hi(.LC4)
fld fa5,%lo(.LC4)(a5)
fmul.d fa3,fa1,fa5
lui a5,%hi(.LC5)
fld fa5,%lo(.LC5)(a5)
fmul.d fa6,fa1,fa5
lui a5,%hi(.LC6)
fld fa5,%lo(.LC6)(a5)
fmul.d fa7,fa1,fa5
andi a2,a1,127
li a4,128
sub a3,a4,a2
srli a1,a1,7
andi a6,a1,3
andi a7,a1,1
sd a5,-448(s0)
sd a2,-760(s0)
sd a3,-752(s0)
sd a3,-744(s0)
sd a2,-736(s0)
slli a5,a7,4
addi a4,s0,-16
add a5,a4,a5
ld a3,-744(a5)
slli a5,a7,4
addi a4,s0,-16
add a5,a4,a5
ld a2,-736(a5)
lui a5,%hi(sign)
addi a4,a5,%lo(sign)
slli a5,a6,3
add a5,a4,a5
fld ft1,0(a5)
addi a5,a6,1
lui a4,%hi(sign)
addi a4,a4,%lo(sign)
slli a5,a5,3
add a5,a4,a5
fld ft2,0(a5)
lui a5,%hi(table_data_sin1)
addi a4,a5,%lo(table_data_sin1)
slli a5,a3,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft3,ft1,fa5
lui a5,%hi(table_data_sin2)
addi a4,a5,%lo(table_data_sin2)
slli a5,a3,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft4,ft1,fa5
lui a5,%hi(table_data_sin3)
addi a4,a5,%lo(table_data_sin3)
slli a5,a3,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft5,ft1,fa5
lui a5,%hi(table_data_sin1)
addi a4,a5,%lo(table_data_sin1)
slli a5,a2,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft6,ft2,fa5
lui a5,%hi(table_data_sin2)
addi a4,a5,%lo(table_data_sin2)
slli a5,a2,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft7,ft2,fa5
lui a5,%hi(table_data_sin3)
addi a4,a5,%lo(table_data_sin3)
slli a5,a2,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft8,ft2,fa5
fsub.d ft9,fa0,fa3
fsub.d fa2,fa0,fa2
fsub.d ft9,fa0,ft9
fsub.d fa1,fa2,fa7
fsub.d ft10,fa2,ft9
fmul.d ft11,fa1,fa1
fsub.d ft9,fa3,ft9
fmul.d fs0,ft10,ft6
fmul.d fs5,ft10,ft3
fsub.d fs1,ft6,ft7
lui a5,%hi(.LC7)
fld fa5,%lo(.LC7)(a5)
fmul.d fs2,ft6,fa5
fsub.d fs3,ft3,ft4
lui a5,%hi(.LC7)
fld fa5,%lo(.LC7)(a5)
fmul.d fs4,ft3,fa5
fadd.d fs0,fs0,ft3
fsub.d fs5,ft6,fs5
lui a5,%hi(.LC8)
fld fa5,%lo(.LC8)(a5)
fmul.d fs6,ft3,fa5
fmul.d fs2,fs2,fa1
fsub.d fs7,ft3,fs0
fmul.d fs1,fs1,ft10
fadd.d ft9,ft9,fa6
fmul.d fs3,fs3,ft10
fsub.d fa3,ft6,fs5
lui a5,%hi(.LC8)
fld fa5,%lo(.LC8)(a5)
fmul.d fs8,ft6,fa5
lui a5,%hi(.LC9)
fld fa5,%lo(.LC9)(a5)
fadd.d fs9,ft11,fa5
fmul.d fs10,fa1,ft8
lui a5,%hi(.LC10)
fld fa5,%lo(.LC10)(a5)
fadd.d fs11,ft11,fa5
fmul.d fs4,fs4,fa1
fmul.d fa2,ft10,ft7
fmul.d ft10,ft10,ft4
fmul.d fa1,fa1,ft5
fadd.d fs10,fs10,ft5
fmul.d fs6,fs6,ft11
fmul.d fs2,fs2,ft11
fadd.d fs7,fs7,fa2
fmul.d fs8,fs8,ft11
fsub.d ft10,fa3,ft10
fmul.d ft2,ft6,ft9
fsub.d ft8,ft8,fa1
fmul.d ft11,fs4,ft11
fmul.d ft9,ft9,ft3
fadd.d fs1,fs1,fs7
fmul.d fs6,fs6,fs11
fsub.d ft10,ft10,fs3
fmul.d fs2,fs2,fs9
fsub.d ft2,fs10,ft2
fmul.d fs8,fs8,fs11
fmul.d ft11,ft11,fs9
fadd.d ft8,ft9,ft8
fadd.d fs2,fs2,fs6
fadd.d fs1,ft2,fs1
fsub.d ft11,fs8,ft11
fadd.d ft8,ft8,ft10
fsub.d fs1,fs1,fs2
fsub.d ft8,ft8,ft11
fadd.d fs0,fs0,fs1
fadd.d fa5,fs5,ft8
ld a5,-824(s0)
fsd fa5,0(a5)
ld a5,-816(s0)
fsd fs0,0(a5)
j .L1
.L2:
bgt t2,a7,.L4
lui a5,%hi(.LC11)
fld fa5,%lo(.LC11)(a5)
ld a5,-824(s0)
fsd fa5,0(a5)
ld a5,-816(s0)
fsd fa0,0(a5)
j .L1
.L4:
beq t3,a6,.L5
xor a1,t3,t2
li a5,1
slli a5,a5,52
or a2,a1,a5
srli a5,t3,52
addi t1,a5,-939
srai s1,t1,6
andi t2,t1,63
li a4,64
sub t3,a4,t2
lui a5,%hi(table_trig)
addi a4,a5,%lo(table_trig)
slli a5,s1,3
add a5,a4,a5
ld s2,0(a5)
addi a5,s1,1
lui a4,%hi(table_trig)
addi a4,a4,%lo(table_trig)
slli a5,a5,3
add a5,a4,a5
ld s3,0(a5)
sd s3,-64(s0)
addi a5,s1,2
lui a4,%hi(table_trig)
addi a4,a4,%lo(table_trig)
slli a5,a5,3
add a5,a4,a5
ld s4,0(a5)
addi s1,s1,3
beq t2,zero,.L6
sext.w a5,t2
mv a4,a5
sll s2,s2,a4
sext.w a5,t3
mv a4,a5
srl s5,s3,a4
or s2,s2,s5
sext.w a5,t2
mv a4,a5
sll s3,s3,a4
sd s3,-64(s0)
sext.w a5,t3
mv a4,a5
srl a5,s4,a4
sd a5,-208(s0)
ld a5,-208(s0)
or a5,s3,a5
sd a5,-64(s0)
.L6:
li a5,1
slli a5,a5,47
sd a5,-216(s0)
sd a2,-224(s0)
ld a5,-64(s0)
sd a5,-232(s0)
mulhu a7, a5,a2
mul t5,s2,a2
ld a4,-64(s0)
mul a5,a4,a2
sd a5,-32(s0)
add t4,t5,a7
slli t6,t4,9
srai a5,t6,9
sd a5,-48(s0)
sd zero,-104(s0)
.L7:
ld a5,-216(s0)
add s6,t6,a5
li a5,65536
addi a5,a5,-1
slli a5,a5,48
sd a5,-272(s0)
and a5,s6,a5
sd a5,-264(s0)
bne a5,zero,.L8
sd s4,-72(s0)
lui a5,%hi(table_trig)
addi a4,a5,%lo(table_trig)
slli a5,s1,3
add a5,a4,a5
ld s4,0(a5)
sext.w a5,t2
mv a4,a5
sll s5,s4,a4
addi a5,s1,1
sd a5,-88(s0)
sext.w a5,t3
mv a4,a5
srl a5,s4,a4
sd a5,-208(s0)
ld a5,-208(s0)
or s5,s5,a5
beq t2,zero,.L9
sd s5,-72(s0)
.L9:
sd a2,-280(s0)
ld a5,-72(s0)
sd a5,-288(s0)
mulhu a7, a5,a2
ld a4,-72(s0)
mul a1,a4,a2
ld a4,-32(s0)
add a2,a4,a7
sltu a5,a2,a7
andi a5,a5,0xff
add t6,t6,a5
.L8:
srai a5,a2,63
sub a5,t6,a5
seqz a5,a5
andi a5,a5,0xff
beq a5,zero,.L10
sd a2,-48(s0)
ld a5,-104(s0)
addi a5,a5,-64
sd a5,-104(s0)
sd a1,-32(s0)
j .L7
.L10:
ld a5,-48(s0)
srai a5,a5,63
sd a5,-328(s0)
ld a5,-104(s0)
neg a5,a5
sd a5,-96(s0)
beq a5,zero,.L11
li a5,63
sd a5,-96(s0)
.L11:
srli a2,a3,9
ld a4,-48(s0)
ld a5,-328(s0)
xor s5,a4,a5
ld a4,-48(s0)
ld a5,-96(s0)
sext.w a5,a5
sra s6,a4,a5
li a5,1
sd a5,-96(s0)
sub a5,s6,t4
and a5,a5,a2
sd a5,-208(s0)
add a5,t4,a5
srai a5,a5,47
sd a5,-24(s0)
beq s5,zero,.L12
fcvt.d.l fa5,s5
fsd fa5,-784(s0)
addi a5,s0,-784
ld a5,0(a5)
sd a5,-208(s0)
and a5,a5,a3
srli a5,a5,52
sd a5,-336(s0)
addi a5,a5,-1021
sd a5,-96(s0)
.L12:
ld a5,-96(s0)
sext.w a5,a5
mv a4,a5
ld a5,-32(s0)
srl s5,a5,a4
li a4,64
ld a5,-96(s0)
sub s8,a4,a5
beq s8,zero,.L13
sext.w a5,s8
mv a4,a5
ld a5,-32(s0)
sll a5,a5,a4
sd a5,-32(s0)
ld a5,-96(s0)
sext.w a5,a5
mv a4,a5
srl a5,a1,a4
sd a5,-208(s0)
sext.w a5,s8
mv a4,a5
ld a5,-48(s0)
sll a5,a5,a4
sd a5,-48(s0)
ld a4,-32(s0)
ld a5,-208(s0)
or a5,a4,a5
sd a5,-32(s0)
ld a4,-48(s0)
or a5,a4,s5
sd a5,-48(s0)
ld a4,-104(s0)
sub a5,a4,s8
sd a5,-104(s0)
.L13:
ld a5,-104(s0)
addi a5,a5,962
sd a5,-104(s0)
ld a5,-32(s0)
bge a5,zero,.L14
slli a2,a6,1
srai a2,a2,1
ld a4,-32(s0)
and a5,a4,a2
sd a5,-344(s0)
ld a4,-32(s0)
ld a5,-344(s0)
xor a5,a4,a5
sd a5,-352(s0)
ld a5,-344(s0)
fcvt.d.l fa5,a5
fsd fa5,-784(s0)
ld a5,-352(s0)
fcvt.d.l fa5,a5
fsd fa5,-360(s0)
lui a5,%hi(.LC12)
fld fa4,%lo(.LC12)(a5)
fld fa5,-784(s0)
fadd.d fa5,fa4,fa5
fsd fa5,-784(s0)
fld fa4,-784(s0)
fld fa5,-360(s0)
fadd.d fa5,fa4,fa5
fsd fa5,-784(s0)
j .L15
.L14:
ld a5,-32(s0)
fcvt.d.l fa5,a5
fsd fa5,-784(s0)
.L15:
ld a5,-104(s0)
slli a5,a5,52
sd a5,-768(s0)
li a5,-1
srli a5,a5,27
sd a5,-208(s0)
ld a4,-48(s0)
ld a5,-208(s0)
and a5,a4,a5
sd a5,-368(s0)
ld a4,-48(s0)
ld a5,-368(s0)
xor a5,a4,a5
sd a5,-376(s0)
ld a5,-368(s0)
fcvt.d.l fa2,a5
ld a5,-376(s0)
fcvt.d.l fa3,a5
lui a5,%hi(.LC13)
fld fa4,%lo(.LC13)(a5)
fld fa5,-784(s0)
fmul.d fa6,fa4,fa5
addi a5,s0,-768
fld fa7,0(a5)
lui a5,%hi(.LC14)
fld fa5,%lo(.LC14)(a5)
fmul.d ft1,fa7,fa5
lui a5,%hi(.LC15)
fld fa5,%lo(.LC15)(a5)
fmul.d ft2,fa7,fa5
li a5,1
sd a5,-768(s0)
ld a5,-768(s0)
slli a5,a5,17
sd a5,-768(s0)
ld a5,-768(s0)
addi a5,a5,-1
sd a5,-768(s0)
fadd.d fa1,fa6,fa2
fadd.d fa5,ft1,ft2
fmul.d fa1,fa1,fa5
fmul.d ft1,ft1,fa3
fmul.d ft2,ft2,fa3
fadd.d fa1,fa1,ft2
fadd.d ft3,ft1,fa1
fsd ft3,-112(s0)
fsub.d fa5,ft3,ft1
fsub.d ft4,fa5,fa1
fsd ft4,-120(s0)
fld fa5,-808(s0)
fmv.d.x fa4,zero
flt.d a5,fa5,fa4
beq a5,zero,.L16
ld a4,-768(s0)
ld a5,-24(s0)
sub a5,a4,a5
sd a5,-24(s0)
fneg.d ft3,ft3
fsd ft3,-112(s0)
fneg.d fa5,ft4
fsd fa5,-120(s0)
.L16:
ld a5,-24(s0)
addi a5,a5,128
sd a5,-24(s0)
ld a5,-24(s0)
srai a5,a5,8
sd a5,-24(s0)
ld a5,-24(s0)
andi a5,a5,127
sd a5,-424(s0)
li a4,128
ld a5,-424(s0)
sub a5,a4,a5
sd a5,-432(s0)
ld a5,-24(s0)
srli a5,a5,7
sd a5,-24(s0)
ld a5,-24(s0)
andi a5,a5,3
sd a5,-440(s0)
ld a5,-24(s0)
andi a5,a5,1
sd a5,-448(s0)
ld a5,-424(s0)
sd a5,-760(s0)
ld a5,-432(s0)
sd a5,-752(s0)
ld a5,-432(s0)
sd a5,-744(s0)
ld a5,-424(s0)
sd a5,-736(s0)
ld a5,-448(s0)
slli a5,a5,4
addi a4,s0,-16
add a5,a4,a5
ld a5,-744(a5)
sd a5,-424(s0)
ld a5,-448(s0)
slli a5,a5,4
addi a4,s0,-16
add a5,a4,a5
ld a5,-736(a5)
sd a5,-432(s0)
lui a5,%hi(sign)
addi a4,a5,%lo(sign)
ld a5,-440(s0)
slli a5,a5,3
add a5,a4,a5
fld fa2,0(a5)
ld a5,-440(s0)
addi a5,a5,1
lui a4,%hi(sign)
addi a4,a4,%lo(sign)
slli a5,a5,3
add a5,a4,a5
fld fa3,0(a5)
lui a5,%hi(table_data_sin1)
addi a4,a5,%lo(table_data_sin1)
ld a5,-424(s0)
slli a5,a5,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d fa6,fa2,fa5
lui a5,%hi(table_data_sin2)
addi a4,a5,%lo(table_data_sin2)
ld a5,-424(s0)
slli a5,a5,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft1,fa2,fa5
lui a5,%hi(table_data_sin3)
addi a4,a5,%lo(table_data_sin3)
ld a5,-424(s0)
slli a5,a5,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft2,fa2,fa5
lui a5,%hi(table_data_sin1)
addi a4,a5,%lo(table_data_sin1)
ld a5,-432(s0)
slli a5,a5,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft3,fa3,fa5
lui a5,%hi(table_data_sin2)
addi a4,a5,%lo(table_data_sin2)
ld a5,-432(s0)
slli a5,a5,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft4,fa3,fa5
lui a5,%hi(table_data_sin3)
addi a4,a5,%lo(table_data_sin3)
ld a5,-432(s0)
slli a5,a5,3
add a5,a4,a5
fld fa5,0(a5)
fmul.d ft5,fa3,fa5
fld fa4,-112(s0)
lui a5,%hi(.LC16)
fld fa5,%lo(.LC16)(a5)
fmul.d ft6,fa4,fa5
fld fa4,-112(s0)
lui a5,%hi(.LC17)
fld fa5,%lo(.LC17)(a5)
fmul.d fa5,fa4,fa5
fsub.d ft6,ft6,fa5
fld fa5,-112(s0)
fsub.d ft8,ft6,fa5
fld fa5,-112(s0)
fmul.d ft7,fa5,fa5
fmul.d fa1,ft6,ft3
fmul.d fa7,ft6,fa6
fsub.d ft9,ft3,ft4
lui a5,%hi(.LC7)
fld fa5,%lo(.LC7)(a5)
fmul.d ft10,ft3,fa5
fsub.d ft11,fa6,ft1
lui a5,%hi(.LC7)
fld fa5,%lo(.LC7)(a5)
fmul.d fs1,fa6,fa5
fadd.d fa1,fa1,fa6
fsub.d fa7,ft3,fa7
lui a5,%hi(.LC8)
fld fa5,%lo(.LC8)(a5)
fmul.d fs2,fa6,fa5
fld fa5,-112(s0)
fmul.d ft10,ft10,fa5
fsub.d fs3,fa6,fa1
fmul.d ft9,ft9,ft6
fld fa5,-120(s0)
fadd.d ft8,ft8,fa5
fmul.d ft11,ft11,ft6
fsub.d fs4,ft3,fa7
lui a5,%hi(.LC8)
fld fa5,%lo(.LC8)(a5)
fmul.d fs5,ft3,fa5
lui a5,%hi(.LC9)
fld fa5,%lo(.LC9)(a5)
fadd.d fs6,ft7,fa5
fld fa4,-112(s0)
fmul.d fs7,fa4,ft5
lui a5,%hi(.LC10)
fld fa5,%lo(.LC10)(a5)
fadd.d fs8,ft7,fa5
fld fa5,-112(s0)
fmul.d fs1,fs1,fa5
fmul.d ft4,ft6,ft4
fmul.d ft6,ft6,ft1
fld fa4,-112(s0)
fmul.d fs9,fa4,ft2
fadd.d fs7,fs7,ft2
fmul.d fs2,fs2,ft7
fmul.d ft10,ft10,ft7
fadd.d ft4,fs3,ft4
fmul.d fs3,fs5,ft7
fsub.d ft6,fs4,ft6
fmul.d fs4,ft3,ft8
fsub.d ft5,ft5,fs9
fmul.d fs1,fs1,ft7
fmul.d ft8,ft8,fa6
fadd.d ft4,ft9,ft4
fmul.d fs2,fs2,fs8
fsub.d ft6,ft6,ft11
fmul.d ft10,ft10,fs6
fsub.d ft11,fs7,fs4
fmul.d fs3,fs3,fs8
fmul.d fs1,fs1,fs6
fadd.d ft5,ft8,ft5
fadd.d ft10,ft10,fs2
fadd.d ft4,ft11,ft4
fsub.d fs1,fs3,fs1
fadd.d ft5,ft5,ft6
fsub.d ft4,ft4,ft10
fsub.d ft5,ft5,fs1
fadd.d fa5,fa1,ft4
fsd fa5,-792(s0)
fadd.d fa5,fa7,ft5
ld a5,-824(s0)
fsd fa5,0(a5)
fld fa5,-792(s0)
ld a5,-816(s0)
fsd fa5,0(a5)
j .L1
.L5:
ld a5,-24(s0)
beq t1,a5,.L18
fld fa5,-808(s0)
fsd fa5,-800(s0)
fld fa5,-808(s0)
fsd fa5,-792(s0)
fld fa5,-800(s0)
ld a5,-824(s0)
fsd fa5,0(a5)
fld fa5,-792(s0)
ld a5,-816(s0)
fsd fa5,0(a5)
j .L1
.L18:
fld fa5,-800(s0)
ld a5,-824(s0)
fsd fa5,0(a5)
fld fa5,-792(s0)
ld a5,-816(s0)
fsd fa5,0(a5)
nop
.L1:
ld s0,824(sp)
addi sp,sp,832
jr ra
.size _rv_sincos, .-_rv_sincos
.section .rodata
.align 3
.LC1:
.word 1841940611
.word 1071931184
.align 3
.LC2:
.word 0
.word 1120403456
.align 3
.LC3:
.word 1413480448
.word 1073291771
.align 3
.LC4:
.word 444596224
.word 1037087841
.align 3
.LC5:
.word -1170238990
.word -1143104306
.align 3
.LC6:
.word 442655537
.word 1037087841
.align 3
.LC7:
.word 940521467
.word -1082060526
.align 3
.LC8:
.word 136430432
.word -1079683757
.align 3
.LC9:
.word -1504803646
.word -1070333954
.align 3
.LC10:
.word -1764088258
.word -1071120382
.align 3
.LC11:
.word 0
.word 1072693248
.align 3
.LC12:
.word 0
.word 1139802112
.align 3
.LC13:
.word 0
.word 1005584384
.align 3
.LC14:
.word 1476395008
.word 1072243195
.align 3
.LC15:
.word 1036729146
.word -1103241577
.align 3
.LC16:
.word 0
.word 1084228096
.align 3
.LC17:
.word 0
.word 1084227584
.ident "GCC: (GNU) 10.1.0"
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Assembly
1
https://gitee.com/li-fei-abc/risc-v-math-library.git
git@gitee.com:li-fei-abc/risc-v-math-library.git
li-fei-abc
risc-v-math-library
RISC-V-math-library
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385