csky-opc.h 325 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753
  1. /* Declarations for C-SKY opcode table
  2. Copyright (C) 2007-2022 Free Software Foundation, Inc.
  3. Contributed by C-SKY Microsystems and Mentor Graphics.
  4. This file is part of the GNU opcodes library.
  5. This library is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 3, or (at your option)
  8. any later version.
  9. It is distributed in the hope that it will be useful, but WITHOUT
  10. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  11. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
  12. License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with GAS; see the file COPYING. If not, write to the Free
  15. Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
  16. 02110-1301, USA. */
  17. #include "opcode/csky.h"
  18. #include "safe-ctype.h"
  19. #define OP_TABLE_NUM 2
  20. #define MAX_OPRND_NUM 5
  21. enum operand_type
  22. {
  23. OPRND_TYPE_NONE = 0,
  24. /* Control register. */
  25. OPRND_TYPE_CTRLREG,
  26. /* r0 - r7. */
  27. OPRND_TYPE_GREG0_7,
  28. /* r0 - r15. */
  29. OPRND_TYPE_GREG0_15,
  30. /* r16 - r31. */
  31. OPRND_TYPE_GREG16_31,
  32. /* r0 - r31. */
  33. OPRND_TYPE_AREG,
  34. /* (rx). */
  35. OPRND_TYPE_AREG_WITH_BRACKET,
  36. OPRND_TYPE_AREG_WITH_LSHIFT,
  37. OPRND_TYPE_AREG_WITH_LSHIFT_FPU,
  38. OPRND_TYPE_FREG_WITH_INDEX,
  39. OPRND_TYPE_VREG_WITH_INDEX,
  40. /* r1 only, for xtrb0(1)(2)(3) in csky v1 ISA. */
  41. OPRND_TYPE_REG_r1a,
  42. /* r1 only, for divs/divu in csky v1 ISA. */
  43. OPRND_TYPE_REG_r1b,
  44. /* r28. */
  45. OPRND_TYPE_REG_r28,
  46. OPRND_TYPE_REGr4_r7,
  47. /* sp register with bracket. */
  48. OPRND_TYPE_REGbsp,
  49. /* sp register. */
  50. OPRND_TYPE_REGsp,
  51. /* Register with bracket. */
  52. OPRND_TYPE_REGnr4_r7,
  53. /* Not sp register. */
  54. OPRND_TYPE_REGnsp,
  55. /* Not lr register. */
  56. OPRND_TYPE_REGnlr,
  57. /* Not sp/lr register. */
  58. OPRND_TYPE_REGnsplr,
  59. /* hi/lo register. */
  60. OPRND_TYPE_REGhilo,
  61. /* VDSP register. */
  62. OPRND_TYPE_VREG,
  63. /* cp index. */
  64. OPRND_TYPE_CPIDX,
  65. /* cp regs. */
  66. OPRND_TYPE_CPREG,
  67. /* cp cregs. */
  68. OPRND_TYPE_CPCREG,
  69. /* fpu regs. */
  70. OPRND_TYPE_FREG,
  71. /* fpu even regs. */
  72. OPRND_TYPE_FEREG,
  73. /* Float round mode. */
  74. OPRND_TYPE_RM,
  75. /* PSR bits. */
  76. OPRND_TYPE_PSR_BITS_LIST,
  77. /* Constant. */
  78. OPRND_TYPE_CONSTANT,
  79. /* Floating Constant. */
  80. OPRND_TYPE_FCONSTANT,
  81. /* Extern lrw constant. */
  82. OPRND_TYPE_ELRW_CONSTANT,
  83. /* [label]. */
  84. OPRND_TYPE_LABEL_WITH_BRACKET,
  85. /* The operand is the same as first reg. It is a dummy reg that doesn't
  86. appear in the binary code of the instruction. It is also used by
  87. the disassembler.
  88. For example: bclri rz, rz, imm5 -> bclri rz, imm5. */
  89. OPRND_TYPE_DUMMY_REG,
  90. /* The type of the operand is same as the first operand. If the value
  91. of the operand is same as the first operand, we can use a 16-bit
  92. instruction to represent the opcode.
  93. For example: addc r1, r1, r2 -> addc16 r1, r2. */
  94. OPRND_TYPE_2IN1_DUMMY,
  95. /* Output a reg same as the first reg.
  96. For example: addc r17, r1 -> addc32 r17, r17, r1.
  97. The old "addc" cannot be represented by a 16-bit instruction because
  98. 16-bit "addc" only supports regs from r0 to r15. So we use "addc32"
  99. which has 3 operands, and duplicate the first operand to the second. */
  100. OPRND_TYPE_DUP_GREG0_7,
  101. OPRND_TYPE_DUP_GREG0_15,
  102. OPRND_TYPE_DUP_AREG,
  103. /* Immediate. */
  104. OPRND_TYPE_IMM1b,
  105. OPRND_TYPE_IMM2b,
  106. OPRND_TYPE_IMM3b,
  107. OPRND_TYPE_IMM4b,
  108. OPRND_TYPE_IMM5b,
  109. OPRND_TYPE_IMM7b,
  110. OPRND_TYPE_IMM8b,
  111. OPRND_TYPE_IMM9b,
  112. OPRND_TYPE_IMM12b,
  113. OPRND_TYPE_IMM15b,
  114. OPRND_TYPE_IMM16b,
  115. OPRND_TYPE_IMM18b,
  116. OPRND_TYPE_IMM32b,
  117. /* Immediate left shift 2 bits. */
  118. OPRND_TYPE_IMM7b_LS2,
  119. OPRND_TYPE_IMM8b_LS2,
  120. /* OPRND_TYPE_IMM5b_a_b means: Immediate in (a, b). */
  121. OPRND_TYPE_IMM5b_1_31,
  122. OPRND_TYPE_IMM5b_7_31,
  123. /* OPRND_TYPE_IMM5b_LS means: Imm <= prev Imm. */
  124. OPRND_TYPE_IMM5b_LS,
  125. /* Operand type for rori and rotri. */
  126. OPRND_TYPE_IMM5b_RORI,
  127. OPRND_TYPE_IMM5b_VSH,
  128. OPRND_TYPE_IMM5b_POWER,
  129. OPRND_TYPE_IMM5b_7_31_POWER,
  130. OPRND_TYPE_IMM5b_BMASKI,
  131. OPRND_TYPE_IMM8b_BMASKI,
  132. /* For v2 movih. */
  133. OPRND_TYPE_IMM16b_MOVIH,
  134. /* For v2 ori. */
  135. OPRND_TYPE_IMM16b_ORI,
  136. /* For v2 ld/st. */
  137. OPRND_TYPE_IMM_LDST,
  138. OPRND_TYPE_IMM_FLDST,
  139. OPRND_TYPE_IMM2b_JMPIX,
  140. /* Offset for bloop. */
  141. OPRND_TYPE_BLOOP_OFF4b,
  142. OPRND_TYPE_BLOOP_OFF12b,
  143. /* Offset for jump. */
  144. OPRND_TYPE_OFF8b,
  145. OPRND_TYPE_OFF10b,
  146. OPRND_TYPE_OFF11b,
  147. OPRND_TYPE_OFF16b,
  148. OPRND_TYPE_OFF16b_LSL1,
  149. OPRND_TYPE_OFF26b,
  150. /* An immediate or label. */
  151. OPRND_TYPE_IMM_OFF18b,
  152. /* Offset immediate. */
  153. OPRND_TYPE_OIMM3b,
  154. OPRND_TYPE_OIMM4b,
  155. OPRND_TYPE_OIMM5b,
  156. OPRND_TYPE_OIMM8b,
  157. OPRND_TYPE_OIMM12b,
  158. OPRND_TYPE_OIMM16b,
  159. OPRND_TYPE_OIMM18b,
  160. /* For csky v2 idly. */
  161. OPRND_TYPE_OIMM5b_IDLY,
  162. /* For v2 bmaski. */
  163. OPRND_TYPE_OIMM5b_BMASKI,
  164. /* Constants. */
  165. OPRND_TYPE_CONST1,
  166. /* PC relative offset. */
  167. OPRND_TYPE_PCR_OFFSET_16K,
  168. OPRND_TYPE_PCR_OFFSET_64K,
  169. OPRND_TYPE_PCR_OFFSET_64M,
  170. OPRND_TYPE_CPFUNC,
  171. OPRND_TYPE_GOT_PLT,
  172. OPRND_TYPE_REGLIST_LDM,
  173. OPRND_TYPE_REGLIST_DASH,
  174. OPRND_TYPE_FREGLIST_DASH,
  175. OPRND_TYPE_REGLIST_COMMA,
  176. OPRND_TYPE_REGLIST_DASH_COMMA,
  177. OPRND_TYPE_BRACKET,
  178. OPRND_TYPE_ABRACKET,
  179. OPRND_TYPE_JBTF,
  180. OPRND_TYPE_JBR,
  181. OPRND_TYPE_JBSR,
  182. OPRND_TYPE_UNCOND10b,
  183. OPRND_TYPE_UNCOND16b,
  184. OPRND_TYPE_COND10b,
  185. OPRND_TYPE_COND16b,
  186. OPRND_TYPE_JCOMPZ,
  187. OPRND_TYPE_LSB2SIZE,
  188. OPRND_TYPE_MSB2SIZE,
  189. OPRND_TYPE_LSB,
  190. OPRND_TYPE_MSB,
  191. /* Single float and double float. */
  192. OPRND_TYPE_SFLOAT,
  193. OPRND_TYPE_DFLOAT,
  194. OPRND_TYPE_HFLOAT_FMOVI,
  195. OPRND_TYPE_SFLOAT_FMOVI,
  196. OPRND_TYPE_DFLOAT_FMOVI,
  197. };
  198. /* Operand descriptors. */
  199. struct operand
  200. {
  201. /* Mask for suboperand. */
  202. unsigned int mask;
  203. /* Suboperand type. */
  204. enum operand_type type;
  205. /* Operand shift. */
  206. int shift;
  207. };
  208. struct soperand
  209. {
  210. /* Mask for operand. */
  211. unsigned int mask;
  212. /* Operand type. */
  213. enum operand_type type;
  214. /* Operand shift. */
  215. int shift;
  216. /* Suboperand. */
  217. struct operand subs[3];
  218. };
  219. union csky_operand
  220. {
  221. struct operand oprnds[MAX_OPRND_NUM];
  222. struct suboperand1
  223. {
  224. struct operand oprnd;
  225. struct soperand soprnd;
  226. } soprnd1;
  227. struct suboperand2
  228. {
  229. struct soperand soprnd;
  230. struct operand oprnd;
  231. } soprnd2;
  232. };
  233. /* Describe a single instruction encoding. */
  234. struct csky_opcode_info
  235. {
  236. /* How many operands. */
  237. long operand_num;
  238. /* The instruction opcode. */
  239. unsigned int opcode;
  240. /* Operand information. */
  241. union csky_operand oprnd;
  242. };
  243. /* C-SKY instruction description. Each mnemonic can have multiple
  244. 16-bit and 32-bit encodings. */
  245. struct csky_opcode
  246. {
  247. /* The instruction name. */
  248. const char *mnemonic;
  249. /* Whether this is an unconditional control transfer instruction,
  250. for the purposes of placing literal pools after it.
  251. 0 = no, 1 = within function, 2 = end of function.
  252. See check_literals in gas/config/tc-csky.c. */
  253. int transfer;
  254. /* Encodings for 16-bit opcodes. */
  255. struct csky_opcode_info op16[OP_TABLE_NUM];
  256. /* Encodings for 32-bit opcodes. */
  257. struct csky_opcode_info op32[OP_TABLE_NUM];
  258. /* Instruction set flag. */
  259. BFD_HOST_U_64_BIT isa_flag16;
  260. BFD_HOST_U_64_BIT isa_flag32;
  261. /* Whether this insn needs relocation, 0: no, !=0: yes. */
  262. signed int reloc16;
  263. signed int reloc32;
  264. /* Whether this insn needs relaxation, 0: no, != 0: yes. */
  265. signed int relax;
  266. /* Worker function to call when this instruction needs special assembler
  267. handling. */
  268. bool (*work) (void);
  269. };
  270. /* The following are the opcodes used in relax/fix process. */
  271. #define CSKYV1_INST_JMPI 0x7000
  272. #define CSKYV1_INST_ADDI 0x2000
  273. #define CSKYV1_INST_SUBI 0x2400
  274. #define CSKYV1_INST_LDW 0x8000
  275. #define CSKYV1_INST_STW 0x9000
  276. #define CSKYV1_INST_BSR 0xf800
  277. #define CSKYV1_INST_LRW 0x7000
  278. #define CSKYV1_INST_ADDU 0x1c00
  279. #define CSKYV1_INST_JMP 0x00c0
  280. #define CSKYV1_INST_MOV_R1_RX 0x1201
  281. #define CSKYV1_INST_MOV_RX_R1 0x1210
  282. #define CSKYV2_INST_BT16 0x0800
  283. #define CSKYV2_INST_BF16 0x0c00
  284. #define CSKYV2_INST_BT32 0xe8600000
  285. #define CSKYV2_INST_BF32 0xe8400000
  286. #define CSKYV2_INST_BR32 0xe8000000
  287. #define CSKYV2_INST_NOP 0x6c03
  288. #define CSKYV2_INST_MOVI16 0x3000
  289. #define CSKYV2_INST_MOVI32 0xea000000
  290. #define CSKYV2_INST_MOVIH 0xea200000
  291. #define CSKYV2_INST_LRW16 0x1000
  292. #define CSKYV2_INST_LRW32 0xea800000
  293. #define CSKYV2_INST_BSR32 0xe0000000
  294. #define CSKYV2_INST_BR32 0xe8000000
  295. #define CSKYV2_INST_FLRW 0xf4003800
  296. #define CSKYV2_INST_JMPI32 0xeac00000
  297. #define CSKYV2_INST_JSRI32 0xeae00000
  298. #define CSKYV2_INST_JSRI_TO_LRW 0xea9a0000
  299. #define CSKYV2_INST_JSR_R26 0xe8fa0000
  300. #define CSKYV2_INST_MOV_R0_R0 0xc4004820
  301. #define OPRND_SHIFT_0_BIT 0
  302. #define OPRND_SHIFT_1_BIT 1
  303. #define OPRND_SHIFT_2_BIT 2
  304. #define OPRND_SHIFT_3_BIT 3
  305. #define OPRND_SHIFT_4_BIT 4
  306. #define OPRND_MASK_NONE 0x0
  307. #define OPRND_MASK_0_1 0x3
  308. #define OPRND_MASK_0_2 0x7
  309. #define OPRND_MASK_0_3 0xf
  310. #define OPRND_MASK_0_4 0x1f
  311. #define OPRND_MASK_0_7 0xff
  312. #define OPRND_MASK_0_8 0x1ff
  313. #define OPRND_MASK_0_9 0x3ff
  314. #define OPRND_MASK_0_10 0x7ff
  315. #define OPRND_MASK_0_11 0xfff
  316. #define OPRND_MASK_0_14 0x7fff
  317. #define OPRND_MASK_0_15 0xffff
  318. #define OPRND_MASK_0_17 0x3ffff
  319. #define OPRND_MASK_0_25 0x3ffffff
  320. #define OPRND_MASK_2_4 0x1c
  321. #define OPRND_MASK_2_5 0x3c
  322. #define OPRND_MASK_3_7 0xf8
  323. #define OPRND_MASK_4 0x10
  324. #define OPRND_MASK_4_5 0x30
  325. #define OPRND_MASK_4_6 0x70
  326. #define OPRND_MASK_4_7 0xf0
  327. #define OPRND_MASK_4_8 0x1f0
  328. #define OPRND_MASK_4_10 0x7f0
  329. #define OPRND_MASK_5 0x20
  330. #define OPRND_MASK_5_6 0x60
  331. #define OPRND_MASK_5_7 0xe0
  332. #define OPRND_MASK_5_8 0x1e0
  333. #define OPRND_MASK_5_9 0x3e0
  334. #define OPRND_MASK_6 0x40
  335. #define OPRND_MASK_6_7 0xc0
  336. #define OPRND_MASK_6_8 0x1c0
  337. #define OPRND_MASK_6_9 0x3c0
  338. #define OPRND_MASK_6_10 0x7c0
  339. #define OPRND_MASK_7 0x80
  340. #define OPRND_MASK_7_8 0x180
  341. #define OPRND_MASK_8_9 0x300
  342. #define OPRND_MASK_8_10 0x700
  343. #define OPRND_MASK_8_11 0xf00
  344. #define OPRND_MASK_9_10 0x600
  345. #define OPRND_MASK_9_12 0x1e00
  346. #define OPRND_MASK_10_11 0xc00
  347. #define OPRND_MASK_10_14 0x7c00
  348. #define OPRND_MASK_12_15 0xf000
  349. #define OPRND_MASK_13_17 0x3e000
  350. #define OPRND_MASK_16_19 0xf0000
  351. #define OPRND_MASK_16_20 0x1f0000
  352. #define OPRND_MASK_16_25 0x3ff0000
  353. #define OPRND_MASK_17_24 0x1fe0000
  354. #define OPRND_MASK_20 0x0100000
  355. #define OPRND_MASK_20_21 0x0300000
  356. #define OPRND_MASK_20_22 0x0700000
  357. #define OPRND_MASK_20_23 0x0f00000
  358. #define OPRND_MASK_20_24 0x1f00000
  359. #define OPRND_MASK_20_25 0x3f00000
  360. #define OPRND_MASK_21_24 0x1e00000
  361. #define OPRND_MASK_21_25 0x3e00000
  362. #define OPRND_MASK_25 0x2000000
  363. #define OPRND_MASK_RSV 0xffffffff
  364. #define OPRND_MASK_0_3or5_8 OPRND_MASK_0_3 | OPRND_MASK_5_8
  365. #define OPRND_MASK_0_3or6_7 OPRND_MASK_0_3 | OPRND_MASK_6_7
  366. #define OPRND_MASK_0_3or21_24 OPRND_MASK_0_3 | OPRND_MASK_21_24
  367. #define OPRND_MASK_0_3or25 OPRND_MASK_0_3 | OPRND_MASK_25
  368. #define OPRND_MASK_0_4or21_24 OPRND_MASK_0_4 | OPRND_MASK_21_24
  369. #define OPRND_MASK_0_4or21_25 OPRND_MASK_0_4 | OPRND_MASK_21_25
  370. #define OPRND_MASK_0_4or16_20 OPRND_MASK_0_4 | OPRND_MASK_16_20
  371. #define OPRND_MASK_0_4or8_10 OPRND_MASK_0_4 | OPRND_MASK_8_10
  372. #define OPRND_MASK_0_4or8_9 OPRND_MASK_0_4 | OPRND_MASK_8_9
  373. #define OPRND_MASK_0_14or16_20 OPRND_MASK_0_14 | OPRND_MASK_16_20
  374. #define OPRND_MASK_4or5_8 OPRND_MASK_4 | OPRND_MASK_5_8
  375. #define OPRND_MASK_5or20_21 OPRND_MASK_5 | OPRND_MASK_20_21
  376. #define OPRND_MASK_5or20_22 OPRND_MASK_5 | OPRND_MASK_20_22
  377. #define OPRND_MASK_5or20_23 OPRND_MASK_5 | OPRND_MASK_20_23
  378. #define OPRND_MASK_5or20_24 OPRND_MASK_5 | OPRND_MASK_20_24
  379. #define OPRND_MASK_5or20_25 OPRND_MASK_5 | OPRND_MASK_20_25
  380. #define OPRND_MASK_5or21_24 OPRND_MASK_5 | OPRND_MASK_21_24
  381. #define OPRND_MASK_2_5or6_9 OPRND_MASK_2_5 | OPRND_MASK_6_9
  382. #define OPRND_MASK_4_6or21_25 OPRND_MASK_4_6 | OPRND_MASK_21_25
  383. #define OPRND_MASK_4_7or21_24 OPRND_MASK_4_7 | OPRND_MASK_21_24
  384. #define OPRND_MASK_5_6or21_25 OPRND_MASK_5_6 | OPRND_MASK_21_25
  385. #define OPRND_MASK_5_7or8_10 OPRND_MASK_5_7 | OPRND_MASK_8_10
  386. #define OPRND_MASK_5_9or21_25 OPRND_MASK_5_9 | OPRND_MASK_21_25
  387. #define OPRND_MASK_8_9or21_25 OPRND_MASK_8_9 | OPRND_MASK_21_25
  388. #define OPRND_MASK_8_9or16_25 OPRND_MASK_8_9 | OPRND_MASK_16_20 | OPRND_MASK_21_25
  389. #define OPRND_MASK_16_19or21_24 OPRND_MASK_16_19 | OPRND_MASK_21_24
  390. #define OPRND_MASK_16_20or21_25 OPRND_MASK_16_20 | OPRND_MASK_21_25
  391. #define OPRND_MASK_4or9_10or25 OPRND_MASK_4 | OPRND_MASK_9_10 | OPRND_MASK_25
  392. #define OPRND_MASK_4_7or16_24 OPRND_MASK_4_7 | OPRND_MASK_16_20 | OPRND_MASK_21_24
  393. #define OPRND_MASK_4_6or20 OPRND_MASK_4_6 | OPRND_MASK_20
  394. #define OPRND_MASK_5_7or20 OPRND_MASK_5_7 | OPRND_MASK_20
  395. #define OPRND_MASK_4_5or20or25 OPRND_MASK_4 | OPRND_MASK_5 | OPRND_MASK_20 | OPRND_MASK_25
  396. #define OPRND_MASK_4_6or20or25 OPRND_MASK_4_6 | OPRND_MASK_20 | OPRND_MASK_25
  397. #define OPRND_MASK_4_7or20or25 OPRND_MASK_4_7 | OPRND_MASK_20 | OPRND_MASK_25
  398. #define OPRND_MASK_6_9or17_24 OPRND_MASK_6_9 | OPRND_MASK_17_24
  399. #define OPRND_MASK_6_7or20 OPRND_MASK_6_7 | OPRND_MASK_20
  400. #define OPRND_MASK_6or20 OPRND_MASK_6 | OPRND_MASK_20
  401. #define OPRND_MASK_7or20 OPRND_MASK_7 | OPRND_MASK_20
  402. #define OPRND_MASK_5or8_9or16_25 OPRND_MASK_5 | OPRND_MASK_8_9or16_25
  403. #define OPRND_MASK_5or8_9or20_25 OPRND_MASK_5 | OPRND_MASK_8_9 | OPRND_MASK_20_25
  404. #define OPERAND_INFO(mask, type, shift) \
  405. {OPRND_MASK_##mask, OPRND_TYPE_##type, shift}
  406. #define OPCODE_INFO_NONE() \
  407. {-2, 0, \
  408. {{OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  409. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  410. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  411. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  412. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
  413. /* Here and in subsequent macros, the "oprnd" arguments are the
  414. parenthesized arglist to the OPERAND_INFO macro above. */
  415. #define OPCODE_INFO(num, op, oprnd1, oprnd2, oprnd3, oprnd4, oprnd5) \
  416. {num, op, \
  417. {OPERAND_INFO oprnd1, OPERAND_INFO oprnd2, OPERAND_INFO oprnd3, \
  418. OPERAND_INFO oprnd4, OPERAND_INFO oprnd5}}
  419. #define OPCODE_INFO0(op) \
  420. {0, op, \
  421. {{OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  422. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  423. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  424. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  425. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
  426. #define OPCODE_INFO1(op, oprnd) \
  427. {1, op, \
  428. {{OPERAND_INFO oprnd, \
  429. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  430. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  431. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  432. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
  433. #define OPCODE_INFO2(op, oprnd1, oprnd2) \
  434. {2, op, \
  435. {{OPERAND_INFO oprnd1, \
  436. OPERAND_INFO oprnd2, \
  437. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  438. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  439. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
  440. #define OPCODE_INFO3(op, oprnd1, oprnd2, oprnd3) \
  441. {3, op, \
  442. {{OPERAND_INFO oprnd1, \
  443. OPERAND_INFO oprnd2, \
  444. OPERAND_INFO oprnd3, \
  445. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  446. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
  447. #define OPCODE_INFO4(op, oprnd1, oprnd2, oprnd3, oprnd4) \
  448. {4, op, \
  449. {{OPERAND_INFO oprnd1, \
  450. OPERAND_INFO oprnd2, \
  451. OPERAND_INFO oprnd3, \
  452. OPERAND_INFO oprnd4, \
  453. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
  454. #define OPCODE_INFO_LIST(op, oprnd) \
  455. {-1, op, \
  456. {{OPERAND_INFO oprnd, \
  457. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  458. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT) , \
  459. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
  460. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
  461. #define OPCODE_INFO5(op, oprnd1, oprnd2, oprnd3, oprnd4, oprnd5) \
  462. {5, op, \
  463. {{OPERAND_INFO oprnd1, \
  464. OPERAND_INFO oprnd2, \
  465. OPERAND_INFO oprnd3, \
  466. OPERAND_INFO oprnd4, \
  467. OPERAND_INFO oprnd5}}}
  468. #define BRACKET_OPRND(oprnd1, oprnd2) \
  469. OPERAND_INFO (RSV, BRACKET, OPRND_SHIFT_0_BIT), \
  470. OPERAND_INFO oprnd1, \
  471. OPERAND_INFO oprnd2, \
  472. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)
  473. #define ABRACKET_OPRND(oprnd1, oprnd2) \
  474. OPERAND_INFO (RSV, ABRACKET, OPRND_SHIFT_0_BIT), \
  475. OPERAND_INFO oprnd1, \
  476. OPERAND_INFO oprnd2, \
  477. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)
  478. #define SOPCODE_INFO1(op, soprnd) \
  479. {1, op, \
  480. {{soprnd, \
  481. OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
  482. #define SOPCODE_INFO2(op, oprnd, soprnd) \
  483. {2, op, \
  484. {{OPERAND_INFO oprnd, soprnd}}}
  485. /* Before using the opcode-defining macros, there need to be
  486. #defines for _TRANSFER, _RELOC16, _RELOC32, and _RELAX. See
  487. below. */
  488. /* FIXME: it is a wart that these parameters are not explicit. */
  489. #define OP16(mnem, opcode16, isa) \
  490. {mnem, _TRANSFER, \
  491. {opcode16, OPCODE_INFO_NONE ()}, \
  492. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  493. isa, 0, _RELOC16, 0, _RELAX, NULL}
  494. #ifdef BUILD_AS
  495. #define OP16_WITH_WORK(mnem, opcode16, isa, work) \
  496. {mnem, _TRANSFER, \
  497. {opcode16, OPCODE_INFO_NONE ()}, \
  498. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  499. isa, 0, _RELOC16, 0, _RELAX, work}
  500. #define OP32_WITH_WORK(mnem, opcode32, isa, work) \
  501. {mnem, _TRANSFER, \
  502. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  503. {opcode32, OPCODE_INFO_NONE ()}, \
  504. 0, isa, 0, _RELOC32, _RELAX, work}
  505. #define OP16_OP32_WITH_WORK(mnem, opcode16, isa16, opcode32, isa32, work) \
  506. {mnem, _TRANSFER, \
  507. {opcode16, OPCODE_INFO_NONE ()}, \
  508. {opcode32, OPCODE_INFO_NONE ()}, \
  509. isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
  510. #define DOP16_OP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32, isa32, work) \
  511. {mnem, _TRANSFER, \
  512. {opcode16a, opcode16b}, \
  513. {opcode32, OPCODE_INFO_NONE ()}, \
  514. isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
  515. #define DOP16_DOP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32, work) \
  516. {mnem, _TRANSFER, \
  517. {opcode16a, opcode16b}, \
  518. {opcode32a, opcode32b}, \
  519. isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
  520. #define DOP32_WITH_WORK(mnem, opcode32a, opcode32b, isa, work) \
  521. {mnem, _TRANSFER, \
  522. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  523. {opcode32a, opcode32b}, \
  524. 0, isa, 0, _RELOC32, _RELAX, work}
  525. #else /* ifdef BUILD_AS */
  526. #define OP16_WITH_WORK(mnem, opcode16, isa, work) \
  527. {mnem, _TRANSFER, \
  528. {opcode16, OPCODE_INFO_NONE ()}, \
  529. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  530. isa, 0, _RELOC16, 0, _RELAX, NULL}
  531. #define OP32_WITH_WORK(mnem, opcode32, isa, work) \
  532. {mnem, _TRANSFER, \
  533. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  534. {opcode32, OPCODE_INFO_NONE ()}, \
  535. 0, isa, 0, _RELOC32, _RELAX, NULL}
  536. #define OP16_OP32_WITH_WORK(mnem, opcode16, isa16, opcode32, isa32, work) \
  537. {mnem, _TRANSFER, \
  538. {opcode16, OPCODE_INFO_NONE ()}, \
  539. {opcode32, OPCODE_INFO_NONE ()}, \
  540. isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
  541. #define DOP16_OP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32, isa32, work) \
  542. {mnem, _TRANSFER, \
  543. {opcode16a, opcode16b}, \
  544. {opcode32, OPCODE_INFO_NONE ()}, \
  545. isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
  546. #define DOP16_DOP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32, work) \
  547. {mnem, _TRANSFER, \
  548. {opcode16a, opcode16b}, \
  549. {opcode32a, opcode32b}, \
  550. isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
  551. #define DOP32_WITH_WORK(mnem, opcode32a, opcode32b, isa, work) \
  552. {mnem, _TRANSFER, \
  553. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  554. {opcode32a, opcode32b}, \
  555. 0, isa, 0, _RELOC32, _RELAX, NULL}
  556. #endif /* ifdef BUILD_AS */
  557. #define DOP16(mnem, opcode16_1, opcode16_2, isa) \
  558. {mnem, _TRANSFER, \
  559. {opcode16_1, opcode16_2}, \
  560. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  561. isa, 0, _RELOC16, 0, _RELAX, NULL}
  562. #define OP32(mnem, opcode32, isa) \
  563. {mnem, _TRANSFER, \
  564. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  565. {opcode32, OPCODE_INFO_NONE ()}, \
  566. 0, isa, 0, _RELOC32, _RELAX, NULL}
  567. #define DOP32(mnem, opcode32a, opcode32b, isa) \
  568. {mnem, _TRANSFER, \
  569. {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
  570. {opcode32a, opcode32b}, \
  571. 0, isa, 0, _RELOC32, _RELAX, NULL}
  572. #define OP16_OP32(mnem, opcode16, isa16, opcode32, isa32) \
  573. {mnem, _TRANSFER, \
  574. {opcode16, OPCODE_INFO_NONE ()}, \
  575. {opcode32, OPCODE_INFO_NONE ()}, \
  576. isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
  577. #define DOP16_OP32(mnem, opcode16a, opcode16b, isa16, opcode32, isa32) \
  578. {mnem, _TRANSFER, \
  579. {opcode16a, opcode16b}, \
  580. {opcode32, OPCODE_INFO_NONE ()}, \
  581. isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
  582. #define OP16_DOP32(mnem, opcode16, isa16, opcode32a, opcode32b, isa32) \
  583. {mnem, _TRANSFER, \
  584. {opcode16, OPCODE_INFO_NONE ()}, \
  585. {opcode32a, opcode32b}, \
  586. isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
  587. #define DOP16_DOP32(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32) \
  588. {mnem, _TRANSFER, \
  589. {opcode16a, opcode16b}, \
  590. {opcode32a, opcode32b}, \
  591. isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
  592. /* Register names and numbers. */
  593. #define V1_REG_SP 0
  594. #define V1_REG_LR 15
  595. struct psrbit
  596. {
  597. int value;
  598. int isa;
  599. const char *name;
  600. };
  601. const struct psrbit cskyv1_psr_bits[] =
  602. {
  603. {1, 0, "ie"},
  604. {2, 0, "fe"},
  605. {4, 0, "ee"},
  606. {8, 0, "af"},
  607. {0, 0, NULL},
  608. };
  609. const struct psrbit cskyv2_psr_bits[] =
  610. {
  611. {8, 0, "ee"},
  612. {4, 0, "ie"},
  613. {2, 0, "fe"},
  614. {1, 0, "af"},
  615. {0x10, CSKY_ISA_TRUST, "sie"},
  616. {0, 0, NULL},
  617. };
  618. #define GENERAL_REG_BANK 0x80000000
  619. #define REG_SUPPORT_ALL 0xffffffff
  620. /* CSKY register description. */
  621. struct csky_reg_def
  622. {
  623. /* The group number for control registers,
  624. and set the bank of genaral registers to a special number. */
  625. int bank;
  626. int regno;
  627. /* The name displayed by serial number. */
  628. const char *name;
  629. /* The name displayed by ABI infomation,
  630. used when objdump add option -Mabi-names. */
  631. const char *abi_name;
  632. /* The flags indicate which arches support the register. */
  633. int arch_flag;
  634. /* Some registers depend on special features. */
  635. char *features;
  636. };
  637. /* Arch flag. */
  638. #define ASH(a) (1 << CSKY_ARCH_##a)
  639. /* All arches exclued 801. */
  640. #define REG_SUPPORT_A (REG_SUPPORT_ALL & ~ASH(801))
  641. /* All arches exclued 801 and 802. */
  642. #define REG_SUPPORT_B (REG_SUPPORT_ALL & ~(ASH(801) | ASH(802)))
  643. /* All arches exclued 801, 802, 803, 805.*/
  644. #define REG_SUPPORT_C (REG_SUPPORT_ALL & ~(ASH(801) \
  645. | ASH(802) | ASH(803) | ASH(805)))
  646. /* All arches exclued 801, 802, 803, 805, 807, 810. */
  647. #define REG_SUPPORT_D (REG_SUPPORT_C & ~(ASH(807) | ASH(810)))
  648. /* All arches exclued 807, 810, 860. */
  649. #define REG_SUPPORT_E (REG_SUPPORT_ALL & ~(ASH(807) | ASH(810) | \
  650. ASH(860)))
  651. /* C-SKY V1 general registers table. */
  652. static struct csky_reg_def csky_abiv1_general_regs[] =
  653. {
  654. #define DECLARE_REG(regno, abi_name, support) \
  655. {GENERAL_REG_BANK, regno, "r"#regno, abi_name, support, NULL}
  656. DECLARE_REG (0, "sp", REG_SUPPORT_ALL),
  657. DECLARE_REG (1, NULL, REG_SUPPORT_ALL),
  658. DECLARE_REG (2, "a0", REG_SUPPORT_ALL),
  659. DECLARE_REG (3, "a1", REG_SUPPORT_ALL),
  660. DECLARE_REG (4, "a2", REG_SUPPORT_ALL),
  661. DECLARE_REG (5, "a3", REG_SUPPORT_ALL),
  662. DECLARE_REG (6, "a4", REG_SUPPORT_ALL),
  663. DECLARE_REG (7, "a5", REG_SUPPORT_ALL),
  664. DECLARE_REG (8, "fp", REG_SUPPORT_ALL),
  665. DECLARE_REG (8, "l0", REG_SUPPORT_ALL),
  666. DECLARE_REG (9, "l1", REG_SUPPORT_ALL),
  667. DECLARE_REG (10, "l2", REG_SUPPORT_ALL),
  668. DECLARE_REG (11, "l3", REG_SUPPORT_ALL),
  669. DECLARE_REG (12, "l4", REG_SUPPORT_ALL),
  670. DECLARE_REG (13, "l5", REG_SUPPORT_ALL),
  671. DECLARE_REG (14, "gb", REG_SUPPORT_ALL),
  672. DECLARE_REG (15, "lr", REG_SUPPORT_ALL),
  673. #undef DECLARE_REG
  674. {-1, -1, NULL, NULL, 0, NULL},
  675. };
  676. /* C-SKY V1 control registers table. */
  677. static struct csky_reg_def csky_abiv1_control_regs[] =
  678. {
  679. #define DECLARE_REG(regno, abi_name, support) \
  680. {0, regno, "cr"#regno, abi_name, support, NULL}
  681. DECLARE_REG (0, "psr", REG_SUPPORT_ALL),
  682. DECLARE_REG (1, "vbr", REG_SUPPORT_ALL),
  683. DECLARE_REG (2, "epsr", REG_SUPPORT_ALL),
  684. DECLARE_REG (3, "fpsr", REG_SUPPORT_ALL),
  685. DECLARE_REG (4, "epc", REG_SUPPORT_ALL),
  686. DECLARE_REG (5, "fpc", REG_SUPPORT_ALL),
  687. DECLARE_REG (6, "ss0", REG_SUPPORT_ALL),
  688. DECLARE_REG (7, "ss1", REG_SUPPORT_ALL),
  689. DECLARE_REG (8, "ss2", REG_SUPPORT_ALL),
  690. DECLARE_REG (9, "ss3", REG_SUPPORT_ALL),
  691. DECLARE_REG (10, "ss4", REG_SUPPORT_ALL),
  692. DECLARE_REG (11, "gcr", REG_SUPPORT_ALL),
  693. DECLARE_REG (12, "gsr", REG_SUPPORT_ALL),
  694. DECLARE_REG (13, "cpid", REG_SUPPORT_ALL),
  695. DECLARE_REG (14, "dcsr", REG_SUPPORT_ALL),
  696. DECLARE_REG (15, "cwr", REG_SUPPORT_ALL),
  697. DECLARE_REG (16, NULL, REG_SUPPORT_ALL),
  698. DECLARE_REG (17, "cfr", REG_SUPPORT_ALL),
  699. DECLARE_REG (18, "ccr", REG_SUPPORT_ALL),
  700. DECLARE_REG (19, "capr", REG_SUPPORT_ALL),
  701. DECLARE_REG (20, "pacr", REG_SUPPORT_ALL),
  702. DECLARE_REG (21, "prsr", REG_SUPPORT_ALL),
  703. DECLARE_REG (22, "mir", REG_SUPPORT_ALL),
  704. DECLARE_REG (23, "mrr", REG_SUPPORT_ALL),
  705. DECLARE_REG (24, "mel0", REG_SUPPORT_ALL),
  706. DECLARE_REG (25, "mel1", REG_SUPPORT_ALL),
  707. DECLARE_REG (26, "meh", REG_SUPPORT_ALL),
  708. DECLARE_REG (27, "mcr", REG_SUPPORT_ALL),
  709. DECLARE_REG (28, "mpr", REG_SUPPORT_ALL),
  710. DECLARE_REG (29, "mwr", REG_SUPPORT_ALL),
  711. DECLARE_REG (30, "mcir", REG_SUPPORT_ALL),
  712. #undef DECLARE_REG
  713. {-1, -1, NULL, NULL, 0, NULL},
  714. };
  715. /* C-SKY V2 general registers table. */
  716. static struct csky_reg_def csky_abiv2_general_regs[] =
  717. {
  718. #ifdef DECLARE_REG
  719. #undef DECLARE_REG
  720. #endif
  721. #define DECLARE_REG(regno, abi_name, support) \
  722. {GENERAL_REG_BANK, regno, "r"#regno, abi_name, support, NULL}
  723. DECLARE_REG (0, "a0", REG_SUPPORT_ALL),
  724. DECLARE_REG (1, "a1", REG_SUPPORT_ALL),
  725. DECLARE_REG (2, "a2", REG_SUPPORT_ALL),
  726. DECLARE_REG (3, "a3", REG_SUPPORT_ALL),
  727. DECLARE_REG (4, "l0", REG_SUPPORT_ALL),
  728. DECLARE_REG (5, "l1", REG_SUPPORT_ALL),
  729. DECLARE_REG (6, "l2", REG_SUPPORT_ALL),
  730. DECLARE_REG (7, "l3", REG_SUPPORT_ALL),
  731. DECLARE_REG (8, "l4", REG_SUPPORT_ALL),
  732. DECLARE_REG (9, "l5", REG_SUPPORT_A),
  733. DECLARE_REG (10, "l6", REG_SUPPORT_A),
  734. DECLARE_REG (11, "l7", REG_SUPPORT_A),
  735. DECLARE_REG (12, "t0", REG_SUPPORT_A),
  736. DECLARE_REG (13, "t1", REG_SUPPORT_ALL),
  737. DECLARE_REG (14, "sp", REG_SUPPORT_ALL),
  738. DECLARE_REG (15, "lr", REG_SUPPORT_ALL),
  739. DECLARE_REG (16, "l8", REG_SUPPORT_B),
  740. DECLARE_REG (17, "l9", REG_SUPPORT_B),
  741. DECLARE_REG (18, "t2", REG_SUPPORT_B),
  742. DECLARE_REG (19, "t3", REG_SUPPORT_B),
  743. DECLARE_REG (20, "t4", REG_SUPPORT_B),
  744. DECLARE_REG (21, "t5", REG_SUPPORT_B),
  745. DECLARE_REG (22, "t6", REG_SUPPORT_B),
  746. DECLARE_REG (23, "t7", REG_SUPPORT_B),
  747. DECLARE_REG (24, "t8", REG_SUPPORT_B),
  748. DECLARE_REG (25, "t9", REG_SUPPORT_B),
  749. DECLARE_REG (26, NULL, REG_SUPPORT_B),
  750. DECLARE_REG (27, NULL, REG_SUPPORT_B),
  751. DECLARE_REG (28, "gb", REG_SUPPORT_B),
  752. DECLARE_REG (28, "rgb", REG_SUPPORT_B),
  753. DECLARE_REG (28, "rdb", REG_SUPPORT_B),
  754. DECLARE_REG (29, "tb", REG_SUPPORT_B),
  755. DECLARE_REG (29, "rtb", REG_SUPPORT_B),
  756. DECLARE_REG (30, "svbr", REG_SUPPORT_A),
  757. DECLARE_REG (31, "tls", REG_SUPPORT_B),
  758. /* The followings JAVA/BCTM's features. */
  759. DECLARE_REG (23, "fp", REG_SUPPORT_ALL),
  760. DECLARE_REG (24, "top", REG_SUPPORT_ALL),
  761. DECLARE_REG (25, "bsp", REG_SUPPORT_ALL),
  762. {-1, -1, NULL, NULL, 0, NULL},
  763. };
  764. /* C-SKY V2 control registers table. */
  765. static struct csky_reg_def csky_abiv2_control_regs[] =
  766. {
  767. #ifdef DECLARE_REG
  768. #undef DECLARE_REG
  769. #endif
  770. /* Bank0. */
  771. #define DECLARE_REG(regno, abi_name) \
  772. {0, regno, "cr<"#regno", 0>", abi_name, REG_SUPPORT_ALL, NULL}
  773. DECLARE_REG (0, "psr"),
  774. DECLARE_REG (1, "vbr"),
  775. DECLARE_REG (2, "epsr"),
  776. DECLARE_REG (3, "fpsr"),
  777. DECLARE_REG (4, "epc"),
  778. DECLARE_REG (5, "fpc"),
  779. DECLARE_REG (6, "ss0"),
  780. DECLARE_REG (7, "ss1"),
  781. DECLARE_REG (8, "ss2"),
  782. DECLARE_REG (9, "ss3"),
  783. DECLARE_REG (10, "ss4"),
  784. DECLARE_REG (11, "gcr"),
  785. DECLARE_REG (12, "gsr"),
  786. DECLARE_REG (13, "cpid"),
  787. DECLARE_REG (14, "dcsr"),
  788. DECLARE_REG (15, NULL),
  789. DECLARE_REG (16, NULL),
  790. DECLARE_REG (17, "cfr"),
  791. DECLARE_REG (18, "ccr"),
  792. DECLARE_REG (19, "capr"),
  793. DECLARE_REG (20, "pacr"),
  794. DECLARE_REG (21, "prsr"),
  795. DECLARE_REG (22, "cir"),
  796. DECLARE_REG (23, "ccr2"),
  797. DECLARE_REG (24, NULL),
  798. DECLARE_REG (25, "cer2"),
  799. DECLARE_REG (26, NULL),
  800. DECLARE_REG (27, NULL),
  801. DECLARE_REG (28, "rvbr"),
  802. DECLARE_REG (29, "rmr"),
  803. DECLARE_REG (30, "mpid"),
  804. #undef DECLARE_REG
  805. #define DECLARE_REG(regno, abi_name, support) \
  806. {0, regno, "cr<"#regno", 0>", abi_name, support, NULL}
  807. DECLARE_REG (31, "chr", REG_SUPPORT_E),
  808. DECLARE_REG (31, "hint", REG_SUPPORT_C),
  809. /* Bank1. */
  810. #undef DECLARE_REG
  811. #define DECLARE_REG(regno, abi_name) \
  812. {1, regno, "cr<"#regno", 1>", abi_name, REG_SUPPORT_ALL, NULL}
  813. DECLARE_REG (14, "usp"),
  814. DECLARE_REG (26, "cindex"),
  815. DECLARE_REG (27, "cdata0"),
  816. DECLARE_REG (28, "cdata1"),
  817. DECLARE_REG (29, "cdata2"),
  818. DECLARE_REG (30, "cdata3"),
  819. DECLARE_REG (31, "cins"),
  820. /* Bank2. */
  821. #undef DECLARE_REG
  822. #define DECLARE_REG(regno, abi_name) \
  823. {2, regno, "cr<"#regno", 2>", abi_name, REG_SUPPORT_ALL, NULL}
  824. DECLARE_REG (0, "fid"),
  825. DECLARE_REG (1, "fcr"),
  826. DECLARE_REG (2, "fesr"),
  827. /* Bank3. */
  828. #undef DECLARE_REG
  829. #define DECLARE_REG(regno, abi_name) \
  830. {3, regno, "cr<"#regno", 3>", abi_name, REG_SUPPORT_ALL, NULL}
  831. DECLARE_REG (8, "dcr"),
  832. DECLARE_REG (8, "sedcr"),
  833. DECLARE_REG (9, "pcr"),
  834. DECLARE_REG (9, "sepcr"),
  835. /* Bank15. */
  836. #undef DECLARE_REG
  837. #define DECLARE_REG(regno, abi_name) \
  838. {15, regno, "cr<"#regno", 15>", abi_name, REG_SUPPORT_ALL, NULL}
  839. DECLARE_REG (0, "mir"),
  840. DECLARE_REG (2, "mel0"),
  841. DECLARE_REG (3, "mel1"),
  842. DECLARE_REG (4, "meh"),
  843. DECLARE_REG (6, "mpr"),
  844. DECLARE_REG (8, "mcir"),
  845. DECLARE_REG (28, "mpgd0"),
  846. DECLARE_REG (29, "mpgd"),
  847. DECLARE_REG (29, "mpgd1"),
  848. DECLARE_REG (30, "msa0"),
  849. DECLARE_REG (31, "msa1"),
  850. #undef DECLARE_REG
  851. {-1, -1, NULL, NULL, 0, NULL},
  852. };
  853. /* Get register name according to giving parameters,
  854. IS_ABI controls whether is ABI name or not. */
  855. static inline const char *
  856. get_register_name (struct csky_reg_def *reg_table,
  857. int arch, int bank, int regno, int is_abi)
  858. {
  859. static char regname[64] = {0};
  860. unsigned int i = 0;
  861. while (reg_table[i].name != NULL)
  862. {
  863. if (reg_table[i].bank == bank
  864. && reg_table[i].regno == regno
  865. && (reg_table[i].arch_flag & (1u << (arch & CSKY_ARCH_MASK))))
  866. {
  867. if (is_abi && reg_table[i].abi_name)
  868. return reg_table[i].abi_name;
  869. else
  870. return reg_table[i].name;
  871. }
  872. i++;
  873. }
  874. if (bank & 0x80000000)
  875. return "unkown register";
  876. sprintf (regname, "cr<%d, %d>", regno, bank);
  877. return regname;
  878. }
  879. /* Get register number according to giving parameters.
  880. If not found, return -1. */
  881. static inline int
  882. get_register_number (struct csky_reg_def *reg_table,
  883. int arch, char *s, char **end, int *bank)
  884. {
  885. unsigned int i = 0;
  886. int len = 0;
  887. while (reg_table[i].name != NULL)
  888. {
  889. len = strlen (reg_table[i].name);
  890. if ((strncasecmp (reg_table[i].name, s, len) == 0)
  891. && !(ISDIGIT (s[len]))
  892. && (reg_table[i].arch_flag & (1u << (arch & CSKY_ARCH_MASK))))
  893. {
  894. *end = s + len;
  895. *bank = reg_table[i].bank;
  896. return reg_table[i].regno;
  897. }
  898. if (reg_table[i].abi_name == NULL)
  899. {
  900. i++;
  901. continue;
  902. }
  903. len = strlen (reg_table[i].abi_name);
  904. if ((strncasecmp (reg_table[i].abi_name, s, len) == 0)
  905. && !(ISALNUM (s[len]))
  906. && (reg_table[i].arch_flag & (1u << (arch & CSKY_ARCH_MASK))))
  907. {
  908. *end = s + len;
  909. *bank = reg_table[i].bank;
  910. return reg_table[i].regno;
  911. }
  912. i++;
  913. }
  914. return -1;
  915. }
  916. /* Return general register's name. */
  917. static inline const char *
  918. csky_get_general_reg_name (int arch, int regno, int is_abi)
  919. {
  920. struct csky_reg_def *reg_table;
  921. if (IS_CSKY_ARCH_V1 (arch))
  922. reg_table = csky_abiv1_general_regs;
  923. else
  924. reg_table = csky_abiv2_general_regs;
  925. return get_register_name (reg_table, arch, GENERAL_REG_BANK, regno, is_abi);
  926. }
  927. /* Return general register's number. */
  928. static inline int
  929. csky_get_general_regno (int arch, char *s, char **end)
  930. {
  931. struct csky_reg_def *reg_table;
  932. int bank = 0;
  933. if (IS_CSKY_ARCH_V1 (arch))
  934. reg_table = csky_abiv1_general_regs;
  935. else
  936. reg_table = csky_abiv2_general_regs;
  937. return get_register_number (reg_table, arch, s, end, &bank);
  938. }
  939. /* Return control register's name. */
  940. static inline const char *
  941. csky_get_control_reg_name (int arch, int bank, int regno, int is_abi)
  942. {
  943. struct csky_reg_def *reg_table;
  944. if (IS_CSKY_ARCH_V1 (arch))
  945. reg_table = csky_abiv1_control_regs;
  946. else
  947. reg_table = csky_abiv2_control_regs;
  948. return get_register_name (reg_table, arch, bank, regno, is_abi);
  949. }
  950. /* Return control register's number. */
  951. static inline int
  952. csky_get_control_regno (int arch, char *s, char **end, int *bank)
  953. {
  954. struct csky_reg_def *reg_table;
  955. if (IS_CSKY_ARCH_V1 (arch))
  956. reg_table = csky_abiv1_control_regs;
  957. else
  958. reg_table = csky_abiv2_control_regs;
  959. return get_register_number (reg_table, arch, s, end, bank);
  960. }
  961. /* C-SKY V1 opcodes. */
  962. const struct csky_opcode csky_v1_opcodes[] =
  963. {
  964. #define _TRANSFER 0
  965. #define _RELOC16 0
  966. #define _RELOC32 0
  967. #define _RELAX 0
  968. OP16 ("bkpt",
  969. OPCODE_INFO0 (0x0000),
  970. CSKYV1_ISA_E1),
  971. OP16 ("sync",
  972. OPCODE_INFO0 (0x0001),
  973. CSKYV1_ISA_E1),
  974. #undef _TRANSFER
  975. #define _TRANSFER 2
  976. OP16 ("rfi",
  977. OPCODE_INFO0 (0x0003),
  978. CSKYV1_ISA_E1),
  979. #undef _TRANSFER
  980. #define _TRANSFER 0
  981. OP16 ("stop",
  982. OPCODE_INFO0 (0x0004),
  983. CSKYV1_ISA_E1),
  984. OP16 ("wait",
  985. OPCODE_INFO0 (0x0005),
  986. CSKYV1_ISA_E1),
  987. OP16 ("doze",
  988. OPCODE_INFO0 (0x0006),
  989. CSKYV1_ISA_E1),
  990. OP16 ("idly4",
  991. OPCODE_INFO0 (0x0007),
  992. CSKYV1_ISA_E1),
  993. OP16 ("trap",
  994. OPCODE_INFO1 (0x0008,
  995. (0_1, IMM2b, OPRND_SHIFT_0_BIT)),
  996. CSKYV1_ISA_E1),
  997. OP16 ("mvtc",
  998. OPCODE_INFO0 (0x000c),
  999. CSKY_ISA_DSP),
  1000. OP16 ("cprc",
  1001. OPCODE_INFO0 (0x000d),
  1002. CSKY_ISA_CP),
  1003. OP16 ("cpseti",
  1004. OPCODE_INFO1 (0x0010,
  1005. (0_3, CPIDX, OPRND_SHIFT_0_BIT)),
  1006. CSKY_ISA_CP),
  1007. OP16 ("mvc",
  1008. OPCODE_INFO1 (0x0020,
  1009. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1010. CSKYV1_ISA_E1),
  1011. OP16 ("mvcv",
  1012. OPCODE_INFO1 (0x0030,
  1013. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1014. CSKYV1_ISA_E1),
  1015. OP16 ("ldq",
  1016. OPCODE_INFO2 (0x0040,
  1017. (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
  1018. (0_3, REGnr4_r7, OPRND_SHIFT_0_BIT)),
  1019. CSKYV1_ISA_E1),
  1020. OP16 ("stq",
  1021. OPCODE_INFO2 (0x0050,
  1022. (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
  1023. (0_3, REGnr4_r7, OPRND_SHIFT_0_BIT)),
  1024. CSKYV1_ISA_E1),
  1025. OP16 ("ldm",
  1026. OPCODE_INFO2 (0x0060,
  1027. (0_3, REGLIST_DASH, OPRND_SHIFT_0_BIT),
  1028. (NONE, REGbsp, OPRND_SHIFT_0_BIT)),
  1029. CSKYV1_ISA_E1),
  1030. OP16 ("stm",
  1031. OPCODE_INFO2 (0x0070,
  1032. (0_3, REGLIST_DASH, OPRND_SHIFT_0_BIT),
  1033. (NONE, REGbsp, OPRND_SHIFT_0_BIT)),
  1034. CSKYV1_ISA_E1),
  1035. DOP16 ("dect",
  1036. OPCODE_INFO3 (0x0080,
  1037. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1038. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1039. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1040. OPCODE_INFO1 (0x0080,
  1041. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1042. CSKYV1_ISA_E1),
  1043. DOP16 ("decf",
  1044. OPCODE_INFO3 (0x0090,
  1045. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1046. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1047. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1048. OPCODE_INFO1 (0x0090,
  1049. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1050. CSKYV1_ISA_E1),
  1051. DOP16 ("inct",
  1052. OPCODE_INFO3 (0x00a0,
  1053. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1054. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1055. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1056. OPCODE_INFO1 (0x00a0,
  1057. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1058. CSKYV1_ISA_E1),
  1059. DOP16 ("incf",
  1060. OPCODE_INFO3 (0x00b0,
  1061. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1062. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1063. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1064. OPCODE_INFO1 (0x00b0,
  1065. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1066. CSKYV1_ISA_E1),
  1067. #undef _TRANSFER
  1068. #define _TRANSFER 2
  1069. OP16 ("jmp",
  1070. OPCODE_INFO1 (0x00c0,
  1071. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1072. CSKYV1_ISA_E1),
  1073. #undef _TRANSFER
  1074. #define _TRANSFER 0
  1075. OP16 ("jsr",
  1076. OPCODE_INFO1 (0x00d0,
  1077. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1078. CSKYV1_ISA_E1),
  1079. DOP16 ("ff1",
  1080. OPCODE_INFO2 (0x00e0,
  1081. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1082. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
  1083. OPCODE_INFO1 (0x00e0,
  1084. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1085. CSKYV1_ISA_E1),
  1086. DOP16 ("brev",
  1087. OPCODE_INFO2 (0x00f0,
  1088. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1089. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
  1090. OPCODE_INFO1 (0x00f0,
  1091. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1092. CSKYV1_ISA_E1),
  1093. DOP16 ("xtrb3",
  1094. OPCODE_INFO2 (0x0100,
  1095. (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
  1096. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1097. OPCODE_INFO1 (0x0100,
  1098. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1099. CSKYV1_ISA_E1),
  1100. DOP16 ("xtrb2",
  1101. OPCODE_INFO2 (0x0110,
  1102. (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
  1103. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1104. OPCODE_INFO1 (0x0110,
  1105. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1106. CSKYV1_ISA_E1),
  1107. DOP16 ("xtrb1",
  1108. OPCODE_INFO2 (0x0120,
  1109. (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
  1110. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1111. OPCODE_INFO1 (0x0120,
  1112. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1113. CSKYV1_ISA_E1),
  1114. DOP16 ("xtrb0",
  1115. OPCODE_INFO2 (0x0130,
  1116. (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
  1117. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1118. OPCODE_INFO1 (0x0130,
  1119. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1120. CSKYV1_ISA_E1),
  1121. DOP16 ("zextb",
  1122. OPCODE_INFO2 (0x0140,
  1123. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1124. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
  1125. OPCODE_INFO1 (0x0140,
  1126. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1127. CSKYV1_ISA_E1),
  1128. DOP16 ("sextb",
  1129. OPCODE_INFO2 (0x0150,
  1130. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1131. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
  1132. OPCODE_INFO1 (0x0150,
  1133. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1134. CSKYV1_ISA_E1),
  1135. DOP16 ("zexth",
  1136. OPCODE_INFO2 (0x0160,
  1137. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1138. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
  1139. OPCODE_INFO1 (0x0160,
  1140. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1141. CSKYV1_ISA_E1),
  1142. DOP16 ("sexth",
  1143. OPCODE_INFO2 (0x0170,
  1144. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1145. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
  1146. OPCODE_INFO1 (0x0170,
  1147. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1148. CSKYV1_ISA_E1),
  1149. DOP16 ("declt",
  1150. OPCODE_INFO3 (0x0180,
  1151. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1152. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1153. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1154. OPCODE_INFO1 (0x0180,
  1155. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1156. CSKYV1_ISA_E1),
  1157. OP16 ("tstnbz",
  1158. OPCODE_INFO1 (0x0190,
  1159. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1160. CSKYV1_ISA_E1),
  1161. DOP16 ("decgt",
  1162. OPCODE_INFO3 (0x01a0,
  1163. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1164. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1165. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1166. OPCODE_INFO1 (0x01a0,
  1167. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1168. CSKYV1_ISA_E1),
  1169. DOP16 ("decne",
  1170. OPCODE_INFO3 (0x01b0,
  1171. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1172. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1173. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1174. OPCODE_INFO1 (0x01b0,
  1175. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1176. CSKYV1_ISA_E1),
  1177. OP16 ("clrt",
  1178. OPCODE_INFO1 (0x01c0,
  1179. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1180. CSKYV1_ISA_E1),
  1181. OP16 ("clrf",
  1182. OPCODE_INFO1 (0x01d0,
  1183. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1184. CSKYV1_ISA_E1),
  1185. DOP16 ("abs",
  1186. OPCODE_INFO2 (0x01e0,
  1187. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1188. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
  1189. OPCODE_INFO1 (0x01e0,
  1190. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1191. CSKYV1_ISA_E1),
  1192. DOP16 ("not",
  1193. OPCODE_INFO2 (0x01f0,
  1194. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1195. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
  1196. OPCODE_INFO1 (0x01f0,
  1197. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1198. CSKYV1_ISA_E1),
  1199. OP16 ("movt",
  1200. OPCODE_INFO2 (0x0200,
  1201. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1202. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1203. CSKYV1_ISA_E1),
  1204. DOP16 ("mult",
  1205. OPCODE_INFO3 (0x0300,
  1206. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1207. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1208. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1209. OPCODE_INFO2 (0x0300,
  1210. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1211. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1212. CSKYV1_ISA_E1),
  1213. OP16 ("mac",
  1214. OPCODE_INFO2 (0x0400,
  1215. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1216. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1217. CSKY_ISA_MAC),
  1218. DOP16 ("subu",
  1219. OPCODE_INFO3 (0x0500,
  1220. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1221. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1222. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1223. OPCODE_INFO2 (0x0500,
  1224. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1225. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1226. CSKYV1_ISA_E1),
  1227. DOP16 ("sub",
  1228. OPCODE_INFO3 (0x0500,
  1229. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1230. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1231. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1232. OPCODE_INFO2 (0x0500,
  1233. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1234. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1235. CSKYV1_ISA_E1),
  1236. DOP16 ("addc",
  1237. OPCODE_INFO3 (0x0600,
  1238. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1239. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1240. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1241. OPCODE_INFO2 (0x0600,
  1242. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1243. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1244. CSKYV1_ISA_E1),
  1245. DOP16 ("subc",
  1246. OPCODE_INFO3 (0x0700,
  1247. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1248. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1249. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1250. OPCODE_INFO2 (0x0700,
  1251. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1252. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1253. CSKYV1_ISA_E1),
  1254. OP16 ("cprgr",
  1255. OPCODE_INFO2 (0x0800,
  1256. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1257. (4_8, CPREG, OPRND_SHIFT_0_BIT)),
  1258. CSKY_ISA_CP),
  1259. OP16 ("movf",
  1260. OPCODE_INFO2 (0x0a00,
  1261. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1262. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1263. CSKYV1_ISA_E1),
  1264. DOP16 ("lsr",
  1265. OPCODE_INFO3 (0x0b00,
  1266. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1267. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1268. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1269. OPCODE_INFO2 (0x0b00,
  1270. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1271. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1272. CSKYV1_ISA_E1),
  1273. OP16 ("cmphs",
  1274. OPCODE_INFO2 (0x0c00,
  1275. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1276. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1277. CSKYV1_ISA_E1),
  1278. OP16 ("cmplt",
  1279. OPCODE_INFO2 (0x0d00,
  1280. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1281. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1282. CSKYV1_ISA_E1),
  1283. OP16 ("tst",
  1284. OPCODE_INFO2 (0x0e00,
  1285. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1286. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1287. CSKYV1_ISA_E1),
  1288. OP16 ("cmpne",
  1289. OPCODE_INFO2 (0x0f00,
  1290. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1291. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1292. CSKYV1_ISA_E1),
  1293. OP16 ("mfcr",
  1294. OPCODE_INFO2 (0x1000,
  1295. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1296. (4_8, CTRLREG, OPRND_SHIFT_0_BIT)),
  1297. CSKYV1_ISA_E1),
  1298. OP16 ("psrclr",
  1299. OPCODE_INFO_LIST (0x11f0,
  1300. (0_2, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
  1301. CSKYV1_ISA_E1),
  1302. OP16 ("psrset",
  1303. OPCODE_INFO_LIST (0x11f8,
  1304. (0_2, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
  1305. CSKYV1_ISA_E1),
  1306. OP16 ("mov",
  1307. OPCODE_INFO2 (0x1200,
  1308. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1309. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1310. CSKYV1_ISA_E1),
  1311. OP16 ("bgenr",
  1312. OPCODE_INFO2 (0x1300,
  1313. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1314. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1315. CSKYV1_ISA_E1),
  1316. DOP16 ("rsub",
  1317. OPCODE_INFO3 (0x1400,
  1318. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1319. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1320. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1321. OPCODE_INFO2 (0x1400,
  1322. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1323. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1324. CSKYV1_ISA_E1),
  1325. DOP16 ("ixw",
  1326. OPCODE_INFO3 (0x1500,
  1327. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1328. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1329. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1330. OPCODE_INFO2 (0x1500,
  1331. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1332. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1333. CSKYV1_ISA_E1),
  1334. DOP16 ("and",
  1335. OPCODE_INFO3 (0x1600,
  1336. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1337. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1338. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1339. OPCODE_INFO2 (0x1600,
  1340. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1341. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1342. CSKYV1_ISA_E1),
  1343. DOP16 ("xor",
  1344. OPCODE_INFO3 (0x1700,
  1345. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1346. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1347. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1348. OPCODE_INFO2 (0x1700,
  1349. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1350. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1351. CSKYV1_ISA_E1),
  1352. OP16 ("mtcr",
  1353. OPCODE_INFO2 (0x1800,
  1354. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1355. (4_8, CTRLREG, OPRND_SHIFT_0_BIT)),
  1356. CSKYV1_ISA_E1),
  1357. DOP16 ("asr",
  1358. OPCODE_INFO3 (0x1a00,
  1359. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1360. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1361. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1362. OPCODE_INFO2 (0x1a00,
  1363. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1364. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1365. CSKYV1_ISA_E1),
  1366. DOP16 ("lsl",
  1367. OPCODE_INFO3 (0x1b00,
  1368. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1369. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1370. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1371. OPCODE_INFO2 (0x1b00,
  1372. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1373. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1374. CSKYV1_ISA_E1),
  1375. DOP16 ("addu",
  1376. OPCODE_INFO3 (0x1c00,
  1377. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1378. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1379. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1380. OPCODE_INFO2 (0x1c00,
  1381. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1382. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1383. CSKYV1_ISA_E1),
  1384. OP16 ("add",
  1385. OPCODE_INFO2 (0x1c00,
  1386. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1387. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1388. CSKYV1_ISA_E1),
  1389. DOP16 ("ixh",
  1390. OPCODE_INFO3 (0x1d00,
  1391. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1392. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1393. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1394. OPCODE_INFO2 (0x1d00,
  1395. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1396. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1397. CSKYV1_ISA_E1),
  1398. DOP16 ("or",
  1399. OPCODE_INFO3 (0x1e00,
  1400. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1401. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1402. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1403. OPCODE_INFO2 (0x1e00,
  1404. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1405. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1406. CSKYV1_ISA_E1),
  1407. DOP16 ("andn",
  1408. OPCODE_INFO3 (0x1f00,
  1409. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1410. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1411. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1412. OPCODE_INFO2 (0x1f00,
  1413. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1414. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1415. CSKYV1_ISA_E1),
  1416. DOP16 ("addi",
  1417. OPCODE_INFO3 (0x2000,
  1418. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1419. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1420. (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
  1421. OPCODE_INFO2 (0x2000,
  1422. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1423. (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
  1424. CSKYV1_ISA_E1),
  1425. OP16 ("cmplti",
  1426. OPCODE_INFO2 (0x2200,
  1427. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1428. (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
  1429. CSKYV1_ISA_E1),
  1430. DOP16 ("subi",
  1431. OPCODE_INFO3 (0x2400,
  1432. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1433. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1434. (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
  1435. OPCODE_INFO2 (0x2400,
  1436. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1437. (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
  1438. CSKYV1_ISA_E1),
  1439. OP16 ("cpwgr",
  1440. OPCODE_INFO2 (0x2600,
  1441. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1442. (4_8, CPREG, OPRND_SHIFT_0_BIT)),
  1443. CSKY_ISA_CP),
  1444. DOP16 ("rsubi",
  1445. OPCODE_INFO3 (0x2800,
  1446. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1447. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1448. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1449. OPCODE_INFO2 (0x2800,
  1450. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1451. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1452. CSKYV1_ISA_E1),
  1453. OP16 ("cmpnei",
  1454. OPCODE_INFO2 (0x2a00,
  1455. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1456. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1457. CSKYV1_ISA_E1),
  1458. OP16 ("bmaski",
  1459. OPCODE_INFO2 (0x2c00,
  1460. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1461. (4_8, IMM5b_BMASKI, OPRND_SHIFT_0_BIT)),
  1462. CSKYV1_ISA_E1),
  1463. DOP16 ("divu",
  1464. OPCODE_INFO3 (0x2c10,
  1465. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1466. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1467. (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
  1468. OPCODE_INFO2 (0x2c10,
  1469. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1470. (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
  1471. CSKYV1_ISA_E1),
  1472. OP16 ("mflos",
  1473. OPCODE_INFO1 (0x2c20,
  1474. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1475. CSKY_ISA_MAC_DSP),
  1476. OP16 ("mfhis",
  1477. OPCODE_INFO1 (0x2c30,
  1478. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1479. CSKY_ISA_MAC_DSP),
  1480. OP16 ("mtlo",
  1481. OPCODE_INFO1 (0x2c40,
  1482. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1483. CSKY_ISA_MAC_DSP),
  1484. OP16 ("mthi",
  1485. OPCODE_INFO1 (0x2c50,
  1486. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1487. CSKY_ISA_MAC_DSP),
  1488. OP16 ("mflo",
  1489. OPCODE_INFO1 (0x2c60,
  1490. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1491. CSKY_ISA_MAC_DSP),
  1492. OP16 ("mfhi",
  1493. OPCODE_INFO1 (0x2c70,
  1494. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1495. CSKY_ISA_MAC_DSP),
  1496. DOP16 ("andi",
  1497. OPCODE_INFO3 (0x2e00,
  1498. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1499. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1500. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1501. OPCODE_INFO2 (0x2e00,
  1502. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1503. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1504. CSKYV1_ISA_E1),
  1505. DOP16 ("bclri",
  1506. OPCODE_INFO3 (0x3000,
  1507. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1508. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1509. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1510. OPCODE_INFO2 (0x3000,
  1511. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1512. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1513. CSKYV1_ISA_E1),
  1514. OP16 ("bgeni",
  1515. OPCODE_INFO2 (0x3200,
  1516. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1517. (4_8, IMM5b_7_31, OPRND_SHIFT_0_BIT)),
  1518. CSKYV1_ISA_E1),
  1519. OP16 ("cpwir",
  1520. OPCODE_INFO1 (0x3200,
  1521. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1522. CSKY_ISA_CP),
  1523. DOP16 ("divs",
  1524. OPCODE_INFO3 (0x3210,
  1525. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1526. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1527. (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
  1528. OPCODE_INFO2 (0x3210,
  1529. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1530. (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
  1531. CSKYV1_ISA_E1),
  1532. OP16 ("cprsr",
  1533. OPCODE_INFO1 (0x3220,
  1534. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1535. CSKY_ISA_CP),
  1536. OP16 ("cpwsr",
  1537. OPCODE_INFO1 (0x3230,
  1538. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1539. CSKY_ISA_CP),
  1540. DOP16 ("bseti",
  1541. OPCODE_INFO3 (0x3400,
  1542. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1543. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1544. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1545. OPCODE_INFO2 (0x3400,
  1546. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1547. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1548. CSKYV1_ISA_E1),
  1549. OP16 ("btsti",
  1550. OPCODE_INFO2 (0x3600,
  1551. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1552. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  1553. CSKYV1_ISA_E1),
  1554. DOP16 ("rotli",
  1555. OPCODE_INFO3 (0x3800,
  1556. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1557. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1558. (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
  1559. OPCODE_INFO2 (0x3800,
  1560. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1561. (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
  1562. CSKYV1_ISA_E1),
  1563. DOP16 ("xsr",
  1564. OPCODE_INFO3 (0x3800,
  1565. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1566. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1567. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1568. OPCODE_INFO1 (0x3800,
  1569. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1570. CSKYV1_ISA_E1),
  1571. DOP16 ("asrc",
  1572. OPCODE_INFO3 (0x3a00,
  1573. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1574. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1575. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1576. OPCODE_INFO1 (0x3a00,
  1577. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1578. CSKYV1_ISA_E1),
  1579. DOP16 ("asri",
  1580. OPCODE_INFO3 (0x3a00,
  1581. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1582. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1583. (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
  1584. OPCODE_INFO2 (0x3a00,
  1585. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1586. (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
  1587. CSKYV1_ISA_E1),
  1588. DOP16 ("lslc",
  1589. OPCODE_INFO3 (0x3c00,
  1590. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1591. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1592. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1593. OPCODE_INFO1 (0x3c00,
  1594. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1595. CSKYV1_ISA_E1),
  1596. DOP16 ("lsli",
  1597. OPCODE_INFO3 (0x3c00,
  1598. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1599. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1600. (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
  1601. OPCODE_INFO2 (0x3c00,
  1602. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1603. (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
  1604. CSKYV1_ISA_E1),
  1605. DOP16 ("lsrc",
  1606. OPCODE_INFO3 (0x3e00,
  1607. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1608. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1609. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  1610. OPCODE_INFO1 (0x3e00,
  1611. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  1612. CSKYV1_ISA_E1),
  1613. DOP16 ("lsri",
  1614. OPCODE_INFO3 (0x3e00,
  1615. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1616. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1617. (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
  1618. OPCODE_INFO2 (0x3e00,
  1619. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1620. (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
  1621. CSKYV1_ISA_E1),
  1622. OP16 ("ldex",
  1623. SOPCODE_INFO2 (0x4000,
  1624. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1625. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1626. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1627. CSKY_ISA_MP),
  1628. OP16 ("ldex.w",
  1629. SOPCODE_INFO2 (0x4000,
  1630. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1631. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1632. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1633. CSKY_ISA_MP),
  1634. OP16 ("ldwex",
  1635. SOPCODE_INFO2 (0x4000,
  1636. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1637. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1638. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1639. CSKY_ISA_MP),
  1640. OP16 ("stex",
  1641. SOPCODE_INFO2 (0x5000,
  1642. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1643. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1644. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1645. CSKY_ISA_MP),
  1646. OP16 ("stex.w",
  1647. SOPCODE_INFO2 (0x5000,
  1648. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1649. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1650. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1651. CSKY_ISA_MP),
  1652. OP16 ("stwex",
  1653. SOPCODE_INFO2 (0x5000,
  1654. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1655. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1656. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1657. CSKY_ISA_MP),
  1658. OP16 ("omflip0",
  1659. OPCODE_INFO2 (0x4000,
  1660. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1661. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1662. CSKY_ISA_MAC),
  1663. OP16 ("omflip1",
  1664. OPCODE_INFO2 (0x4100,
  1665. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1666. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1667. CSKY_ISA_MAC),
  1668. OP16 ("omflip2",
  1669. OPCODE_INFO2 (0x4200,
  1670. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1671. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1672. CSKY_ISA_MAC),
  1673. OP16 ("omflip3",
  1674. OPCODE_INFO2 (0x4300,
  1675. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1676. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1677. CSKY_ISA_MAC),
  1678. OP16 ("muls",
  1679. OPCODE_INFO2 (0x5000,
  1680. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1681. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1682. CSKY_ISA_DSP),
  1683. OP16 ("mulsa",
  1684. OPCODE_INFO2 (0x5100,
  1685. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1686. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1687. CSKY_ISA_DSP),
  1688. OP16 ("mulss",
  1689. OPCODE_INFO2 (0x5200,
  1690. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1691. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1692. CSKY_ISA_DSP),
  1693. OP16 ("mulu",
  1694. OPCODE_INFO2 (0x5400,
  1695. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1696. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1697. CSKY_ISA_DSP),
  1698. OP16 ("mulua",
  1699. OPCODE_INFO2 (0x5500,
  1700. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1701. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1702. CSKY_ISA_DSP),
  1703. OP16 ("mulus",
  1704. OPCODE_INFO2 (0x5600,
  1705. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1706. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1707. CSKY_ISA_DSP),
  1708. OP16 ("vmulsh",
  1709. OPCODE_INFO2 (0x5800,
  1710. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1711. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1712. CSKY_ISA_DSP),
  1713. OP16 ("vmulsha",
  1714. OPCODE_INFO2 (0x5900,
  1715. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1716. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1717. CSKY_ISA_DSP),
  1718. OP16 ("vmulshs",
  1719. OPCODE_INFO2 (0x5a00,
  1720. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1721. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1722. CSKY_ISA_DSP),
  1723. OP16 ("vmulsw",
  1724. OPCODE_INFO2 (0x5c00,
  1725. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1726. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1727. CSKY_ISA_DSP),
  1728. OP16 ("vmulswa",
  1729. OPCODE_INFO2 (0x5d00,
  1730. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1731. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1732. CSKY_ISA_DSP),
  1733. OP16 ("vmulsws",
  1734. OPCODE_INFO2 (0x5e00,
  1735. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1736. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1737. CSKY_ISA_DSP),
  1738. OP16 ("movi",
  1739. OPCODE_INFO2 (0x6000,
  1740. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1741. (4_10, IMM7b, OPRND_SHIFT_0_BIT)),
  1742. CSKYV1_ISA_E1),
  1743. DOP16 ("mulsh",
  1744. OPCODE_INFO3 (0x6800,
  1745. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1746. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1747. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1748. OPCODE_INFO2 (0x6800,
  1749. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1750. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1751. CSKYV1_ISA_E1),
  1752. DOP16 ("mulsh.h",
  1753. OPCODE_INFO3 (0x6800,
  1754. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1755. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  1756. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1757. OPCODE_INFO2 (0x6800,
  1758. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1759. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1760. CSKYV1_ISA_E1),
  1761. OP16 ("mulsha",
  1762. OPCODE_INFO2 (0x6900,
  1763. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1764. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1765. CSKY_ISA_DSP),
  1766. OP16 ("mulshs",
  1767. OPCODE_INFO2 (0x6a00,
  1768. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1769. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1770. CSKY_ISA_DSP),
  1771. OP16 ("cprcr",
  1772. OPCODE_INFO2 (0x6b00,
  1773. (0_2, GREG0_7, OPRND_SHIFT_0_BIT),
  1774. (3_7, CPCREG, OPRND_SHIFT_0_BIT)),
  1775. CSKY_ISA_CP),
  1776. OP16 ("mulsw",
  1777. OPCODE_INFO2 (0x6c00,
  1778. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1779. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1780. CSKY_ISA_DSP),
  1781. OP16 ("mulswa",
  1782. OPCODE_INFO2 (0x6d00,
  1783. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1784. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1785. CSKY_ISA_DSP),
  1786. OP16 ("mulsws",
  1787. OPCODE_INFO2 (0x6e00,
  1788. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1789. (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
  1790. CSKY_ISA_DSP),
  1791. OP16 ("cpwcr",
  1792. OPCODE_INFO2 (0x6f00,
  1793. (0_2, GREG0_7, OPRND_SHIFT_0_BIT),
  1794. (3_7, CPCREG, OPRND_SHIFT_0_BIT)),
  1795. CSKY_ISA_CP),
  1796. #undef _RELOC16
  1797. #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM8BY4
  1798. #undef _TRANSFER
  1799. #define _TRANSFER 1
  1800. OP16 ("jmpi",
  1801. OPCODE_INFO1 (0x7000,
  1802. (0_7, OFF8b, OPRND_SHIFT_2_BIT)),
  1803. CSKYV1_ISA_E1),
  1804. #undef _TRANSFER
  1805. #define _TRANSFER 0
  1806. OP16 ("jsri",
  1807. OPCODE_INFO1 (0x7f00,
  1808. (0_7, OFF8b, OPRND_SHIFT_2_BIT)),
  1809. CSKYV1_ISA_E1),
  1810. OP16_WITH_WORK ("lrw",
  1811. OPCODE_INFO2 (0x7000,
  1812. (8_11, REGnsplr, OPRND_SHIFT_0_BIT),
  1813. (0_7, CONSTANT, OPRND_SHIFT_2_BIT)),
  1814. CSKYV1_ISA_E1,
  1815. v1_work_lrw),
  1816. #undef _RELOC16
  1817. #define _RELOC16 0
  1818. DOP16 ("ld.w",
  1819. SOPCODE_INFO2 (0x8000,
  1820. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1821. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1822. (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
  1823. OPCODE_INFO2 (0x8000,
  1824. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1825. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1826. CSKYV1_ISA_E1),
  1827. DOP16 ("ldw",
  1828. SOPCODE_INFO2 (0x8000,
  1829. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1830. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1831. (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
  1832. OPCODE_INFO2 (0x8000,
  1833. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1834. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1835. CSKYV1_ISA_E1),
  1836. DOP16 ("ld",
  1837. SOPCODE_INFO2 (0x8000,
  1838. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1839. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1840. (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
  1841. OPCODE_INFO2 (0x8000,
  1842. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1843. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1844. CSKYV1_ISA_E1),
  1845. DOP16 ("st.w",
  1846. SOPCODE_INFO2 (0x9000,
  1847. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1848. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1849. (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
  1850. OPCODE_INFO2 (0x9000,
  1851. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1852. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1853. CSKYV1_ISA_E1),
  1854. DOP16 ("stw",
  1855. SOPCODE_INFO2 (0x9000,
  1856. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1857. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1858. (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
  1859. OPCODE_INFO2 (0x9000,
  1860. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1861. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1862. CSKYV1_ISA_E1),
  1863. DOP16 ("st",
  1864. SOPCODE_INFO2 (0x9000,
  1865. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1866. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1867. (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
  1868. OPCODE_INFO2 (0x9000,
  1869. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1870. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1871. CSKYV1_ISA_E1),
  1872. DOP16 ("ld.b",
  1873. SOPCODE_INFO2 (0xa000,
  1874. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1875. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1876. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1877. OPCODE_INFO2 (0xa000,
  1878. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1879. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1880. CSKYV1_ISA_E1),
  1881. DOP16 ("ldb",
  1882. SOPCODE_INFO2 (0xa000,
  1883. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1884. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1885. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1886. OPCODE_INFO2 (0xa000,
  1887. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1888. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1889. CSKYV1_ISA_E1),
  1890. DOP16 ("st.b",
  1891. SOPCODE_INFO2 (0xb000,
  1892. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1893. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1894. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1895. OPCODE_INFO2 (0xb000,
  1896. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1897. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1898. CSKYV1_ISA_E1),
  1899. DOP16 ("stb",
  1900. SOPCODE_INFO2 (0xb000,
  1901. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1902. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1903. (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
  1904. OPCODE_INFO2 (0xb000,
  1905. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1906. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1907. CSKYV1_ISA_E1),
  1908. DOP16 ("ld.h",
  1909. SOPCODE_INFO2 (0xc000,
  1910. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1911. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1912. (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
  1913. OPCODE_INFO2 (0xc000,
  1914. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1915. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1916. CSKYV1_ISA_E1),
  1917. DOP16 ("ldh",
  1918. SOPCODE_INFO2 (0xc000,
  1919. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1920. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1921. (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
  1922. OPCODE_INFO2 (0xc000,
  1923. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1924. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1925. CSKYV1_ISA_E1),
  1926. DOP16 ("st.h",
  1927. SOPCODE_INFO2 (0xd000,
  1928. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1929. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1930. (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
  1931. OPCODE_INFO2 (0xd000,
  1932. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1933. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1934. CSKYV1_ISA_E1),
  1935. DOP16 ("sth",
  1936. SOPCODE_INFO2 (0xd000,
  1937. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1938. BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  1939. (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
  1940. OPCODE_INFO2 (0xd000,
  1941. (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
  1942. (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  1943. CSKYV1_ISA_E1),
  1944. #undef _RELOC16
  1945. #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM11BY2
  1946. OP16 ("bt",
  1947. OPCODE_INFO1 (0xe000,
  1948. (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
  1949. CSKYV1_ISA_E1),
  1950. OP16 ("bf",
  1951. OPCODE_INFO1 (0xe800,
  1952. (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
  1953. CSKYV1_ISA_E1),
  1954. #undef _TRANSFER
  1955. #define _TRANSFER 1
  1956. OP16 ("br",
  1957. OPCODE_INFO1 (0xf000,
  1958. (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
  1959. CSKYV1_ISA_E1),
  1960. #undef _TRANSFER
  1961. #define _TRANSFER 0
  1962. OP16 ("bsr",
  1963. OPCODE_INFO1 (0xf800,
  1964. (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
  1965. CSKYV1_ISA_E1),
  1966. #undef _RELOC16
  1967. #define _RELOC16 0
  1968. #undef _RELAX
  1969. #define _RELAX 1
  1970. OP16 ("jbt",
  1971. OPCODE_INFO1 (0xe000,
  1972. (0_10, JBTF, OPRND_SHIFT_0_BIT)),
  1973. CSKYV1_ISA_E1),
  1974. OP16 ("jbf",
  1975. OPCODE_INFO1 (0xe800,
  1976. (0_10, JBTF, OPRND_SHIFT_0_BIT)),
  1977. CSKYV1_ISA_E1),
  1978. #undef _TRANSFER
  1979. #define _TRANSFER 1
  1980. OP16 ("jbr",
  1981. OPCODE_INFO1 (0xf000,
  1982. (0_10, JBR, OPRND_SHIFT_0_BIT)),
  1983. CSKYV1_ISA_E1),
  1984. #undef _TRANSFER
  1985. #define _TRANSFER 0
  1986. #undef _RELAX
  1987. #define _RELAX 0
  1988. OP16_WITH_WORK ("jbsr",
  1989. OPCODE_INFO1 (0xf800,
  1990. (0_10, JBSR, OPRND_SHIFT_0_BIT)),
  1991. CSKYV1_ISA_E1,
  1992. v1_work_jbsr),
  1993. /* The following are aliases for other instructions. */
  1994. /* rts -> jmp r15. */
  1995. #undef _TRANSFER
  1996. #define _TRANSFER 2
  1997. OP16 ("rts",
  1998. OPCODE_INFO0 (0x00CF),
  1999. CSKYV1_ISA_E1),
  2000. OP16 ("rte",
  2001. OPCODE_INFO0 (0x0002),
  2002. CSKYV1_ISA_E1),
  2003. OP16 ("rfe",
  2004. OPCODE_INFO0 (0x0002),
  2005. CSKYV1_ISA_E1),
  2006. #undef _TRANSFER
  2007. #define _TRANSFER 0
  2008. /* cmphs r0,r0 */
  2009. OP16 ("setc",
  2010. OPCODE_INFO0 (0x0c00),
  2011. CSKYV1_ISA_E1),
  2012. /* cmpne r0,r0 */
  2013. OP16 ("clrc",
  2014. OPCODE_INFO0 (0x0f00),
  2015. CSKYV1_ISA_E1),
  2016. /* cmplti rd,1 */
  2017. OP16 ("tstle",
  2018. OPCODE_INFO1 (0x2200,
  2019. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  2020. CSKYV1_ISA_E1),
  2021. /* cmplei rd,X -> cmplti rd,X+1 */
  2022. OP16 ("cmplei",
  2023. OPCODE_INFO2 (0x2200,
  2024. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  2025. (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
  2026. CSKYV1_ISA_E1),
  2027. /* rsubi rd,0 */
  2028. OP16 ("neg",
  2029. OPCODE_INFO1 (0x2800,
  2030. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  2031. CSKYV1_ISA_E1),
  2032. /* cmpnei rd,0. */
  2033. OP16 ("tstne",
  2034. OPCODE_INFO1 (0x2a00,
  2035. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  2036. CSKYV1_ISA_E1),
  2037. /* btsti rx,31. */
  2038. OP16 ("tstlt",
  2039. OPCODE_INFO1 (0x37f0,
  2040. (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
  2041. CSKYV1_ISA_E1),
  2042. /* bclri rx,log2(imm). */
  2043. OP16 ("mclri",
  2044. OPCODE_INFO2 (0x3000,
  2045. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  2046. (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
  2047. CSKYV1_ISA_E1),
  2048. /* bgeni rx,log2(imm). */
  2049. OP16 ("mgeni",
  2050. OPCODE_INFO2 (0x3200,
  2051. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  2052. (4_8, IMM5b_7_31_POWER, OPRND_SHIFT_0_BIT)),
  2053. CSKYV1_ISA_E1),
  2054. /* bseti rx,log2(imm). */
  2055. OP16 ("mseti",
  2056. OPCODE_INFO2 (0x3400,
  2057. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  2058. (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
  2059. CSKYV1_ISA_E1),
  2060. /* btsti rx,log2(imm). */
  2061. OP16 ("mtsti",
  2062. OPCODE_INFO2 (0x3600,
  2063. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  2064. (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
  2065. CSKYV1_ISA_E1),
  2066. OP16 ("rori",
  2067. OPCODE_INFO2 (0x3800,
  2068. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  2069. (4_8, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
  2070. CSKYV1_ISA_E1),
  2071. OP16 ("rotri",
  2072. OPCODE_INFO2 (0x3800,
  2073. (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
  2074. (4_8, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
  2075. CSKYV1_ISA_E1),
  2076. /* mov r0, r0. */
  2077. OP16 ("nop",
  2078. OPCODE_INFO0 (0x1200),
  2079. CSKYV1_ISA_E1),
  2080. /* Float instruction with work. */
  2081. OP16_WITH_WORK ("fabss",
  2082. OPCODE_INFO3 (0xffe04400,
  2083. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2084. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2085. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2086. CSKY_ISA_FLOAT_E1,
  2087. v1_work_fpu_fo),
  2088. OP16_WITH_WORK ("fnegs",
  2089. OPCODE_INFO3 (0xffe04c00,
  2090. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2091. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2092. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2093. CSKY_ISA_FLOAT_E1,
  2094. v1_work_fpu_fo),
  2095. OP16_WITH_WORK ("fsqrts",
  2096. OPCODE_INFO3 (0xffe05400,
  2097. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2098. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2099. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2100. CSKY_ISA_FLOAT_E1,
  2101. v1_work_fpu_fo),
  2102. OP16_WITH_WORK ("frecips",
  2103. OPCODE_INFO3 (0xffe05c00,
  2104. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2105. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2106. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2107. CSKY_ISA_FLOAT_E1,
  2108. v1_work_fpu_fo),
  2109. OP16_WITH_WORK ("fadds",
  2110. OPCODE_INFO4 (0xffe38000,
  2111. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2112. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2113. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2114. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2115. CSKY_ISA_FLOAT_E1,
  2116. v1_work_fpu_fo),
  2117. OP16_WITH_WORK ("fsubs",
  2118. OPCODE_INFO4 (0xffe48000,
  2119. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2120. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2121. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2122. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2123. CSKY_ISA_FLOAT_E1, v1_work_fpu_fo),
  2124. OP16_WITH_WORK ("fmacs",
  2125. OPCODE_INFO4 (0xffe58000,
  2126. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2127. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2128. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2129. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2130. CSKY_ISA_FLOAT_E1,
  2131. v1_work_fpu_fo),
  2132. OP16_WITH_WORK ("fmscs",
  2133. OPCODE_INFO4 (0xffe68000,
  2134. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2135. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2136. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2137. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2138. CSKY_ISA_FLOAT_E1,
  2139. v1_work_fpu_fo),
  2140. OP16_WITH_WORK ("fmuls",
  2141. OPCODE_INFO4 (0xffe78000,
  2142. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2143. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2144. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2145. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2146. CSKY_ISA_FLOAT_E1,
  2147. v1_work_fpu_fo),
  2148. OP16_WITH_WORK ("fdivs",
  2149. OPCODE_INFO4 (0xffe88000,
  2150. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2151. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2152. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2153. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2154. CSKY_ISA_FLOAT_E1,
  2155. v1_work_fpu_fo),
  2156. OP16_WITH_WORK ("fnmacs",
  2157. OPCODE_INFO4 (0xffe98000,
  2158. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2159. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2160. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2161. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2162. CSKY_ISA_FLOAT_E1,
  2163. v1_work_fpu_fo),
  2164. OP16_WITH_WORK ("fnmscs",
  2165. OPCODE_INFO4 (0xffea8000,
  2166. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2167. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2168. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2169. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2170. CSKY_ISA_FLOAT_E1,
  2171. v1_work_fpu_fo),
  2172. OP16_WITH_WORK ("fnmuls",
  2173. OPCODE_INFO4 (0xffeb8000,
  2174. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2175. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2176. (10_14, FREG, OPRND_SHIFT_0_BIT),
  2177. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2178. CSKY_ISA_FLOAT_E1,
  2179. v1_work_fpu_fo),
  2180. OP16_WITH_WORK ("fabsd",
  2181. OPCODE_INFO3 (0xffe04000,
  2182. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2183. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2184. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2185. CSKY_ISA_FLOAT_E1,
  2186. v1_work_fpu_fo),
  2187. OP16_WITH_WORK ("fnegd",
  2188. OPCODE_INFO3 (0xffe04800,
  2189. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2190. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2191. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2192. CSKY_ISA_FLOAT_E1,
  2193. v1_work_fpu_fo),
  2194. OP16_WITH_WORK ("fsqrtd",
  2195. OPCODE_INFO3 (0xffe05000,
  2196. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2197. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2198. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2199. CSKY_ISA_FLOAT_E1,
  2200. v1_work_fpu_fo),
  2201. OP16_WITH_WORK ("frecipd",
  2202. OPCODE_INFO3 (0xffe05800,
  2203. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2204. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2205. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2206. CSKY_ISA_FLOAT_E1,
  2207. v1_work_fpu_fo),
  2208. OP16_WITH_WORK ("faddd",
  2209. OPCODE_INFO4 (0xffe30000,
  2210. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2211. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2212. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2213. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2214. CSKY_ISA_FLOAT_E1,
  2215. v1_work_fpu_fo),
  2216. OP16_WITH_WORK ("fsubd",
  2217. OPCODE_INFO4 (0xffe40000,
  2218. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2219. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2220. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2221. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2222. CSKY_ISA_FLOAT_E1,
  2223. v1_work_fpu_fo),
  2224. OP16_WITH_WORK ("fmacd",
  2225. OPCODE_INFO4 (0xffe50000,
  2226. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2227. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2228. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2229. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2230. CSKY_ISA_FLOAT_E1,
  2231. v1_work_fpu_fo),
  2232. OP16_WITH_WORK ("fmscd",
  2233. OPCODE_INFO4 (0xffe60000,
  2234. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2235. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2236. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2237. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2238. CSKY_ISA_FLOAT_E1,
  2239. v1_work_fpu_fo),
  2240. OP16_WITH_WORK ("fmuld",
  2241. OPCODE_INFO4 (0xffe70000,
  2242. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2243. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2244. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2245. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2246. CSKY_ISA_FLOAT_E1,
  2247. v1_work_fpu_fo),
  2248. OP16_WITH_WORK ("fdivd",
  2249. OPCODE_INFO4 (0xffe80000,
  2250. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2251. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2252. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2253. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2254. CSKY_ISA_FLOAT_E1,
  2255. v1_work_fpu_fo),
  2256. OP16_WITH_WORK ("fnmacd",
  2257. OPCODE_INFO4 (0xffe90000,
  2258. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2259. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2260. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2261. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2262. CSKY_ISA_FLOAT_E1,
  2263. v1_work_fpu_fo),
  2264. OP16_WITH_WORK ("fnmscd",
  2265. OPCODE_INFO4 (0xffea0000,
  2266. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2267. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2268. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2269. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2270. CSKY_ISA_FLOAT_E1,
  2271. v1_work_fpu_fo),
  2272. OP16_WITH_WORK ("fnmuld",
  2273. OPCODE_INFO4 (0xffeb0000,
  2274. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2275. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2276. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2277. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2278. CSKY_ISA_FLOAT_E1,
  2279. v1_work_fpu_fo),
  2280. OP16_WITH_WORK ("fabsm",
  2281. OPCODE_INFO3 (0xffe06000,
  2282. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2283. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2284. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2285. CSKY_ISA_FLOAT_E1,
  2286. v1_work_fpu_fo),
  2287. OP16_WITH_WORK ("fnegm",
  2288. OPCODE_INFO3 (0xffe06400,
  2289. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2290. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2291. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2292. CSKY_ISA_FLOAT_E1,
  2293. v1_work_fpu_fo),
  2294. OP16_WITH_WORK ("faddm",
  2295. OPCODE_INFO4 (0xffec0000,
  2296. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2297. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2298. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2299. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2300. CSKY_ISA_FLOAT_E1,
  2301. v1_work_fpu_fo),
  2302. OP16_WITH_WORK ("fsubm",
  2303. OPCODE_INFO4 (0xffec8000,
  2304. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2305. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2306. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2307. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2308. CSKY_ISA_FLOAT_E1,
  2309. v1_work_fpu_fo),
  2310. OP16_WITH_WORK ("fmacm",
  2311. OPCODE_INFO4 (0xffed8000,
  2312. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2313. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2314. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2315. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2316. CSKY_ISA_FLOAT_E1,
  2317. v1_work_fpu_fo),
  2318. OP16_WITH_WORK ("fmscm",
  2319. OPCODE_INFO4 (0xffee0000,
  2320. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2321. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2322. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2323. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2324. CSKY_ISA_FLOAT_E1,
  2325. v1_work_fpu_fo),
  2326. OP16_WITH_WORK ("fmulm",
  2327. OPCODE_INFO4 (0xffed0000,
  2328. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2329. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2330. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2331. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2332. CSKY_ISA_FLOAT_E1,
  2333. v1_work_fpu_fo),
  2334. OP16_WITH_WORK ("fnmacm",
  2335. OPCODE_INFO4 (0xffee8000,
  2336. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2337. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2338. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2339. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2340. CSKY_ISA_FLOAT_E1,
  2341. v1_work_fpu_fo),
  2342. OP16_WITH_WORK ("fnmscm",
  2343. OPCODE_INFO4 (0xffef0000,
  2344. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2345. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2346. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2347. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2348. CSKY_ISA_FLOAT_E1,
  2349. v1_work_fpu_fo),
  2350. OP16_WITH_WORK ("fnmulm",
  2351. OPCODE_INFO4 (0xffef8000,
  2352. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2353. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2354. (10_14, FEREG, OPRND_SHIFT_0_BIT),
  2355. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2356. CSKY_ISA_FLOAT_E1,
  2357. v1_work_fpu_fo),
  2358. OP16_WITH_WORK ("fcmphsd",
  2359. OPCODE_INFO3 (0xffe00800,
  2360. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2361. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2362. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2363. CSKY_ISA_FLOAT_E1,
  2364. v1_work_fpu_fo_fc),
  2365. OP16_WITH_WORK ("fcmpltd",
  2366. OPCODE_INFO3 (0xffe00c00,
  2367. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2368. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2369. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2370. CSKY_ISA_FLOAT_E1,
  2371. v1_work_fpu_fo_fc),
  2372. OP16_WITH_WORK ("fcmpned",
  2373. OPCODE_INFO3 (0xffe01000,
  2374. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2375. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2376. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2377. CSKY_ISA_FLOAT_E1,
  2378. v1_work_fpu_fo_fc),
  2379. OP16_WITH_WORK ("fcmpuod",
  2380. OPCODE_INFO3 (0xffe01400,
  2381. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2382. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2383. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2384. CSKY_ISA_FLOAT_E1,
  2385. v1_work_fpu_fo_fc),
  2386. OP16_WITH_WORK ("fcmphss",
  2387. OPCODE_INFO3 (0xffe01800,
  2388. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2389. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2390. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2391. CSKY_ISA_FLOAT_E1,
  2392. v1_work_fpu_fo_fc),
  2393. OP16_WITH_WORK ("fcmplts",
  2394. OPCODE_INFO3 (0xffe01c00,
  2395. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2396. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2397. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2398. CSKY_ISA_FLOAT_E1,
  2399. v1_work_fpu_fo_fc),
  2400. OP16_WITH_WORK ("fcmpnes",
  2401. OPCODE_INFO3 (0xffe02000,
  2402. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2403. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2404. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2405. CSKY_ISA_FLOAT_E1,
  2406. v1_work_fpu_fo_fc),
  2407. OP16_WITH_WORK ("fcmpuos",
  2408. OPCODE_INFO3 (0xffe02400,
  2409. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2410. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2411. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2412. CSKY_ISA_FLOAT_E1,
  2413. v1_work_fpu_fo_fc),
  2414. OP16_WITH_WORK ("fcmpzhsd",
  2415. OPCODE_INFO2 (0xffe00400,
  2416. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2417. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2418. CSKY_ISA_FLOAT_E1,
  2419. v1_work_fpu_fo_fc),
  2420. OP16_WITH_WORK ("fcmpzltd",
  2421. OPCODE_INFO2 (0xffe00480,
  2422. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2423. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2424. CSKY_ISA_FLOAT_E1,
  2425. v1_work_fpu_fo_fc),
  2426. OP16_WITH_WORK ("fcmpzned",
  2427. OPCODE_INFO2 (0xffe00500,
  2428. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2429. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2430. CSKY_ISA_FLOAT_E1,
  2431. v1_work_fpu_fo_fc),
  2432. OP16_WITH_WORK ("fcmpzuod",
  2433. OPCODE_INFO2 (0xffe00580,
  2434. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2435. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2436. CSKY_ISA_FLOAT_E1,
  2437. v1_work_fpu_fo_fc),
  2438. OP16_WITH_WORK ("fcmpzhss",
  2439. OPCODE_INFO2 (0xffe00600,
  2440. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2441. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2442. CSKY_ISA_FLOAT_E1,
  2443. v1_work_fpu_fo_fc),
  2444. OP16_WITH_WORK ("fcmpzlts",
  2445. OPCODE_INFO2 (0xffe00680,
  2446. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2447. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2448. CSKY_ISA_FLOAT_E1,
  2449. v1_work_fpu_fo_fc),
  2450. OP16_WITH_WORK ("fcmpznes",
  2451. OPCODE_INFO2 (0xffe00700,
  2452. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2453. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2454. CSKY_ISA_FLOAT_E1,
  2455. v1_work_fpu_fo_fc),
  2456. OP16_WITH_WORK ("fcmpzuos",
  2457. OPCODE_INFO2 (0xffe00780,
  2458. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2459. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2460. CSKY_ISA_FLOAT_E1,
  2461. v1_work_fpu_fo_fc),
  2462. OP16_WITH_WORK ("fstod",
  2463. OPCODE_INFO3 (0xffe02800,
  2464. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2465. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2466. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2467. CSKY_ISA_FLOAT_E1,
  2468. v1_work_fpu_fo),
  2469. OP16_WITH_WORK ("fdtos",
  2470. OPCODE_INFO3 (0xffe02c00,
  2471. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2472. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2473. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2474. CSKY_ISA_FLOAT_E1,
  2475. v1_work_fpu_fo),
  2476. OP16_WITH_WORK ("fsitos",
  2477. OPCODE_INFO3 (0xffe03400,
  2478. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2479. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2480. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2481. CSKY_ISA_FLOAT_E1,
  2482. v1_work_fpu_fo),
  2483. OP16_WITH_WORK ("fsitod",
  2484. OPCODE_INFO3 (0xffe03000,
  2485. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2486. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2487. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2488. CSKY_ISA_FLOAT_E1,
  2489. v1_work_fpu_fo),
  2490. OP16_WITH_WORK ("fuitos",
  2491. OPCODE_INFO3 (0xffe03c00,
  2492. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2493. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2494. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2495. CSKY_ISA_FLOAT_E1,
  2496. v1_work_fpu_fo),
  2497. OP16_WITH_WORK ("fuitod",
  2498. OPCODE_INFO3 (0xffe03800,
  2499. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2500. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2501. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2502. CSKY_ISA_FLOAT_E1,
  2503. v1_work_fpu_fo),
  2504. OP16_WITH_WORK ("fstosi",
  2505. OPCODE_INFO4 (0xffe10000,
  2506. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2507. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2508. (13_17, RM, OPRND_SHIFT_0_BIT),
  2509. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2510. CSKY_ISA_FLOAT_E1,
  2511. v1_work_fpu_fo),
  2512. OP16_WITH_WORK ("fdtosi",
  2513. OPCODE_INFO4 (0xffe08000,
  2514. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2515. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2516. (13_17, RM, OPRND_SHIFT_0_BIT),
  2517. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2518. CSKY_ISA_FLOAT_E1,
  2519. v1_work_fpu_fo),
  2520. OP16_WITH_WORK ("fstoui",
  2521. OPCODE_INFO4 (0xffe20000,
  2522. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2523. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2524. (13_17, RM, OPRND_SHIFT_0_BIT),
  2525. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2526. CSKY_ISA_FLOAT_E1,
  2527. v1_work_fpu_fo),
  2528. OP16_WITH_WORK ("fdtoui",
  2529. OPCODE_INFO4 (0xffe18000,
  2530. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2531. (0_4, FEREG, OPRND_SHIFT_0_BIT),
  2532. (13_17, RM, OPRND_SHIFT_0_BIT),
  2533. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2534. CSKY_ISA_FLOAT_E1,
  2535. v1_work_fpu_fo),
  2536. OP16_WITH_WORK ("fmovd",
  2537. OPCODE_INFO3 (0xffe06800,
  2538. (5_9, FEREG, OPRND_SHIFT_0_BIT),
  2539. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2540. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2541. CSKY_ISA_FLOAT_E1,
  2542. v1_work_fpu_fo),
  2543. OP16_WITH_WORK ("fmovs",
  2544. OPCODE_INFO3 (0xffe06c00,
  2545. (5_9, FREG, OPRND_SHIFT_0_BIT),
  2546. (0_4, FREG, OPRND_SHIFT_0_BIT),
  2547. (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
  2548. CSKY_ISA_FLOAT_E1,
  2549. v1_work_fpu_fo),
  2550. OP16_WITH_WORK ("fmts",
  2551. OPCODE_INFO2 (0x00000000,
  2552. (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
  2553. (NONE, FREG, OPRND_SHIFT_0_BIT)),
  2554. CSKY_ISA_FLOAT_E1,
  2555. v1_work_fpu_write),
  2556. OP16_WITH_WORK ("fmfs",
  2557. OPCODE_INFO2 (0x00000000,
  2558. (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
  2559. (NONE, FREG, OPRND_SHIFT_0_BIT)),
  2560. CSKY_ISA_FLOAT_E1,
  2561. v1_work_fpu_read),
  2562. OP16_WITH_WORK ("fmtd",
  2563. OPCODE_INFO2 (0x00000000,
  2564. (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
  2565. (NONE, FEREG, OPRND_SHIFT_0_BIT)),
  2566. CSKY_ISA_FLOAT_E1,
  2567. v1_work_fpu_writed),
  2568. OP16_WITH_WORK ("fmfd",
  2569. OPCODE_INFO2 (0x00000000,
  2570. (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
  2571. (NONE, FEREG, OPRND_SHIFT_0_BIT)),
  2572. CSKY_ISA_FLOAT_E1,
  2573. v1_work_fpu_readd),
  2574. {NULL, 0, {}, {}, 0, 0, 0, 0, 0, NULL}
  2575. };
  2576. #undef _TRANSFER
  2577. #undef _RELOC16
  2578. #undef _RELOC32
  2579. #undef _RELAX
  2580. /* C-SKY v2 opcodes. */
  2581. const struct csky_opcode csky_v2_opcodes[] =
  2582. {
  2583. #define _TRANSFER 0
  2584. #define _RELOC16 0
  2585. #define _RELOC32 0
  2586. #define _RELAX 0
  2587. OP16 ("bkpt",
  2588. OPCODE_INFO0 (0x0000),
  2589. CSKYV2_ISA_E1),
  2590. OP16_WITH_WORK ("nie",
  2591. OPCODE_INFO0 (0x1460),
  2592. CSKYV2_ISA_E1,
  2593. v2_work_istack),
  2594. OP16_WITH_WORK ("nir",
  2595. OPCODE_INFO0 (0x1461),
  2596. CSKYV2_ISA_E1,
  2597. v2_work_istack),
  2598. OP16_WITH_WORK ("ipush",
  2599. OPCODE_INFO0 (0x1462),
  2600. CSKYV2_ISA_E1,
  2601. v2_work_istack),
  2602. OP16_WITH_WORK ("ipop",
  2603. OPCODE_INFO0 (0x1463),
  2604. CSKYV2_ISA_E1,
  2605. v2_work_istack),
  2606. OP16 ("bpop.h",
  2607. OPCODE_INFO1 (0x14a0,
  2608. (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
  2609. CSKY_ISA_JAVA),
  2610. OP16 ("bpop.w",
  2611. OPCODE_INFO1 (0x14a2,
  2612. (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
  2613. CSKY_ISA_JAVA),
  2614. OP16 ("bpush.h",
  2615. OPCODE_INFO1 (0x14e0,
  2616. (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
  2617. CSKY_ISA_JAVA),
  2618. OP16 ("bpush.w",
  2619. OPCODE_INFO1 (0x14e2,
  2620. (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
  2621. CSKY_ISA_JAVA),
  2622. OP32 ("bmset",
  2623. OPCODE_INFO0 (0xc0001020),
  2624. CSKY_ISA_JAVA),
  2625. OP32 ("bmclr",
  2626. OPCODE_INFO0 (0xc0001420),
  2627. CSKY_ISA_JAVA),
  2628. OP32 ("sce",
  2629. OPCODE_INFO1 (0xc0001820,
  2630. (21_24, IMM4b, OPRND_SHIFT_0_BIT)),
  2631. CSKY_ISA_MP),
  2632. OP32 ("trap",
  2633. OPCODE_INFO1 (0xc0002020,
  2634. (10_11, IMM2b, OPRND_SHIFT_0_BIT)),
  2635. CSKYV2_ISA_E1),
  2636. /* Secure/nsecure world switch. */
  2637. OP32 ("wsc",
  2638. OPCODE_INFO0 (0xc0003c20),
  2639. CSKY_ISA_TRUST),
  2640. OP32 ("mtcr",
  2641. OPCODE_INFO2 (0xc0006420,
  2642. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2643. (0_4or21_25, CTRLREG, OPRND_SHIFT_0_BIT)),
  2644. CSKYV2_ISA_E1),
  2645. OP32 ("mfcr",
  2646. OPCODE_INFO2 (0xc0006020,
  2647. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2648. (16_20or21_25, CTRLREG, OPRND_SHIFT_0_BIT)),
  2649. CSKYV2_ISA_E1),
  2650. #undef _TRANSFER
  2651. #define _TRANSFER 2
  2652. OP32 ("rte",
  2653. OPCODE_INFO0 (0xc0004020),
  2654. CSKYV2_ISA_E1),
  2655. OP32 ("rfi",
  2656. OPCODE_INFO0 (0xc0004420),
  2657. CSKYV2_ISA_2E3),
  2658. #undef _TRANSFER
  2659. #define _TRANSFER 0
  2660. OP32 ("stop",
  2661. OPCODE_INFO0 (0xc0004820),
  2662. CSKYV2_ISA_E1),
  2663. OP32 ("wait",
  2664. OPCODE_INFO0 (0xc0004c20),
  2665. CSKYV2_ISA_E1),
  2666. OP32 ("doze",
  2667. OPCODE_INFO0 (0xc0005020),
  2668. CSKYV2_ISA_E1),
  2669. OP32 ("we",
  2670. OPCODE_INFO0 (0xc0005420),
  2671. CSKY_ISA_MP_1E2),
  2672. OP32 ("se",
  2673. OPCODE_INFO0 (0xc0005820),
  2674. CSKY_ISA_MP_1E2),
  2675. OP32 ("psrclr",
  2676. OPCODE_INFO_LIST (0xc0007020,
  2677. (21_25, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
  2678. CSKYV2_ISA_E1),
  2679. OP32 ("psrset",
  2680. OPCODE_INFO_LIST (0xc0007420,
  2681. (21_25, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
  2682. CSKYV2_ISA_E1),
  2683. DOP32 ("abs",
  2684. OPCODE_INFO2 (0xc4000200,
  2685. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2686. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2687. OPCODE_INFO1 (0xc4000200,
  2688. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  2689. CSKYV2_ISA_2E3),
  2690. OP32 ("mvc",
  2691. OPCODE_INFO1 (0xc4000500,
  2692. (0_4, AREG, OPRND_SHIFT_0_BIT)),
  2693. CSKYV2_ISA_1E2),
  2694. OP32 ("incf",
  2695. OPCODE_INFO3 (0xc4000c20,
  2696. (21_25, AREG, OPRND_SHIFT_0_BIT),
  2697. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2698. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  2699. CSKYV2_ISA_1E2),
  2700. OP32 ("movf",
  2701. OPCODE_INFO2 (0xc4000c20,
  2702. (21_25, AREG, OPRND_SHIFT_0_BIT),
  2703. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2704. CSKYV2_ISA_1E2),
  2705. OP32 ("inct",
  2706. OPCODE_INFO3 (0xc4000c40,
  2707. (21_25, AREG, OPRND_SHIFT_0_BIT),
  2708. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2709. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  2710. CSKYV2_ISA_1E2),
  2711. OP32 ("movt",
  2712. OPCODE_INFO2 (0xc4000c40,
  2713. (21_25, AREG, OPRND_SHIFT_0_BIT),
  2714. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2715. CSKYV2_ISA_1E2),
  2716. OP32 ("decf",
  2717. OPCODE_INFO3 (0xc4000c80,
  2718. (21_25, AREG, OPRND_SHIFT_0_BIT),
  2719. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2720. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  2721. CSKYV2_ISA_1E2),
  2722. OP32 ("dect",
  2723. OPCODE_INFO3 (0xc4000d00,
  2724. (21_25, AREG, OPRND_SHIFT_0_BIT),
  2725. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2726. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  2727. CSKYV2_ISA_1E2),
  2728. OP32 ("decgt",
  2729. OPCODE_INFO3 (0xc4001020,
  2730. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2731. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2732. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  2733. CSKYV2_ISA_2E3),
  2734. OP32 ("declt",
  2735. OPCODE_INFO3 (0xc4001040,
  2736. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2737. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2738. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  2739. CSKYV2_ISA_2E3),
  2740. OP32 ("decne",
  2741. OPCODE_INFO3 (0xc4001080,
  2742. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2743. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2744. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  2745. CSKYV2_ISA_2E3),
  2746. OP32 ("clrf",
  2747. OPCODE_INFO1 (0xc4002c20,
  2748. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2749. CSKYV2_ISA_2E3),
  2750. OP32 ("clrt",
  2751. OPCODE_INFO1 (0xc4002c40,
  2752. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2753. CSKYV2_ISA_2E3),
  2754. DOP32 ("rotli",
  2755. OPCODE_INFO3 (0xc4004900,
  2756. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2757. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2758. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  2759. OPCODE_INFO2 (0xc4004900,
  2760. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  2761. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  2762. CSKYV2_ISA_1E2),
  2763. OP32 ("lslc",
  2764. OPCODE_INFO3 (0xc4004c20,
  2765. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2766. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2767. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  2768. CSKYV2_ISA_1E2),
  2769. OP32 ("lsrc",
  2770. OPCODE_INFO3 (0xc4004c40,
  2771. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2772. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2773. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  2774. CSKYV2_ISA_1E2),
  2775. DOP32 ("asrc",
  2776. OPCODE_INFO3 (0xc4004c80,
  2777. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2778. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2779. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  2780. OPCODE_INFO1 (0xc4004c80,
  2781. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  2782. CSKYV2_ISA_1E2),
  2783. OP32 ("xsr",
  2784. OPCODE_INFO3 (0xc4004d00,
  2785. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2786. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2787. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  2788. CSKYV2_ISA_1E2),
  2789. OP32 ("bgenr",
  2790. OPCODE_INFO2 (0xc4005040,
  2791. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2792. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2793. CSKYV2_ISA_2E3),
  2794. DOP32 ("brev",
  2795. OPCODE_INFO2 (0xc4006200,
  2796. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2797. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2798. OPCODE_INFO1 (0xc4006200,
  2799. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  2800. CSKYV2_ISA_2E3),
  2801. OP32 ("xtrb0",
  2802. OPCODE_INFO2 (0xc4007020,
  2803. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2804. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2805. CSKYV2_ISA_1E2),
  2806. OP32 ("xtrb1",
  2807. OPCODE_INFO2 (0xc4007040,
  2808. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2809. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2810. CSKYV2_ISA_1E2),
  2811. OP32 ("xtrb2",
  2812. OPCODE_INFO2 (0xc4007080,
  2813. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2814. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2815. CSKYV2_ISA_1E2),
  2816. OP32 ("xtrb3",
  2817. OPCODE_INFO2 (0xc4007100,
  2818. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2819. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2820. CSKYV2_ISA_1E2),
  2821. OP32 ("ff0",
  2822. OPCODE_INFO2 (0xc4007c20,
  2823. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2824. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2825. CSKYV2_ISA_1E2),
  2826. DOP32 ("ff1",
  2827. OPCODE_INFO2 (0xc4007c40,
  2828. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2829. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2830. OPCODE_INFO1 (0xc4007c40,
  2831. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  2832. CSKYV2_ISA_1E2),
  2833. OP32 ("mulu",
  2834. OPCODE_INFO2 (0xc4008820,
  2835. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2836. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2837. CSKY_ISA_DSP),
  2838. OP32 ("mulua",
  2839. OPCODE_INFO2 (0xc4008840,
  2840. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2841. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2842. CSKY_ISA_DSP),
  2843. OP32 ("mulus",
  2844. OPCODE_INFO2 (0xc4008880,
  2845. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2846. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2847. CSKY_ISA_DSP),
  2848. OP32 ("muls",
  2849. OPCODE_INFO2 (0xc4008c20,
  2850. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2851. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2852. CSKY_ISA_DSP),
  2853. OP32 ("mulsa",
  2854. OPCODE_INFO2 (0xc4008c40,
  2855. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2856. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2857. CSKY_ISA_DSP),
  2858. OP32 ("mulss",
  2859. OPCODE_INFO2 (0xc4008c80,
  2860. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2861. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2862. CSKY_ISA_DSP),
  2863. OP32 ("mulsha",
  2864. OPCODE_INFO2 (0xc4009040,
  2865. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2866. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2867. CSKY_ISA_DSP),
  2868. OP32 ("mulshs",
  2869. OPCODE_INFO2 (0xc4009080,
  2870. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2871. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2872. CSKY_ISA_DSP),
  2873. OP32 ("mulswa",
  2874. OPCODE_INFO2 (0xc4009440,
  2875. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2876. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2877. CSKY_ISA_DSP),
  2878. OP32 ("mulsws",
  2879. OPCODE_INFO2 (0xc4009500,
  2880. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2881. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2882. CSKY_ISA_DSP),
  2883. OP32 ("mfhis",
  2884. OPCODE_INFO1 (0xc4009820,
  2885. (0_4, AREG, OPRND_SHIFT_0_BIT)),
  2886. CSKY_ISA_DSP),
  2887. OP32 ("mflos",
  2888. OPCODE_INFO1 (0xc4009880,
  2889. (0_4, AREG, OPRND_SHIFT_0_BIT)),
  2890. CSKY_ISA_DSP),
  2891. OP32 ("mvtc",
  2892. OPCODE_INFO0 (0xc4009a00),
  2893. CSKY_ISA_DSPE60),
  2894. OP32 ("mfhi",
  2895. OPCODE_INFO1 (0xc4009c20,
  2896. (0_4, AREG, OPRND_SHIFT_0_BIT)),
  2897. CSKY_ISA_DSP),
  2898. OP32 ("mthi",
  2899. OPCODE_INFO1 (0xc4009c40,
  2900. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2901. CSKY_ISA_DSP),
  2902. OP32 ("mflo",
  2903. OPCODE_INFO1 (0xc4009c80,
  2904. (0_4, AREG, OPRND_SHIFT_0_BIT)),
  2905. CSKY_ISA_DSP),
  2906. OP32 ("mtlo",
  2907. OPCODE_INFO1 (0xc4009d00,
  2908. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  2909. CSKY_ISA_DSP),
  2910. OP32 ("vmulsh",
  2911. OPCODE_INFO2 (0xc400b020,
  2912. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2913. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2914. CSKY_ISA_DSP_1E2),
  2915. OP32 ("vmulsha",
  2916. OPCODE_INFO2 (0xc400b040,
  2917. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2918. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2919. CSKY_ISA_DSP_1E2),
  2920. OP32 ("vmulshs",
  2921. OPCODE_INFO2 (0xc400b080,
  2922. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2923. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2924. CSKY_ISA_DSP_1E2),
  2925. OP32 ("vmulsw",
  2926. OPCODE_INFO2 (0xc400b420,
  2927. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2928. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2929. CSKY_ISA_DSP_1E2),
  2930. OP32 ("vmulswa",
  2931. OPCODE_INFO2 (0xc400b440,
  2932. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2933. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2934. CSKY_ISA_DSP_1E2),
  2935. OP32 ("vmulsws",
  2936. OPCODE_INFO2 (0xc400b480,
  2937. (16_20, AREG, OPRND_SHIFT_0_BIT),
  2938. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  2939. CSKY_ISA_DSP_1E2),
  2940. OP32 ("ldr.b",
  2941. SOPCODE_INFO2 (0xd0000000,
  2942. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2943. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  2944. (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
  2945. CSKYV2_ISA_2E3),
  2946. OP32 ("ldr.bs",
  2947. SOPCODE_INFO2 (0xd0001000,
  2948. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2949. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  2950. (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
  2951. CSKYV2_ISA_2E3),
  2952. OP32 ("ldr.h",
  2953. SOPCODE_INFO2 (0xd0000400,
  2954. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2955. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  2956. (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
  2957. CSKYV2_ISA_2E3),
  2958. OP32 ("ldr.hs",
  2959. SOPCODE_INFO2 (0xd0001400,
  2960. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2961. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  2962. (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
  2963. CSKYV2_ISA_2E3),
  2964. OP32 ("ldr.w",
  2965. SOPCODE_INFO2 (0xd0000800,
  2966. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2967. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  2968. (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
  2969. CSKYV2_ISA_2E3),
  2970. OP32 ("ldm",
  2971. OPCODE_INFO2 (0xd0001c20,
  2972. (0_4or21_25, REGLIST_DASH, OPRND_SHIFT_0_BIT),
  2973. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  2974. CSKYV2_ISA_1E2),
  2975. OP32 ("ldq",
  2976. OPCODE_INFO2 (0xd0801c23,
  2977. (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
  2978. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  2979. CSKYV2_ISA_2E3),
  2980. OP32 ("str.b",
  2981. SOPCODE_INFO2 (0xd4000000,
  2982. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2983. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  2984. (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
  2985. CSKYV2_ISA_2E3),
  2986. OP32 ("str.h",
  2987. SOPCODE_INFO2 (0xd4000400,
  2988. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2989. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  2990. (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
  2991. CSKYV2_ISA_2E3),
  2992. OP32 ("str.w",
  2993. SOPCODE_INFO2 (0xd4000800,
  2994. (0_4, AREG, OPRND_SHIFT_0_BIT),
  2995. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  2996. (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
  2997. CSKYV2_ISA_2E3),
  2998. OP32 ("stm",
  2999. OPCODE_INFO2 (0xd4001c20,
  3000. (0_4or21_25, REGLIST_DASH, OPRND_SHIFT_0_BIT),
  3001. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  3002. CSKYV2_ISA_1E2),
  3003. OP32 ("stq",
  3004. OPCODE_INFO2 (0xd4801c23,
  3005. (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
  3006. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  3007. CSKYV2_ISA_2E3),
  3008. OP32 ("ld.bs",
  3009. SOPCODE_INFO2 (0xd8004000,
  3010. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3011. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3012. (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
  3013. CSKYV2_ISA_1E2),
  3014. OP32 ("ldbs",
  3015. SOPCODE_INFO2 (0xd8004000,
  3016. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3017. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3018. (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
  3019. CSKYV2_ISA_1E2),
  3020. OP32 ("ld.hs",
  3021. SOPCODE_INFO2 (0xd8005000,
  3022. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3023. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3024. (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
  3025. CSKYV2_ISA_1E2),
  3026. OP32 ("ldhs",
  3027. SOPCODE_INFO2 (0xd8005000,
  3028. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3029. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3030. (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
  3031. CSKYV2_ISA_1E2),
  3032. OP32 ("ld.d",
  3033. SOPCODE_INFO2 (0xd8003000,
  3034. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3035. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3036. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3037. CSKYV2_ISA_3E7),
  3038. OP32 ("ldex.w",
  3039. SOPCODE_INFO2 (0xd8007000,
  3040. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3041. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3042. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3043. CSKY_ISA_MP_1E2),
  3044. OP32 ("ldexw",
  3045. SOPCODE_INFO2 (0xd8007000,
  3046. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3047. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3048. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3049. CSKY_ISA_MP_1E2),
  3050. OP32 ("ldex",
  3051. SOPCODE_INFO2 (0xd8007000,
  3052. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3053. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3054. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3055. CSKY_ISA_MP_1E2),
  3056. OP32 ("st.d",
  3057. SOPCODE_INFO2 (0xdc003000,
  3058. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3059. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3060. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3061. CSKYV2_ISA_3E7),
  3062. OP32 ("stex.w",
  3063. SOPCODE_INFO2 (0xdc007000,
  3064. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3065. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3066. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3067. CSKY_ISA_MP_1E2),
  3068. OP32 ("stexw",
  3069. SOPCODE_INFO2 (0xdc007000,
  3070. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3071. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3072. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3073. CSKY_ISA_MP_1E2),
  3074. OP32 ("stex",
  3075. SOPCODE_INFO2 (0xdc007000,
  3076. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3077. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3078. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3079. CSKY_ISA_MP_1E2),
  3080. DOP32 ("andi",
  3081. OPCODE_INFO3 (0xe4002000,
  3082. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3083. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3084. (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
  3085. OPCODE_INFO2 (0xe4002000,
  3086. (16_20or21_25, DUP_AREG, OPRND_SHIFT_0_BIT),
  3087. (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
  3088. CSKYV2_ISA_1E2),
  3089. OP32 ("andni",
  3090. OPCODE_INFO3 (0xe4003000,
  3091. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3092. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3093. (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
  3094. CSKYV2_ISA_1E2),
  3095. OP32 ("xori",
  3096. OPCODE_INFO3 (0xe4004000,
  3097. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3098. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3099. (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
  3100. CSKYV2_ISA_1E2),
  3101. OP32 ("ins",
  3102. OPCODE_INFO4 (0xc4005c00,
  3103. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3104. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3105. (5_9, MSB2SIZE, OPRND_SHIFT_0_BIT),
  3106. (0_4, LSB2SIZE, OPRND_SHIFT_0_BIT)),
  3107. CSKYV2_ISA_2E3),
  3108. #undef _TRANSFER
  3109. #undef _RELOC32
  3110. #define _TRANSFER 1
  3111. #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
  3112. OP32 ("jmpi",
  3113. OPCODE_INFO1 (0xeac00000,
  3114. (0_15, OFF16b, OPRND_SHIFT_2_BIT)),
  3115. CSKYV2_ISA_2E3),
  3116. #undef _TRANSFER
  3117. #undef _RELOC32
  3118. #define _TRANSFER 0
  3119. #define _RELOC32 0
  3120. OP32 ("fadds",
  3121. OPCODE_INFO3 (0xf4000000,
  3122. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3123. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3124. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3125. CSKY_ISA_FLOAT_E1),
  3126. OP32 ("fsubs",
  3127. OPCODE_INFO3 (0xf4000020,
  3128. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3129. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3130. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3131. CSKY_ISA_FLOAT_E1),
  3132. OP32 ("fmovs",
  3133. OPCODE_INFO2 (0xf4000080,
  3134. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3135. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3136. CSKY_ISA_FLOAT_E1),
  3137. OP32 ("fabss",
  3138. OPCODE_INFO2 (0xf40000c0,
  3139. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3140. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3141. CSKY_ISA_FLOAT_E1),
  3142. OP32 ("fnegs",
  3143. OPCODE_INFO2 (0xf40000e0,
  3144. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3145. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3146. CSKY_ISA_FLOAT_E1),
  3147. OP32 ("fcmpzhss",
  3148. OPCODE_INFO1 (0xf4000100,
  3149. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3150. CSKY_ISA_FLOAT_E1),
  3151. OP32 ("fcmpzlss",
  3152. OPCODE_INFO1 (0xf4000120,
  3153. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3154. CSKY_ISA_FLOAT_E1),
  3155. OP32 ("fcmpznes",
  3156. OPCODE_INFO1 (0xf4000140,
  3157. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3158. CSKY_ISA_FLOAT_E1),
  3159. OP32 ("fcmpzuos",
  3160. OPCODE_INFO1 (0xf4000160,
  3161. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3162. CSKY_ISA_FLOAT_E1),
  3163. OP32 ("fcmphss",
  3164. OPCODE_INFO2 (0xf4000180,
  3165. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3166. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3167. CSKY_ISA_FLOAT_E1),
  3168. OP32 ("fcmplts",
  3169. OPCODE_INFO2 (0xf40001a0,
  3170. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3171. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3172. CSKY_ISA_FLOAT_E1),
  3173. OP32 ("fcmpnes",
  3174. OPCODE_INFO2 (0xf40001c0,
  3175. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3176. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3177. CSKY_ISA_FLOAT_E1),
  3178. OP32 ("fcmpuos",
  3179. OPCODE_INFO2 (0xf40001e0,
  3180. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3181. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3182. CSKY_ISA_FLOAT_E1),
  3183. OP32 ("fmuls",
  3184. OPCODE_INFO3 (0xf4000200,
  3185. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3186. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3187. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3188. CSKY_ISA_FLOAT_E1),
  3189. OP32 ("fmacs",
  3190. OPCODE_INFO3 (0xf4000280,
  3191. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3192. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3193. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3194. CSKY_ISA_FLOAT_E1),
  3195. OP32 ("fmscs",
  3196. OPCODE_INFO3 (0xf40002a0,
  3197. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3198. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3199. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3200. CSKY_ISA_FLOAT_E1),
  3201. OP32 ("fnmacs",
  3202. OPCODE_INFO3 (0xf40002c0,
  3203. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3204. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3205. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3206. CSKY_ISA_FLOAT_E1),
  3207. OP32 ("fnmscs",
  3208. OPCODE_INFO3 (0xf40002e0,
  3209. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3210. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3211. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3212. CSKY_ISA_FLOAT_E1),
  3213. OP32 ("fnmuls",
  3214. OPCODE_INFO3 (0xf4000220,
  3215. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3216. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3217. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3218. CSKY_ISA_FLOAT_E1),
  3219. OP32 ("fdivs",
  3220. OPCODE_INFO3 (0xf4000300,
  3221. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3222. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3223. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3224. CSKY_ISA_FLOAT_E1),
  3225. OP32 ("frecips",
  3226. OPCODE_INFO2 (0xf4000320,
  3227. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3228. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3229. CSKY_ISA_FLOAT_E1),
  3230. OP32 ("fsqrts",
  3231. OPCODE_INFO2 (0xf4000340,
  3232. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3233. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3234. CSKY_ISA_FLOAT_E1),
  3235. OP32 ("faddd",
  3236. OPCODE_INFO3 (0xf4000800,
  3237. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3238. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3239. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3240. CSKY_ISA_FLOAT_1E2),
  3241. OP32 ("fsubd",
  3242. OPCODE_INFO3 (0xf4000820,
  3243. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3244. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3245. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3246. CSKY_ISA_FLOAT_1E2),
  3247. OP32 ("fmovd",
  3248. OPCODE_INFO2 (0xf4000880,
  3249. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3250. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3251. CSKY_ISA_FLOAT_1E2),
  3252. OP32 ("fabsd",
  3253. OPCODE_INFO2 (0xf40008c0,
  3254. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3255. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3256. CSKY_ISA_FLOAT_1E2),
  3257. OP32 ("fnegd",
  3258. OPCODE_INFO2 (0xf40008e0,
  3259. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3260. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3261. CSKY_ISA_FLOAT_1E2),
  3262. OP32 ("fcmpzhsd",
  3263. OPCODE_INFO1 (0xf4000900,
  3264. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3265. CSKY_ISA_FLOAT_1E2),
  3266. OP32 ("fcmpzlsd",
  3267. OPCODE_INFO1 (0xf4000920,
  3268. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3269. CSKY_ISA_FLOAT_1E2),
  3270. OP32 ("fcmpzned",
  3271. OPCODE_INFO1 (0xf4000940,
  3272. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3273. CSKY_ISA_FLOAT_1E2),
  3274. OP32 ("fcmpzuod",
  3275. OPCODE_INFO1 (0xf4000960,
  3276. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3277. CSKY_ISA_FLOAT_1E2),
  3278. OP32 ("fcmphsd",
  3279. OPCODE_INFO2 (0xf4000980,
  3280. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3281. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3282. CSKY_ISA_FLOAT_1E2),
  3283. OP32 ("fcmpltd",
  3284. OPCODE_INFO2 (0xf40009a0,
  3285. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3286. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3287. CSKY_ISA_FLOAT_1E2),
  3288. OP32 ("fcmpned",
  3289. OPCODE_INFO2 (0xf40009c0,
  3290. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3291. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3292. CSKY_ISA_FLOAT_1E2),
  3293. OP32 ("fcmpuod",
  3294. OPCODE_INFO2 (0xf40009e0,
  3295. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3296. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3297. CSKY_ISA_FLOAT_1E2),
  3298. OP32 ("fmuld",
  3299. OPCODE_INFO3 (0xf4000a00,
  3300. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3301. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3302. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3303. CSKY_ISA_FLOAT_1E2),
  3304. OP32 ("fnmuld",
  3305. OPCODE_INFO3 (0xf4000a20,
  3306. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3307. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3308. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3309. CSKY_ISA_FLOAT_1E2),
  3310. OP32 ("fmacd",
  3311. OPCODE_INFO3 (0xf4000a80,
  3312. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3313. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3314. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3315. CSKY_ISA_FLOAT_1E2),
  3316. OP32 ("fmscd",
  3317. OPCODE_INFO3 (0xf4000aa0,
  3318. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3319. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3320. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3321. CSKY_ISA_FLOAT_1E2),
  3322. OP32 ("fnmacd",
  3323. OPCODE_INFO3 (0xf4000ac0,
  3324. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3325. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3326. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3327. CSKY_ISA_FLOAT_1E2),
  3328. OP32 ("fnmscd",
  3329. OPCODE_INFO3 (0xf4000ae0,
  3330. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3331. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3332. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3333. CSKY_ISA_FLOAT_1E2),
  3334. OP32 ("fdivd",
  3335. OPCODE_INFO3 (0xf4000b00,
  3336. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3337. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3338. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3339. CSKY_ISA_FLOAT_1E2),
  3340. OP32 ("frecipd",
  3341. OPCODE_INFO2 (0xf4000b20,
  3342. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3343. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3344. CSKY_ISA_FLOAT_1E2),
  3345. OP32 ("fsqrtd",
  3346. OPCODE_INFO2 (0xf4000b40,
  3347. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3348. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3349. CSKY_ISA_FLOAT_1E2),
  3350. OP32 ("faddm",
  3351. OPCODE_INFO3 (0xf4001000,
  3352. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3353. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3354. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3355. CSKY_ISA_FLOAT_1E2),
  3356. OP32 ("fsubm",
  3357. OPCODE_INFO3 (0xf4001020,
  3358. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3359. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3360. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3361. CSKY_ISA_FLOAT_1E2),
  3362. OP32 ("fmovm",
  3363. OPCODE_INFO2 (0xf4001080,
  3364. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3365. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3366. CSKY_ISA_FLOAT_1E2),
  3367. OP32 ("fabsm",
  3368. OPCODE_INFO2 (0xf40010c0,
  3369. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3370. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3371. CSKY_ISA_FLOAT_1E2),
  3372. OP32 ("fnegm",
  3373. OPCODE_INFO2 (0xf40010e0,
  3374. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3375. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3376. CSKY_ISA_FLOAT_1E2),
  3377. OP32 ("fmulm",
  3378. OPCODE_INFO3 (0xf4001200,
  3379. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3380. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3381. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3382. CSKY_ISA_FLOAT_1E2),
  3383. OP32 ("fnmulm",
  3384. OPCODE_INFO3 (0xf4001220,
  3385. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3386. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3387. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3388. CSKY_ISA_FLOAT_1E2),
  3389. OP32 ("fmacm",
  3390. OPCODE_INFO3 (0xf4001280,
  3391. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3392. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3393. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3394. CSKY_ISA_FLOAT_1E2),
  3395. OP32 ("fmscm",
  3396. OPCODE_INFO3 (0xf40012a0,
  3397. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3398. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3399. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3400. CSKY_ISA_FLOAT_1E2),
  3401. OP32 ("fnmacm",
  3402. OPCODE_INFO3 (0xf40012c0,
  3403. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3404. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3405. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3406. CSKY_ISA_FLOAT_1E2),
  3407. OP32 ("fnmscm",
  3408. OPCODE_INFO3 (0xf40012e0,
  3409. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3410. (16_19, FREG, OPRND_SHIFT_0_BIT),
  3411. (21_24, FREG, OPRND_SHIFT_0_BIT)),
  3412. CSKY_ISA_FLOAT_1E2),
  3413. OP32 ("fstosi.rn",
  3414. OPCODE_INFO2 (0xf4001800,
  3415. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3416. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3417. CSKY_ISA_FLOAT_E1),
  3418. OP32 ("fstosi.rz",
  3419. OPCODE_INFO2 (0xf4001820,
  3420. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3421. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3422. CSKY_ISA_FLOAT_E1),
  3423. OP32 ("fstosi.rpi",
  3424. OPCODE_INFO2 (0xf4001840,
  3425. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3426. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3427. CSKY_ISA_FLOAT_E1),
  3428. OP32 ("fstosi.rni",
  3429. OPCODE_INFO2 (0xf4001860,
  3430. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3431. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3432. CSKY_ISA_FLOAT_E1),
  3433. OP32 ("fstoui.rn",
  3434. OPCODE_INFO2 (0xf4001880,
  3435. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3436. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3437. CSKY_ISA_FLOAT_E1),
  3438. OP32 ("fstoui.rz",
  3439. OPCODE_INFO2 (0xf40018a0,
  3440. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3441. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3442. CSKY_ISA_FLOAT_E1),
  3443. OP32 ("fstoui.rpi",
  3444. OPCODE_INFO2 (0xf40018c0,
  3445. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3446. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3447. CSKY_ISA_FLOAT_E1),
  3448. OP32 ("fstoui.rni",
  3449. OPCODE_INFO2 (0xf40018e0,
  3450. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3451. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3452. CSKY_ISA_FLOAT_E1),
  3453. OP32 ("fdtosi.rn",
  3454. OPCODE_INFO2 (0xf4001900,
  3455. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3456. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3457. CSKY_ISA_FLOAT_1E2),
  3458. OP32 ("fdtosi.rz",
  3459. OPCODE_INFO2 (0xf4001920,
  3460. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3461. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3462. CSKY_ISA_FLOAT_1E2),
  3463. OP32 ("fdtosi.rpi",
  3464. OPCODE_INFO2 (0xf4001940,
  3465. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3466. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3467. CSKY_ISA_FLOAT_1E2),
  3468. OP32 ("fdtosi.rni",
  3469. OPCODE_INFO2 (0xf4001960,
  3470. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3471. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3472. CSKY_ISA_FLOAT_1E2),
  3473. OP32 ("fdtoui.rn",
  3474. OPCODE_INFO2 (0xf4001980,
  3475. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3476. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3477. CSKY_ISA_FLOAT_1E2),
  3478. OP32 ("fdtoui.rz",
  3479. OPCODE_INFO2 (0xf40019a0,
  3480. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3481. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3482. CSKY_ISA_FLOAT_1E2),
  3483. OP32 ("fdtoui.rpi",
  3484. OPCODE_INFO2 (0xf40019c0,
  3485. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3486. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3487. CSKY_ISA_FLOAT_1E2),
  3488. OP32 ("fdtoui.rni",
  3489. OPCODE_INFO2 (0xf40019e0,
  3490. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3491. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3492. CSKY_ISA_FLOAT_1E2),
  3493. OP32 ("fsitos",
  3494. OPCODE_INFO2 (0xf4001a00,
  3495. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3496. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3497. CSKY_ISA_FLOAT_E1),
  3498. OP32 ("fuitos",
  3499. OPCODE_INFO2 (0xf4001a20,
  3500. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3501. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3502. CSKY_ISA_FLOAT_E1),
  3503. OP32 ("fsitod",
  3504. OPCODE_INFO2 (0xf4001a80,
  3505. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3506. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3507. CSKY_ISA_FLOAT_1E2),
  3508. OP32 ("fuitod",
  3509. OPCODE_INFO2 (0xf4001aa0,
  3510. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3511. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3512. CSKY_ISA_FLOAT_1E2),
  3513. OP32 ("fdtos",
  3514. OPCODE_INFO2 (0xf4001ac0,
  3515. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3516. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3517. CSKY_ISA_FLOAT_1E2),
  3518. OP32 ("fstod",
  3519. OPCODE_INFO2 (0xf4001ae0,
  3520. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3521. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3522. CSKY_ISA_FLOAT_1E2),
  3523. OP32 ("fmfvrh",
  3524. OPCODE_INFO2 (0xf4001b00,
  3525. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3526. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3527. CSKY_ISA_FLOAT_1E2),
  3528. OP32 ("fmfvrl",
  3529. OPCODE_INFO2 (0xf4001b20,
  3530. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3531. (16_19, FREG, OPRND_SHIFT_0_BIT)),
  3532. CSKY_ISA_FLOAT_E1),
  3533. OP32 ("fmtvrh",
  3534. OPCODE_INFO2 (0xf4001b40,
  3535. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3536. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  3537. CSKY_ISA_FLOAT_1E2),
  3538. OP32 ("fmtvrl",
  3539. OPCODE_INFO2 (0xf4001b60,
  3540. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3541. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  3542. CSKY_ISA_FLOAT_E1),
  3543. OP32 ("flds",
  3544. SOPCODE_INFO2 (0xf4002000,
  3545. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3546. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3547. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
  3548. CSKY_ISA_FLOAT_E1),
  3549. OP32 ("fldd",
  3550. SOPCODE_INFO2 (0xf4002100,
  3551. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3552. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3553. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
  3554. CSKY_ISA_FLOAT_1E2),
  3555. OP32 ("fldm",
  3556. SOPCODE_INFO2 (0xf4002200,
  3557. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3558. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3559. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
  3560. CSKY_ISA_FLOAT_1E2),
  3561. OP32 ("fsts",
  3562. SOPCODE_INFO2 (0xf4002400,
  3563. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3564. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3565. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
  3566. CSKY_ISA_FLOAT_E1),
  3567. OP32 ("fstd",
  3568. SOPCODE_INFO2 (0xf4002500,
  3569. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3570. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3571. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
  3572. CSKY_ISA_FLOAT_1E2),
  3573. OP32 ("fstm",
  3574. SOPCODE_INFO2 (0xf4002600,
  3575. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3576. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3577. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
  3578. CSKY_ISA_FLOAT_1E2),
  3579. OP32 ("fldrs",
  3580. SOPCODE_INFO2 (0xf4002800,
  3581. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3582. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3583. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  3584. CSKY_ISA_FLOAT_E1),
  3585. OP32 ("fstrs",
  3586. SOPCODE_INFO2 (0xf4002c00,
  3587. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3588. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3589. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  3590. CSKY_ISA_FLOAT_E1),
  3591. OP32 ("fldrd",
  3592. SOPCODE_INFO2 (0xf4002900,
  3593. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3594. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3595. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  3596. CSKY_ISA_FLOAT_1E2),
  3597. OP32 ("fldrm",
  3598. SOPCODE_INFO2 (0xf4002a00,
  3599. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3600. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3601. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  3602. CSKY_ISA_FLOAT_1E2),
  3603. OP32 ("fstrd",
  3604. SOPCODE_INFO2 (0xf4002d00,
  3605. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3606. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3607. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  3608. CSKY_ISA_FLOAT_1E2),
  3609. OP32 ("fstrm",
  3610. SOPCODE_INFO2 (0xf4002e00,
  3611. (0_3, FREG, OPRND_SHIFT_0_BIT),
  3612. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3613. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  3614. CSKY_ISA_FLOAT_1E2),
  3615. OP32 ("fldms",
  3616. OPCODE_INFO2 (0xf4003000,
  3617. (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  3618. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  3619. CSKY_ISA_FLOAT_E1),
  3620. OP32 ("fldmd",
  3621. OPCODE_INFO2 (0xf4003100,
  3622. (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  3623. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  3624. CSKY_ISA_FLOAT_1E2),
  3625. OP32 ("fldmm",
  3626. OPCODE_INFO2 (0xf4003200,
  3627. (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  3628. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  3629. CSKY_ISA_FLOAT_1E2),
  3630. OP32 ("fstms",
  3631. OPCODE_INFO2 (0xf4003400,
  3632. (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  3633. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  3634. CSKY_ISA_FLOAT_E1),
  3635. OP32 ("fstmd",
  3636. OPCODE_INFO2 (0xf4003500,
  3637. (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  3638. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  3639. CSKY_ISA_FLOAT_1E2),
  3640. OP32 ("fstmm",
  3641. OPCODE_INFO2 (0xf4003600,
  3642. (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  3643. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  3644. CSKY_ISA_FLOAT_1E2),
  3645. DOP32 ("idly",
  3646. OPCODE_INFO1 (0xc0001c20,
  3647. (21_25, OIMM5b_IDLY, OPRND_SHIFT_0_BIT)),
  3648. OPCODE_INFO0 (0xc0601c20),
  3649. CSKYV2_ISA_E1),
  3650. #undef _RELOC32
  3651. #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM18BY2
  3652. OP32 ("grs",
  3653. OPCODE_INFO2 (0xcc0c0000,
  3654. (21_25, AREG, OPRND_SHIFT_0_BIT),
  3655. (0_17, IMM_OFF18b, OPRND_SHIFT_1_BIT)),
  3656. CSKYV2_ISA_2E3),
  3657. #undef _RELOC32
  3658. #define _RELOC32 0
  3659. DOP32 ("ixh",
  3660. OPCODE_INFO3 (0xc4000820,
  3661. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3662. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3663. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3664. OPCODE_INFO2 (0xc4000820,
  3665. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3666. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3667. CSKYV2_ISA_1E2),
  3668. DOP32 ("ixw",
  3669. OPCODE_INFO3 (0xc4000840,
  3670. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3671. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3672. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3673. OPCODE_INFO2 (0xc4000840,
  3674. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3675. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3676. CSKYV2_ISA_1E2),
  3677. OP32 ("ixd",
  3678. OPCODE_INFO3 (0xc4000880,
  3679. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3680. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3681. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3682. CSKYV2_ISA_2E3),
  3683. DOP32 ("divu",
  3684. OPCODE_INFO3 (0xc4008020,
  3685. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3686. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3687. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3688. OPCODE_INFO2 (0xc4008020,
  3689. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3690. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3691. CSKYV2_ISA_2E3),
  3692. DOP32 ("divs",
  3693. OPCODE_INFO3 (0xc4008040,
  3694. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3695. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3696. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3697. OPCODE_INFO2 (0xc4008040,
  3698. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3699. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3700. CSKYV2_ISA_2E3),
  3701. OP32 ("pldr",
  3702. SOPCODE_INFO1 (0xd8006000,
  3703. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3704. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3705. CSKY_ISA_CACHE),
  3706. OP32 ("pldw",
  3707. SOPCODE_INFO1 (0xdc006000,
  3708. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  3709. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  3710. CSKY_ISA_CACHE),
  3711. OP32 ("cprgr",
  3712. SOPCODE_INFO2 (0xfc000000,
  3713. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3714. ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
  3715. (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
  3716. CSKYV2_ISA_E1),
  3717. OP32 ("cpwgr",
  3718. SOPCODE_INFO2 (0xfc001000,
  3719. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3720. ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
  3721. (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
  3722. CSKYV2_ISA_E1),
  3723. OP32 ("cprcr",
  3724. SOPCODE_INFO2 (0xfc002000,
  3725. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3726. ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
  3727. (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
  3728. CSKYV2_ISA_E1),
  3729. OP32 ("cpwcr",
  3730. SOPCODE_INFO2 (0xfc003000,
  3731. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3732. ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
  3733. (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
  3734. CSKYV2_ISA_E1),
  3735. OP32 ("cprc",
  3736. SOPCODE_INFO1 (0xfc004000,
  3737. ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
  3738. (0_11, IMM12b, OPRND_SHIFT_0_BIT))),
  3739. CSKYV2_ISA_E1),
  3740. OP32 ("cpop",
  3741. SOPCODE_INFO1 (0xfc008000,
  3742. ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
  3743. (0_14or16_20 , IMM15b, OPRND_SHIFT_0_BIT))),
  3744. CSKYV2_ISA_E1),
  3745. OP16_OP32 ("push",
  3746. OPCODE_INFO_LIST (0x14c0,
  3747. (0_4, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
  3748. CSKYV2_ISA_E1,
  3749. OPCODE_INFO_LIST (0xebe00000,
  3750. (0_8, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
  3751. CSKYV2_ISA_2E3),
  3752. #undef _TRANSFER
  3753. #define _TRANSFER 2
  3754. OP16_OP32 ("pop",
  3755. OPCODE_INFO_LIST (0x1480,
  3756. (0_4, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
  3757. CSKYV2_ISA_E1,
  3758. OPCODE_INFO_LIST (0xebc00000,
  3759. (0_8, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
  3760. CSKYV2_ISA_2E3),
  3761. #undef _TRANSFER
  3762. #define _TRANSFER 0
  3763. OP16_OP32 ("movi",
  3764. OPCODE_INFO2 (0x3000,
  3765. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3766. (0_7, IMM8b, OPRND_SHIFT_0_BIT)),
  3767. CSKYV2_ISA_E1,
  3768. OPCODE_INFO2 (0xea000000,
  3769. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3770. (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
  3771. CSKYV2_ISA_1E2),
  3772. /* bmaski will transfer to movi when imm < 17. */
  3773. OP16_OP32 ("bmaski",
  3774. OPCODE_INFO2 (0x3000,
  3775. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3776. (0_7, IMM8b_BMASKI, OPRND_SHIFT_0_BIT)),
  3777. CSKYV2_ISA_1E2,
  3778. OPCODE_INFO2 (0xc4005020,
  3779. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3780. (21_25, OIMM5b_BMASKI, OPRND_SHIFT_0_BIT)),
  3781. CSKYV2_ISA_1E2),
  3782. OP16_OP32 ("cmphsi",
  3783. OPCODE_INFO2 (0x3800,
  3784. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3785. (0_4, OIMM5b, OPRND_SHIFT_0_BIT)),
  3786. CSKYV2_ISA_E1,
  3787. OPCODE_INFO2 (0xeb000000,
  3788. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3789. (0_15, OIMM16b, OPRND_SHIFT_0_BIT)),
  3790. CSKYV2_ISA_1E2),
  3791. OP16_OP32 ("cmplti",
  3792. OPCODE_INFO2 (0x3820,
  3793. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3794. (0_4, OIMM5b, OPRND_SHIFT_0_BIT)),
  3795. CSKYV2_ISA_E1,
  3796. OPCODE_INFO2 (0xeb200000,
  3797. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3798. (0_15, OIMM16b, OPRND_SHIFT_0_BIT)),
  3799. CSKYV2_ISA_1E2),
  3800. OP16_OP32 ("cmpnei",
  3801. OPCODE_INFO2 (0x3840,
  3802. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3803. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3804. CSKYV2_ISA_E1,
  3805. OPCODE_INFO2 (0xeb400000,
  3806. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3807. (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
  3808. CSKYV2_ISA_1E2),
  3809. #undef _TRANSFER
  3810. #define _TRANSFER 1
  3811. OP16_OP32 ("jmpix",
  3812. OPCODE_INFO2 (0x38e0,
  3813. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3814. (0_1, IMM2b_JMPIX, OPRND_SHIFT_0_BIT)),
  3815. CSKY_ISA_JAVA,
  3816. OPCODE_INFO2 (0xe9e00000,
  3817. (16_20, GREG0_7, OPRND_SHIFT_0_BIT),
  3818. (0_1, IMM2b_JMPIX, OPRND_SHIFT_0_BIT)),
  3819. CSKY_ISA_JAVA),
  3820. #undef _TRANSFER
  3821. #define _TRANSFER 0
  3822. DOP16_DOP32 ("bclri",
  3823. OPCODE_INFO2 (0x3880,
  3824. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3825. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3826. OPCODE_INFO3 (0x3880,
  3827. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3828. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  3829. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3830. CSKYV2_ISA_E1,
  3831. OPCODE_INFO3 (0xc4002820,
  3832. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3833. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3834. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3835. OPCODE_INFO2 (0xc4002820,
  3836. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3837. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3838. CSKYV2_ISA_1E2),
  3839. DOP16_DOP32 ("bseti",
  3840. OPCODE_INFO2 (0x38a0,
  3841. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3842. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3843. OPCODE_INFO3 (0x38a0,
  3844. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3845. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  3846. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3847. CSKYV2_ISA_E1,
  3848. OPCODE_INFO3 (0xc4002840,
  3849. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3850. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3851. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3852. OPCODE_INFO2 (0xc4002840,
  3853. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3854. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3855. CSKYV2_ISA_1E2),
  3856. OP16_OP32_WITH_WORK ("btsti",
  3857. OPCODE_INFO2 (0x38c0,
  3858. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3859. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3860. CSKYV2_ISA_E1,
  3861. OPCODE_INFO2 (0xc4002880,
  3862. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3863. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3864. CSKYV2_ISA_1E2, v2_work_btsti),
  3865. DOP16_DOP32 ("lsli",
  3866. OPCODE_INFO3 (0x4000,
  3867. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  3868. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3869. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3870. OPCODE_INFO2 (0x4000,
  3871. (5_7or8_10, DUP_GREG0_7, OPRND_SHIFT_0_BIT),
  3872. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3873. CSKYV2_ISA_E1,
  3874. OPCODE_INFO3 (0xc4004820,
  3875. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3876. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3877. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3878. OPCODE_INFO2 (0xc4004820,
  3879. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3880. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3881. CSKYV2_ISA_1E2),
  3882. DOP16_DOP32 ("lsri",
  3883. OPCODE_INFO3 (0x4800,
  3884. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  3885. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3886. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3887. OPCODE_INFO2 (0x4800,
  3888. (5_7or8_10, DUP_GREG0_7, OPRND_SHIFT_0_BIT),
  3889. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3890. CSKYV2_ISA_E1,
  3891. OPCODE_INFO3 (0xc4004840,
  3892. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3893. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3894. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3895. OPCODE_INFO2 (0xc4004840,
  3896. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3897. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3898. CSKYV2_ISA_1E2),
  3899. OP16_OP32 ("asri",
  3900. OPCODE_INFO3 (0x5000,
  3901. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  3902. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  3903. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  3904. CSKYV2_ISA_E1,
  3905. OPCODE_INFO3 (0xc4004880,
  3906. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3907. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3908. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  3909. CSKYV2_ISA_1E2),
  3910. DOP16_DOP32_WITH_WORK ("addc",
  3911. OPCODE_INFO2 (0x6001,
  3912. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  3913. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  3914. OPCODE_INFO3 (0x6001,
  3915. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  3916. (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
  3917. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  3918. CSKYV2_ISA_E1,
  3919. OPCODE_INFO3 (0xc4000040,
  3920. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3921. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3922. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3923. OPCODE_INFO2 (0xc4000040,
  3924. (0_4or16_20, AREG, OPRND_SHIFT_0_BIT),
  3925. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3926. CSKYV2_ISA_1E2,
  3927. v2_work_addc),
  3928. DOP16_DOP32 ("subc",
  3929. OPCODE_INFO2 (0x6003,
  3930. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  3931. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  3932. OPCODE_INFO3 (0x6003,
  3933. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  3934. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  3935. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  3936. CSKYV2_ISA_E1,
  3937. OPCODE_INFO3 (0xc4000100,
  3938. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3939. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3940. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3941. OPCODE_INFO2 (0xc4000100,
  3942. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3943. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3944. CSKYV2_ISA_1E2),
  3945. OP16_OP32 ("cmphs",
  3946. OPCODE_INFO2 (0x6400,
  3947. (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
  3948. (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
  3949. CSKYV2_ISA_E1,
  3950. OPCODE_INFO2 (0xc4000420,
  3951. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3952. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3953. CSKYV2_ISA_2E3),
  3954. OP16_OP32 ("cmplt",
  3955. OPCODE_INFO2 (0x6401,
  3956. (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
  3957. (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
  3958. CSKYV2_ISA_E1,
  3959. OPCODE_INFO2 (0xc4000440,
  3960. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3961. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3962. CSKYV2_ISA_2E3),
  3963. OP16_OP32 ("cmpne",
  3964. OPCODE_INFO2 (0x6402,
  3965. (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
  3966. (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
  3967. CSKYV2_ISA_E1,
  3968. OPCODE_INFO2 (0xc4000480,
  3969. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3970. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3971. CSKYV2_ISA_2E3),
  3972. OP16_OP32 ("mvcv",
  3973. OPCODE_INFO1 (0x6403,
  3974. (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
  3975. CSKYV2_ISA_E1,
  3976. OPCODE_INFO1 (0xc4000600,
  3977. (0_4, AREG, OPRND_SHIFT_0_BIT)),
  3978. CSKYV2_ISA_2E3),
  3979. DOP16_DOP32 ("and",
  3980. OPCODE_INFO2 (0x6800,
  3981. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  3982. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  3983. OPCODE_INFO3 (0x6800,
  3984. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  3985. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
  3986. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
  3987. CSKYV2_ISA_E1,
  3988. OPCODE_INFO3 (0xc4002020,
  3989. (0_4, AREG, OPRND_SHIFT_0_BIT),
  3990. (16_20, AREG, OPRND_SHIFT_0_BIT),
  3991. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3992. OPCODE_INFO2 (0xc4002020,
  3993. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  3994. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  3995. CSKYV2_ISA_1E2),
  3996. DOP16_DOP32 ("andn",
  3997. OPCODE_INFO2 (0x6801,
  3998. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  3999. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4000. OPCODE_INFO3 (0x6801,
  4001. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4002. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  4003. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4004. CSKYV2_ISA_E1,
  4005. OPCODE_INFO3 (0xc4002040,
  4006. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4007. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4008. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4009. OPCODE_INFO2 (0xc4002040,
  4010. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4011. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4012. CSKYV2_ISA_1E2),
  4013. OP16_OP32 ("tst",
  4014. OPCODE_INFO2 (0x6802,
  4015. (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
  4016. (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
  4017. CSKYV2_ISA_E1,
  4018. OPCODE_INFO2 (0xc4002080,
  4019. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4020. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4021. CSKYV2_ISA_2E3),
  4022. OP16_OP32 ("tstnbz",
  4023. OPCODE_INFO1 (0x6803,
  4024. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4025. CSKYV2_ISA_E1,
  4026. OPCODE_INFO1 (0xc4002100,
  4027. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4028. CSKYV2_ISA_2E3),
  4029. DOP16_DOP32 ("or",
  4030. OPCODE_INFO2 (0x6c00,
  4031. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4032. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4033. OPCODE_INFO3 (0x6c00,
  4034. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4035. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
  4036. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
  4037. CSKYV2_ISA_E1,
  4038. OPCODE_INFO3 (0xc4002420,
  4039. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4040. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4041. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4042. OPCODE_INFO2 (0xc4002420,
  4043. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4044. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4045. CSKYV2_ISA_1E2),
  4046. DOP16_DOP32 ("xor",
  4047. OPCODE_INFO2 (0x6c01,
  4048. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4049. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4050. OPCODE_INFO3 (0x6c01,
  4051. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4052. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
  4053. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
  4054. CSKYV2_ISA_E1,
  4055. OPCODE_INFO3 (0xc4002440,
  4056. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4057. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4058. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4059. OPCODE_INFO2 (0xc4002440,
  4060. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4061. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4062. CSKYV2_ISA_1E2),
  4063. DOP16_DOP32 ("nor",
  4064. OPCODE_INFO2 (0x6c02,
  4065. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4066. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4067. OPCODE_INFO3 (0x6c02,
  4068. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4069. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
  4070. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
  4071. CSKYV2_ISA_E1,
  4072. OPCODE_INFO3 (0xc4002480,
  4073. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4074. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4075. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4076. OPCODE_INFO2 (0xc4002480,
  4077. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4078. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4079. CSKYV2_ISA_1E2),
  4080. OP16_OP32 ("mov",
  4081. OPCODE_INFO2 (0x6c03,
  4082. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4083. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4084. CSKYV2_ISA_E1,
  4085. OPCODE_INFO2 (0xc4004820,
  4086. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4087. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4088. CSKYV2_ISA_1E2),
  4089. OP16_OP32 ("nop",
  4090. OPCODE_INFO0 (0x6c03),
  4091. CSKYV2_ISA_E1,
  4092. OPCODE_INFO0 (0xc4004820),
  4093. CSKYV2_ISA_E1),
  4094. DOP16_DOP32 ("lsl",
  4095. OPCODE_INFO2 (0x7000,
  4096. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4097. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4098. OPCODE_INFO3 (0x7000,
  4099. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4100. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  4101. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4102. CSKYV2_ISA_E1,
  4103. OPCODE_INFO3 (0xc4004020,
  4104. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4105. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4106. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4107. OPCODE_INFO2 (0xc4004020,
  4108. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4109. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4110. CSKYV2_ISA_1E2),
  4111. DOP16_DOP32 ("lsr",
  4112. OPCODE_INFO2 (0x7001,
  4113. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4114. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4115. OPCODE_INFO3 (0x7001,
  4116. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4117. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  4118. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4119. CSKYV2_ISA_E1,
  4120. OPCODE_INFO3 (0xc4004040,
  4121. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4122. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4123. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4124. OPCODE_INFO2 (0xc4004040,
  4125. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4126. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4127. CSKYV2_ISA_1E2),
  4128. DOP16_DOP32 ("asr",
  4129. OPCODE_INFO2 (0x7002,
  4130. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4131. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4132. OPCODE_INFO3 (0x7002,
  4133. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4134. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  4135. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4136. CSKYV2_ISA_E1,
  4137. OPCODE_INFO3 (0xc4004080,
  4138. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4139. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4140. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4141. OPCODE_INFO2 (0xc4004080,
  4142. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4143. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4144. CSKYV2_ISA_1E2),
  4145. DOP16_DOP32 ("rotl",
  4146. OPCODE_INFO2 (0x7003,
  4147. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4148. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4149. OPCODE_INFO3 (0x7003,
  4150. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4151. (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
  4152. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4153. CSKYV2_ISA_E1,
  4154. OPCODE_INFO3 (0xc4004100,
  4155. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4156. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4157. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4158. OPCODE_INFO2 (0xc4004100,
  4159. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4160. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4161. CSKYV2_ISA_1E2),
  4162. DOP16_DOP32 ("zextb",
  4163. OPCODE_INFO2 (0x7400,
  4164. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4165. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4166. OPCODE_INFO1 (0x7400,
  4167. (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
  4168. CSKYV2_ISA_E1,
  4169. OPCODE_INFO2 (0xc40054e0,
  4170. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4171. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4172. OPCODE_INFO1 (0xc40054e0,
  4173. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  4174. CSKYV2_ISA_2E3),
  4175. DOP16_DOP32 ("zexth",
  4176. OPCODE_INFO2 (0x7401,
  4177. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4178. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4179. OPCODE_INFO1 (0x7401,
  4180. (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
  4181. CSKYV2_ISA_E1,
  4182. OPCODE_INFO2 (0xc40055e0,
  4183. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4184. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4185. OPCODE_INFO1 (0xc40055e0,
  4186. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  4187. CSKYV2_ISA_2E3),
  4188. DOP16_DOP32 ("sextb",
  4189. OPCODE_INFO2 (0x7402,
  4190. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4191. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4192. OPCODE_INFO1 (0x7402,
  4193. (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
  4194. CSKYV2_ISA_E1,
  4195. OPCODE_INFO2 (0xc40058e0,
  4196. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4197. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4198. OPCODE_INFO1 (0xc40058e0,
  4199. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  4200. CSKYV2_ISA_2E3),
  4201. DOP16_DOP32 ("sexth",
  4202. OPCODE_INFO2 (0x7403,
  4203. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4204. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4205. OPCODE_INFO1 (0x7403,
  4206. (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
  4207. CSKYV2_ISA_E1,
  4208. OPCODE_INFO2 (0xc40059e0,
  4209. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4210. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4211. OPCODE_INFO1 (0xc40059e0,
  4212. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  4213. CSKYV2_ISA_2E3),
  4214. OP32 ("zext",
  4215. OPCODE_INFO4 (0xc4005400,
  4216. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4217. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4218. (5_9, IMM5b, OPRND_SHIFT_0_BIT),
  4219. (21_25, IMM5b_LS, OPRND_SHIFT_0_BIT)),
  4220. CSKYV2_ISA_2E3),
  4221. OP32 ("sext",
  4222. OPCODE_INFO4 (0xc4005800,
  4223. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4224. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4225. (5_9, IMM5b, OPRND_SHIFT_0_BIT),
  4226. (21_25, IMM5b_LS, OPRND_SHIFT_0_BIT)),
  4227. CSKYV2_ISA_2E3),
  4228. #undef _TRANSFER
  4229. #define _TRANSFER 2
  4230. OP16_OP32 ("rts",
  4231. OPCODE_INFO0 (0x783c),
  4232. CSKYV2_ISA_E1,
  4233. OPCODE_INFO0 (0xe8cf0000),
  4234. CSKYV2_ISA_E1),
  4235. #undef _TRANSFER
  4236. #define _TRANSFER 1
  4237. OP16_OP32 ("jmp",
  4238. OPCODE_INFO1 (0x7800,
  4239. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4240. CSKYV2_ISA_E1,
  4241. OPCODE_INFO1 (0xe8c00000,
  4242. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4243. CSKYV2_ISA_2E3),
  4244. #undef _TRANSFER
  4245. #define _TRANSFER 0
  4246. OP16_OP32 ("revb",
  4247. OPCODE_INFO2 (0x7802,
  4248. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4249. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4250. CSKYV2_ISA_1E2,
  4251. OPCODE_INFO2 (0xc4006080,
  4252. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4253. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4254. CSKYV2_ISA_2E3),
  4255. OP16_OP32 ("revh",
  4256. OPCODE_INFO2 (0x7803,
  4257. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4258. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4259. CSKYV2_ISA_1E2,
  4260. OPCODE_INFO2 (0xc4006100,
  4261. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4262. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4263. CSKYV2_ISA_2E3),
  4264. OP16_OP32 ("jsr",
  4265. OPCODE_INFO1 (0x7bc1,
  4266. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4267. CSKYV2_ISA_E1,
  4268. OPCODE_INFO1 (0xe8e00000,
  4269. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4270. CSKYV2_ISA_2E3),
  4271. DOP16_DOP32 ("mult",
  4272. OPCODE_INFO2 (0x7c00,
  4273. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4274. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4275. OPCODE_INFO3 (0x7c00,
  4276. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4277. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
  4278. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
  4279. CSKYV2_ISA_E1,
  4280. OPCODE_INFO3 (0xc4008420,
  4281. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4282. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4283. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4284. OPCODE_INFO2 (0xc4008420,
  4285. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4286. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4287. CSKYV2_ISA_1E2),
  4288. OP16 ("mul",
  4289. OPCODE_INFO2 (0x7c00,
  4290. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4291. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4292. CSKYV2_ISA_E1),
  4293. DOP16_DOP32 ("mulsh",
  4294. OPCODE_INFO2 (0x7c01,
  4295. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4296. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4297. OPCODE_INFO3 (0x7c01,
  4298. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4299. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
  4300. (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
  4301. CSKYV2_ISA_2E3,
  4302. OPCODE_INFO3 (0xc4009020,
  4303. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4304. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4305. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4306. OPCODE_INFO2 (0xc4009020,
  4307. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4308. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4309. CSKYV2_ISA_2E3),
  4310. OP16 ("muls.h",
  4311. OPCODE_INFO2 (0x7c01,
  4312. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4313. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4314. CSKYV2_ISA_2E3),
  4315. DOP32 ("mulsw",
  4316. OPCODE_INFO3 (0xc4009420,
  4317. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4318. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4319. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4320. OPCODE_INFO2 (0xc4009420,
  4321. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4322. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4323. CSKY_ISA_DSPE60),
  4324. OP16_OP32 ("ld.b",
  4325. SOPCODE_INFO2 (0x8000,
  4326. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4327. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4328. (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4329. CSKYV2_ISA_E1,
  4330. SOPCODE_INFO2 (0xd8000000,
  4331. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4332. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4333. (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4334. CSKYV2_ISA_E1),
  4335. OP16_OP32 ("ldb",
  4336. SOPCODE_INFO2 (0x8000,
  4337. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4338. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4339. (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4340. CSKYV2_ISA_E1,
  4341. SOPCODE_INFO2 (0xd8000000,
  4342. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4343. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4344. (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4345. CSKYV2_ISA_E1),
  4346. OP16_OP32 ("st.b",
  4347. SOPCODE_INFO2 (0xa000,
  4348. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4349. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4350. (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4351. CSKYV2_ISA_E1,
  4352. SOPCODE_INFO2 (0xdc000000,
  4353. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4354. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4355. (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4356. CSKYV2_ISA_E1),
  4357. OP16_OP32 ("stb",
  4358. SOPCODE_INFO2 (0xa000,
  4359. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4360. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4361. (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4362. CSKYV2_ISA_E1,
  4363. SOPCODE_INFO2 (0xdc000000,
  4364. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4365. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4366. (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4367. CSKYV2_ISA_E1),
  4368. OP16_OP32 ("ld.h",
  4369. SOPCODE_INFO2 (0x8800,
  4370. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4371. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4372. (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
  4373. CSKYV2_ISA_E1,
  4374. SOPCODE_INFO2 (0xd8001000,
  4375. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4376. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4377. (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
  4378. CSKYV2_ISA_E1),
  4379. OP16_OP32 ("ldh",
  4380. SOPCODE_INFO2 (0x8800,
  4381. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4382. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4383. (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
  4384. CSKYV2_ISA_E1,
  4385. SOPCODE_INFO2 (0xd8001000,
  4386. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4387. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4388. (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
  4389. CSKYV2_ISA_E1),
  4390. OP16_OP32 ("st.h",
  4391. SOPCODE_INFO2 (0xa800,
  4392. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4393. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4394. (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
  4395. CSKYV2_ISA_E1,
  4396. SOPCODE_INFO2 (0xdc001000,
  4397. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4398. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4399. (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
  4400. CSKYV2_ISA_E1),
  4401. OP16_OP32 ("sth",
  4402. SOPCODE_INFO2 (0xa800,
  4403. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4404. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4405. (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
  4406. CSKYV2_ISA_E1,
  4407. SOPCODE_INFO2 (0xdc001000,
  4408. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4409. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4410. (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
  4411. CSKYV2_ISA_E1),
  4412. DOP16_OP32 ("ld.w",
  4413. SOPCODE_INFO2 (0x9000,
  4414. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4415. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4416. (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4417. SOPCODE_INFO2 (0x9800,
  4418. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4419. BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
  4420. (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4421. CSKYV2_ISA_E1,
  4422. SOPCODE_INFO2 (0xd8002000,
  4423. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4424. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4425. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4426. CSKYV2_ISA_E1),
  4427. DOP16_OP32 ("ldw",
  4428. SOPCODE_INFO2 (0x9000,
  4429. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4430. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4431. (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4432. SOPCODE_INFO2 (0x9800,
  4433. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4434. BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
  4435. (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4436. CSKYV2_ISA_E1,
  4437. SOPCODE_INFO2 (0xd8002000,
  4438. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4439. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4440. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4441. CSKYV2_ISA_E1),
  4442. DOP16_OP32 ("ld",
  4443. SOPCODE_INFO2 (0x9000,
  4444. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4445. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4446. (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
  4447. SOPCODE_INFO2 (0x9800,
  4448. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4449. BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
  4450. (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4451. CSKYV2_ISA_E1,
  4452. SOPCODE_INFO2 (0xd8002000,
  4453. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4454. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4455. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4456. CSKYV2_ISA_E1),
  4457. DOP16_OP32 ("st.w",
  4458. SOPCODE_INFO2 (0xb000,
  4459. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4460. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4461. (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4462. SOPCODE_INFO2 (0xb800,
  4463. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4464. BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
  4465. (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4466. CSKYV2_ISA_E1,
  4467. SOPCODE_INFO2 (0xdc002000,
  4468. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4469. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4470. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4471. CSKYV2_ISA_E1),
  4472. DOP16_OP32 ("stw",
  4473. SOPCODE_INFO2 (0xb000,
  4474. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4475. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4476. (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4477. SOPCODE_INFO2 (0xb800,
  4478. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4479. BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
  4480. (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4481. CSKYV2_ISA_E1,
  4482. SOPCODE_INFO2 (0xdc002000,
  4483. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4484. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4485. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4486. CSKYV2_ISA_E1),
  4487. DOP16_OP32 ("st",
  4488. SOPCODE_INFO2 (0xb000,
  4489. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4490. BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4491. (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4492. SOPCODE_INFO2 (0xb800,
  4493. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4494. BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
  4495. (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4496. CSKYV2_ISA_E1,
  4497. SOPCODE_INFO2 (0xdc002000,
  4498. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4499. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  4500. (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
  4501. CSKYV2_ISA_E1),
  4502. #ifdef BUILD_AS
  4503. DOP16_DOP32_WITH_WORK ("addi",
  4504. OPCODE_INFO2 (0x2000,
  4505. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4506. (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
  4507. OPCODE_INFO3 (0x2000,
  4508. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4509. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4510. (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
  4511. CSKYV2_ISA_E1,
  4512. OPCODE_INFO2 (0xe4000000,
  4513. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4514. (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
  4515. OPCODE_INFO3 (0xe4000000,
  4516. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4517. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4518. (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
  4519. CSKYV2_ISA_1E2,
  4520. v2_work_addi),
  4521. #else
  4522. DOP16 ("addi",
  4523. OPCODE_INFO2 (0x2000,
  4524. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4525. (0_7, OIMM8b, OPRND_SHIFT_0_BIT)),
  4526. OPCODE_INFO3 (0x5802,
  4527. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4528. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4529. (2_4, OIMM3b, OPRND_SHIFT_0_BIT)),
  4530. CSKYV2_ISA_E1),
  4531. DOP16 ("addi",
  4532. OPCODE_INFO3 (0x1800,
  4533. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4534. (NONE, REGsp, OPRND_SHIFT_0_BIT),
  4535. (0_7, IMM8b_LS2, OPRND_SHIFT_0_BIT)),
  4536. OPCODE_INFO3 (0x1400,
  4537. (NONE, REGsp, OPRND_SHIFT_0_BIT),
  4538. (NONE, REGsp, OPRND_SHIFT_0_BIT),
  4539. (0_4or8_9, IMM7b_LS2, OPRND_SHIFT_0_BIT)),
  4540. CSKYV2_ISA_E1),
  4541. DOP32 ("addi",
  4542. OPCODE_INFO3 (0xe4000000,
  4543. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4544. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4545. (0_11, OIMM12b, OPRND_SHIFT_0_BIT)),
  4546. OPCODE_INFO3 (0xcc1c0000,
  4547. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4548. (NONE, REG_r28, OPRND_SHIFT_0_BIT),
  4549. (0_17, OIMM18b, OPRND_SHIFT_0_BIT)),
  4550. CSKYV2_ISA_1E2),
  4551. #endif
  4552. #ifdef BUILD_AS
  4553. DOP16_DOP32_WITH_WORK ("subi",
  4554. OPCODE_INFO2 (0x2800,
  4555. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4556. (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
  4557. OPCODE_INFO3 (0x2800,
  4558. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4559. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4560. (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
  4561. CSKYV2_ISA_E1,
  4562. OPCODE_INFO2 (0xe4001000,
  4563. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4564. (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
  4565. OPCODE_INFO3 (0xe4001000,
  4566. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4567. (NONE, AREG, OPRND_SHIFT_0_BIT),
  4568. (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
  4569. CSKYV2_ISA_1E2, v2_work_subi),
  4570. #else
  4571. DOP16 ("subi",
  4572. OPCODE_INFO2 (0x2800,
  4573. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4574. (0_7, OIMM8b, OPRND_SHIFT_0_BIT)),
  4575. OPCODE_INFO3 (0x5803,
  4576. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4577. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4578. (2_4, OIMM3b, OPRND_SHIFT_0_BIT)),
  4579. CSKYV2_ISA_E1),
  4580. OP32 ("subi",
  4581. OPCODE_INFO3 (0xe4001000,
  4582. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4583. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4584. (0_11, OIMM12b, OPRND_SHIFT_0_BIT)),
  4585. CSKYV2_ISA_1E2),
  4586. OP16 ("subi",
  4587. OPCODE_INFO3 (0x1420,
  4588. (NONE, REGsp, OPRND_SHIFT_0_BIT),
  4589. (NONE, REGsp, OPRND_SHIFT_0_BIT),
  4590. (0_4or8_9, IMM7b_LS2, OPRND_SHIFT_0_BIT)),
  4591. CSKYV2_ISA_E1),
  4592. #endif
  4593. DOP16_DOP32_WITH_WORK ("addu",
  4594. OPCODE_INFO2 (0x6000,
  4595. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4596. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4597. OPCODE_INFO3 (0x5800,
  4598. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4599. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4600. (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
  4601. CSKYV2_ISA_E1,
  4602. OPCODE_INFO3 (0xc4000020,
  4603. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4604. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4605. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4606. OPCODE_INFO2 (0xc4000020,
  4607. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4608. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4609. CSKYV2_ISA_E1,
  4610. v2_work_add_sub),
  4611. DOP16_DOP32_WITH_WORK ("add",
  4612. OPCODE_INFO2 (0x6000,
  4613. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4614. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4615. OPCODE_INFO3 (0x5800,
  4616. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4617. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4618. (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
  4619. CSKYV2_ISA_E1,
  4620. OPCODE_INFO3 (0xc4000020,
  4621. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4622. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4623. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4624. OPCODE_INFO2 (0xc4000020,
  4625. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4626. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4627. CSKYV2_ISA_E1,
  4628. v2_work_add_sub),
  4629. DOP16_DOP32_WITH_WORK ("subu",
  4630. OPCODE_INFO2 (0x6002,
  4631. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4632. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4633. OPCODE_INFO3 (0x5801,
  4634. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4635. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4636. (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
  4637. CSKYV2_ISA_E1,
  4638. OPCODE_INFO3 (0xc4000080,
  4639. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4640. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4641. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4642. OPCODE_INFO2 (0xc4000080,
  4643. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4644. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4645. CSKYV2_ISA_E1,
  4646. v2_work_add_sub),
  4647. DOP16_DOP32_WITH_WORK ("sub",
  4648. OPCODE_INFO2 (0x6002,
  4649. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  4650. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  4651. OPCODE_INFO3 (0x5801,
  4652. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4653. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  4654. (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
  4655. CSKYV2_ISA_E1,
  4656. OPCODE_INFO3 (0xc4000080,
  4657. (0_4, AREG, OPRND_SHIFT_0_BIT),
  4658. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4659. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4660. OPCODE_INFO2 (0xc4000080,
  4661. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  4662. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  4663. CSKYV2_ISA_E1,
  4664. v2_work_add_sub),
  4665. OP32_WITH_WORK ("fmovis",
  4666. OPCODE_INFO2 (0xf4001c00,
  4667. (0_3, FREG, OPRND_SHIFT_0_BIT),
  4668. (4_7or16_24, SFLOAT, OPRND_SHIFT_2_BIT)),
  4669. CSKY_ISA_FLOAT_1E3,
  4670. float_work_fmovi),
  4671. OP32_WITH_WORK ("fmovid",
  4672. OPCODE_INFO2 (0xf4001e00,
  4673. (0_3, FREG, OPRND_SHIFT_0_BIT),
  4674. (4_7or16_24, DFLOAT, OPRND_SHIFT_2_BIT)),
  4675. CSKY_ISA_FLOAT_3E4,
  4676. float_work_fmovi),
  4677. #undef _RELOC32
  4678. #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM26BY2
  4679. OP32 ("bsr",
  4680. OPCODE_INFO1 (0xe0000000,
  4681. (0_25, OFF26b, OPRND_SHIFT_1_BIT)),
  4682. CSKYV2_ISA_E1),
  4683. #undef _RELOC32
  4684. #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18
  4685. OP32 ("lrs.b",
  4686. OPCODE_INFO2 (0xcc000000,
  4687. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4688. (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  4689. CSKYV2_ISA_2E3),
  4690. OP32 ("srs.b",
  4691. OPCODE_INFO2 (0xcc100000,
  4692. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4693. (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  4694. CSKYV2_ISA_2E3),
  4695. #undef _RELOC32
  4696. #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18BY2
  4697. OP32 ("lrs.h",
  4698. OPCODE_INFO2 (0xcc040000,
  4699. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4700. (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  4701. CSKYV2_ISA_2E3),
  4702. OP32 ("srs.h",
  4703. OPCODE_INFO2 (0xcc140000,
  4704. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4705. (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  4706. CSKYV2_ISA_2E3),
  4707. #undef _RELOC32
  4708. #define _RELOC32 BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
  4709. OP32 ("flrws",
  4710. OPCODE_INFO2 (0xf4003800,
  4711. (0_3, FREG, OPRND_SHIFT_0_BIT),
  4712. (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
  4713. CSKY_ISA_FLOAT_1E3),
  4714. OP32 ("flrwd",
  4715. OPCODE_INFO2 (0xf4003900,
  4716. (0_3, FREG, OPRND_SHIFT_0_BIT),
  4717. (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
  4718. CSKY_ISA_FLOAT_3E4),
  4719. #undef _RELOC32
  4720. #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18BY4
  4721. OP32_WITH_WORK ("lrs.w",
  4722. OPCODE_INFO2 (0xcc080000,
  4723. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4724. (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  4725. CSKYV2_ISA_2E3,
  4726. v2_work_lrsrsw),
  4727. OP32_WITH_WORK ("srs.w",
  4728. OPCODE_INFO2 (0xcc180000,
  4729. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4730. (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  4731. CSKYV2_ISA_2E3,
  4732. v2_work_lrsrsw),
  4733. #undef _RELOC32
  4734. #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
  4735. OP32_WITH_WORK ("jsri",
  4736. OPCODE_INFO1 (0xeae00000,
  4737. (0_15, OFF16b, OPRND_SHIFT_2_BIT)),
  4738. CSKYV2_ISA_2E3,
  4739. v2_work_jsri),
  4740. #undef _RELOC32
  4741. #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY2
  4742. OP32 ("bez",
  4743. OPCODE_INFO2 (0xe9000000,
  4744. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4745. (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
  4746. CSKYV2_ISA_2E3),
  4747. OP32 ("bnez",
  4748. OPCODE_INFO2 (0xe9200000,
  4749. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4750. (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
  4751. CSKYV2_ISA_2E3),
  4752. OP32 ("bhz",
  4753. OPCODE_INFO2 (0xe9400000,
  4754. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4755. (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
  4756. CSKYV2_ISA_2E3),
  4757. OP32 ("blsz",
  4758. OPCODE_INFO2 (0xe9600000,
  4759. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4760. (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
  4761. CSKYV2_ISA_2E3),
  4762. OP32 ("blz",
  4763. OPCODE_INFO2 (0xe9800000,
  4764. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4765. (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
  4766. CSKYV2_ISA_2E3),
  4767. OP32 ("bhsz",
  4768. OPCODE_INFO2 (0xe9a00000,
  4769. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4770. (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
  4771. CSKYV2_ISA_2E3),
  4772. #undef _RELAX
  4773. #undef _RELOC16
  4774. #undef _TRANSFER
  4775. #define _TRANSFER 1
  4776. #define _RELAX 1
  4777. #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM10BY2
  4778. OP16_OP32 ("br",
  4779. OPCODE_INFO1 (0x0400,
  4780. (0_9, UNCOND10b, OPRND_SHIFT_1_BIT)),
  4781. CSKYV2_ISA_E1,
  4782. OPCODE_INFO1 (0xe8000000,
  4783. (0_15, UNCOND16b, OPRND_SHIFT_1_BIT)),
  4784. CSKYV2_ISA_E1),
  4785. #undef _TRANSFER
  4786. #define _TRANSFER 0
  4787. OP16_OP32 ("bt",
  4788. OPCODE_INFO1 (0x0800,
  4789. (0_9, COND10b, OPRND_SHIFT_1_BIT)),
  4790. CSKYV2_ISA_E1,
  4791. OPCODE_INFO1 (0xe8600000,
  4792. (0_15, COND16b, OPRND_SHIFT_1_BIT)),
  4793. CSKYV2_ISA_1E2),
  4794. OP16_OP32 ("bf",
  4795. OPCODE_INFO1 (0x0c00,
  4796. (0_9, COND10b, OPRND_SHIFT_1_BIT)),
  4797. CSKYV2_ISA_E1,
  4798. OPCODE_INFO1 (0xe8400000,
  4799. (0_15, COND16b, OPRND_SHIFT_1_BIT)),
  4800. CSKYV2_ISA_1E2),
  4801. #undef _RELAX
  4802. #undef _RELOC16
  4803. #define _RELAX 0
  4804. #define _RELOC16 0
  4805. OP32 ("bnezad",
  4806. OPCODE_INFO2 (0xe8200000,
  4807. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4808. (0_15, COND16b, OPRND_SHIFT_1_BIT)),
  4809. CSKYV2_ISA_3E3R2),
  4810. #undef _RELOC16
  4811. #undef _RELOC32
  4812. #define _RELOC16 0
  4813. #define _RELOC32 0
  4814. #undef _TRANSFER
  4815. #define _TRANSFER 1
  4816. OP16_WITH_WORK ("jbr",
  4817. OPCODE_INFO1 (0x0400,
  4818. (0_10, UNCOND10b, OPRND_SHIFT_1_BIT)),
  4819. CSKYV2_ISA_E1,
  4820. v2_work_jbr),
  4821. #undef _TRANSFER
  4822. #define _TRANSFER 0
  4823. OP16_WITH_WORK ("jbt",
  4824. OPCODE_INFO1 (0x0800,
  4825. (0_10, COND10b, OPRND_SHIFT_1_BIT)),
  4826. CSKYV2_ISA_E1,
  4827. v2_work_jbtf),
  4828. OP16_WITH_WORK ("jbf",
  4829. OPCODE_INFO1 (0x0c00,
  4830. (0_10, COND10b, OPRND_SHIFT_1_BIT)),
  4831. CSKYV2_ISA_E1,
  4832. v2_work_jbtf),
  4833. OP32_WITH_WORK ("jbsr",
  4834. OPCODE_INFO1 (0xe0000000,
  4835. (0_25, OFF26b, OPRND_SHIFT_1_BIT)),
  4836. CSKYV2_ISA_E1,
  4837. v2_work_jbsr),
  4838. OP32_WITH_WORK ("movih",
  4839. OPCODE_INFO2 (0xea200000,
  4840. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4841. (0_15, IMM16b_MOVIH, OPRND_SHIFT_0_BIT)),
  4842. CSKYV2_ISA_1E2,
  4843. v2_work_movih),
  4844. OP32_WITH_WORK ("ori",
  4845. OPCODE_INFO3 (0xec000000,
  4846. (21_25, AREG, OPRND_SHIFT_0_BIT),
  4847. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4848. (0_15, IMM16b_ORI, OPRND_SHIFT_0_BIT)),
  4849. CSKYV2_ISA_1E2,
  4850. v2_work_ori),
  4851. DOP32_WITH_WORK ("bgeni",
  4852. OPCODE_INFO2 (0xea000000,
  4853. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4854. (0_4, IMM4b, OPRND_SHIFT_0_BIT)),
  4855. OPCODE_INFO2 (0xea200000,
  4856. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4857. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  4858. CSKYV2_ISA_E1,
  4859. v2_work_bgeni),
  4860. #undef _RELOC16
  4861. #undef _RELOC32
  4862. #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM7BY4
  4863. #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
  4864. DOP16_OP32_WITH_WORK ("lrw",
  4865. OPCODE_INFO2 (0x1000,
  4866. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4867. (0_4or8_9, CONSTANT, OPRND_SHIFT_2_BIT)),
  4868. OPCODE_INFO2 (0x0000,
  4869. (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
  4870. (0_4or8_9, ELRW_CONSTANT, OPRND_SHIFT_2_BIT)),
  4871. CSKYV2_ISA_E1,
  4872. OPCODE_INFO2 (0xea800000,
  4873. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4874. (0_15, CONSTANT, OPRND_SHIFT_2_BIT)),
  4875. CSKYV2_ISA_E1,
  4876. v2_work_lrw),
  4877. #undef _RELOC16
  4878. #undef _RELOC32
  4879. #define _RELOC16 0
  4880. #define _RELOC32 0
  4881. #undef _RELAX
  4882. #define _RELAX 1
  4883. OP32 ("jbez",
  4884. OPCODE_INFO2 (0xe9000000,
  4885. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4886. (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
  4887. CSKYV2_ISA_2E3),
  4888. OP32 ("jbnez",
  4889. OPCODE_INFO2 (0xe9200000,
  4890. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4891. (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
  4892. CSKYV2_ISA_2E3),
  4893. OP32 ("jbhz",
  4894. OPCODE_INFO2 (0xe9400000,
  4895. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4896. (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
  4897. CSKYV2_ISA_2E3),
  4898. OP32 ("jblsz",
  4899. OPCODE_INFO2 (0xe9600000,
  4900. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4901. (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
  4902. CSKYV2_ISA_2E3),
  4903. OP32 ("jblz",
  4904. OPCODE_INFO2 (0xe9800000,
  4905. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4906. (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
  4907. CSKYV2_ISA_2E3),
  4908. OP32 ("jbhsz",
  4909. OPCODE_INFO2 (0xe9a00000,
  4910. (16_20, AREG, OPRND_SHIFT_0_BIT),
  4911. (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
  4912. CSKYV2_ISA_2E3),
  4913. #undef _RELAX
  4914. #define _RELAX 0
  4915. /* CK860 instructions. */
  4916. OP32 ("sync.is",
  4917. OPCODE_INFO0 (0xc2200420),
  4918. CSKYV2_ISA_10E60),
  4919. OP32 ("sync.i",
  4920. OPCODE_INFO0 (0xc0200420),
  4921. CSKYV2_ISA_10E60),
  4922. OP32 ("sync.s",
  4923. OPCODE_INFO0 (0xc2000420),
  4924. CSKYV2_ISA_10E60),
  4925. OP32 ("bar.brwarw",
  4926. OPCODE_INFO0 (0xc000842f),
  4927. CSKYV2_ISA_10E60),
  4928. OP32 ("bar.brwarws",
  4929. OPCODE_INFO0 (0xc200842f),
  4930. CSKYV2_ISA_10E60),
  4931. OP32 ("bar.brar",
  4932. OPCODE_INFO0 (0xc0008425),
  4933. CSKYV2_ISA_10E60),
  4934. OP32 ("bar.brars",
  4935. OPCODE_INFO0 (0xc2008425),
  4936. CSKYV2_ISA_10E60),
  4937. OP32 ("bar.bwaw",
  4938. OPCODE_INFO0 (0xc000842a),
  4939. CSKYV2_ISA_10E60),
  4940. OP32 ("bar.bwaws",
  4941. OPCODE_INFO0 (0xc200842a),
  4942. CSKYV2_ISA_10E60),
  4943. OP32 ("icache.iall",
  4944. OPCODE_INFO0 (0xc1009020),
  4945. CSKYV2_ISA_10E60),
  4946. OP32 ("icache.ialls",
  4947. OPCODE_INFO0 (0xc3009020),
  4948. CSKYV2_ISA_10E60),
  4949. OP32 ("l2cache.iall",
  4950. OPCODE_INFO0 (0xc1009820),
  4951. CSKYV2_ISA_10E60),
  4952. OP32 ("l2cache.call",
  4953. OPCODE_INFO0 (0xc0809820),
  4954. CSKYV2_ISA_10E60),
  4955. OP32 ("l2cache.ciall",
  4956. OPCODE_INFO0 (0xc1809820),
  4957. CSKYV2_ISA_10E60),
  4958. OP32 ("icache.iva",
  4959. OPCODE_INFO1 (0xc1609020,
  4960. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4961. CSKYV2_ISA_10E60),
  4962. OP32 ("dcache.iall",
  4963. OPCODE_INFO0 (0xc1009420),
  4964. CSKYV2_ISA_10E60),
  4965. OP32 ("dcache.iva",
  4966. OPCODE_INFO1 (0xc1609420,
  4967. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4968. CSKYV2_ISA_10E60),
  4969. OP32 ("dcache.isw",
  4970. OPCODE_INFO1 (0xc1409420,
  4971. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4972. CSKYV2_ISA_10E60),
  4973. OP32 ("dcache.call",
  4974. OPCODE_INFO0 (0xc0809420),
  4975. CSKYV2_ISA_10E60),
  4976. OP32 ("dcache.cva",
  4977. OPCODE_INFO1 (0xc0e09420,
  4978. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4979. CSKYV2_ISA_10E60),
  4980. OP32 ("dcache.cval1",
  4981. OPCODE_INFO1 (0xc2e09420,
  4982. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4983. CSKYV2_ISA_10E60),
  4984. OP32 ("dcache.csw",
  4985. OPCODE_INFO1 (0xc0c09420,
  4986. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4987. CSKYV2_ISA_10E60),
  4988. OP32 ("dcache.ciall",
  4989. OPCODE_INFO0 (0xc1809420),
  4990. CSKYV2_ISA_10E60),
  4991. OP32 ("dcache.civa",
  4992. OPCODE_INFO1 (0xc1e09420,
  4993. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4994. CSKYV2_ISA_10E60),
  4995. OP32 ("dcache.cisw",
  4996. OPCODE_INFO1 (0xc1c09420,
  4997. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  4998. CSKYV2_ISA_10E60),
  4999. OP32 ("tlbi.vaa",
  5000. OPCODE_INFO1 (0xc0408820,
  5001. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5002. CSKYV2_ISA_10E60),
  5003. OP32 ("tlbi.vaas",
  5004. OPCODE_INFO1 (0xc2408820,
  5005. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5006. CSKYV2_ISA_10E60),
  5007. OP32 ("tlbi.asid",
  5008. OPCODE_INFO1 (0xc0208820,
  5009. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5010. CSKYV2_ISA_10E60),
  5011. OP32 ("tlbi.asids",
  5012. OPCODE_INFO1 (0xc2208820,
  5013. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5014. CSKYV2_ISA_10E60),
  5015. OP32 ("tlbi.va",
  5016. OPCODE_INFO1 (0xc0608820,
  5017. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5018. CSKYV2_ISA_10E60),
  5019. OP32 ("tlbi.vas",
  5020. OPCODE_INFO1 (0xc2608820,
  5021. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5022. CSKYV2_ISA_10E60),
  5023. OP32 ("tlbi.all",
  5024. OPCODE_INFO0 (0xc0008820),
  5025. CSKYV2_ISA_10E60),
  5026. OP32 ("tlbi.alls",
  5027. OPCODE_INFO0 (0xc2008820),
  5028. CSKYV2_ISA_10E60),
  5029. DOP32 ("sync",
  5030. OPCODE_INFO0 (0xc0000420),
  5031. OPCODE_INFO1 (0xc0000420,
  5032. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  5033. CSKYV2_ISA_E1),
  5034. /* The followings are enhance DSP instructions. */
  5035. DOP32_WITH_WORK ("bloop",
  5036. OPCODE_INFO3 (0xe9c00000,
  5037. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5038. (0_11, BLOOP_OFF12b, OPRND_SHIFT_1_BIT),
  5039. (12_15, BLOOP_OFF4b, OPRND_SHIFT_1_BIT)),
  5040. OPCODE_INFO2 (0xe9c00000,
  5041. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5042. (0_11, BLOOP_OFF12b, OPRND_SHIFT_1_BIT)),
  5043. CSKY_ISA_DSP_ENHANCE,
  5044. dsp_work_bloop),
  5045. /* The followings are ld/st instructions. */
  5046. OP32 ("ldbi.b",
  5047. OPCODE_INFO2 (0xd0008000,
  5048. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5049. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5050. CSKY_ISA_DSP_ENHANCE),
  5051. OP32 ("ldbi.h",
  5052. OPCODE_INFO2 (0xd0008400,
  5053. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5054. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5055. CSKY_ISA_DSP_ENHANCE),
  5056. OP32 ("ldbi.w",
  5057. OPCODE_INFO2 (0xd0008800,
  5058. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5059. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5060. CSKY_ISA_DSP_ENHANCE),
  5061. OP32 ("pldbi.d",
  5062. OPCODE_INFO2 (0xd0008c00,
  5063. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5064. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5065. CSKY_ISA_DSP_ENHANCE),
  5066. OP32 ("ldbi.hs",
  5067. OPCODE_INFO2 (0xd0009000,
  5068. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5069. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5070. CSKY_ISA_DSP_ENHANCE),
  5071. OP32 ("ldbi.bs",
  5072. OPCODE_INFO2 (0xd0009400,
  5073. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5074. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5075. CSKY_ISA_DSP_ENHANCE),
  5076. OP32 ("stbi.b",
  5077. OPCODE_INFO2 (0xd4008000,
  5078. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5079. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5080. CSKY_ISA_DSP_ENHANCE),
  5081. OP32 ("stbi.h",
  5082. OPCODE_INFO2 (0xd4008400,
  5083. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5084. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5085. CSKY_ISA_DSP_ENHANCE),
  5086. OP32 ("stbi.w",
  5087. OPCODE_INFO2 (0xd4008800,
  5088. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5089. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
  5090. CSKY_ISA_DSP_ENHANCE),
  5091. OP32 ("ldbir.b",
  5092. OPCODE_INFO3 (0xd000a000,
  5093. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5094. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5095. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5096. CSKY_ISA_DSP_ENHANCE),
  5097. OP32 ("ldbir.h",
  5098. OPCODE_INFO3 (0xd000a400,
  5099. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5100. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5101. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5102. CSKY_ISA_DSP_ENHANCE),
  5103. OP32 ("ldbir.w",
  5104. OPCODE_INFO3 (0xd000a800,
  5105. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5106. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5107. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5108. CSKY_ISA_DSP_ENHANCE),
  5109. OP32 ("pldbir.d",
  5110. OPCODE_INFO3 (0xd000ac00,
  5111. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5112. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5113. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5114. CSKY_ISA_DSP_ENHANCE),
  5115. OP32 ("ldbir.bs",
  5116. OPCODE_INFO3 (0xd000b000,
  5117. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5118. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5119. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5120. CSKY_ISA_DSP_ENHANCE),
  5121. OP32 ("ldbir.hs",
  5122. OPCODE_INFO3 (0xd000b400,
  5123. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5124. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5125. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5126. CSKY_ISA_DSP_ENHANCE),
  5127. OP32 ("stbir.b",
  5128. OPCODE_INFO3 (0xd400a000,
  5129. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5130. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5131. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5132. CSKY_ISA_DSP_ENHANCE),
  5133. OP32 ("stbir.h",
  5134. OPCODE_INFO3 (0xd400a400,
  5135. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5136. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5137. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5138. CSKY_ISA_DSP_ENHANCE),
  5139. OP32 ("stbir.w",
  5140. OPCODE_INFO3 (0xd400a800,
  5141. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5142. (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
  5143. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5144. CSKY_ISA_DSP_ENHANCE),
  5145. /* The followings are add/sub instructions. */
  5146. OP32 ("padd.8",
  5147. OPCODE_INFO3 (0xf800c040,
  5148. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5149. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5150. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5151. CSKY_ISA_DSP_ENHANCE),
  5152. OP32 ("padd.16",
  5153. OPCODE_INFO3 (0xf800c000,
  5154. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5155. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5156. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5157. CSKY_ISA_DSP_ENHANCE),
  5158. OP32 ("padd.u8.s",
  5159. OPCODE_INFO3 (0xf800c140,
  5160. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5161. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5162. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5163. CSKY_ISA_DSP_ENHANCE),
  5164. OP32 ("padd.s8.s",
  5165. OPCODE_INFO3 (0xf800c1c0,
  5166. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5167. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5168. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5169. CSKY_ISA_DSP_ENHANCE),
  5170. OP32 ("padd.u16.s",
  5171. OPCODE_INFO3 (0xf800c100,
  5172. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5173. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5174. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5175. CSKY_ISA_DSP_ENHANCE),
  5176. OP32 ("padd.s16.s",
  5177. OPCODE_INFO3 (0xf800c180,
  5178. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5179. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5180. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5181. CSKY_ISA_DSP_ENHANCE),
  5182. OP32 ("add.u32.s",
  5183. OPCODE_INFO3 (0xf800c120,
  5184. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5185. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5186. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5187. CSKY_ISA_DSP_ENHANCE),
  5188. OP32 ("add.s32.s",
  5189. OPCODE_INFO3 (0xf800c1a0,
  5190. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5191. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5192. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5193. CSKY_ISA_DSP_ENHANCE),
  5194. OP32 ("psub.8",
  5195. OPCODE_INFO3 (0xf800c440,
  5196. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5197. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5198. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5199. CSKY_ISA_DSP_ENHANCE),
  5200. OP32 ("psub.16",
  5201. OPCODE_INFO3 (0xf800c400,
  5202. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5203. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5204. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5205. CSKY_ISA_DSP_ENHANCE),
  5206. OP32 ("psub.u8.s",
  5207. OPCODE_INFO3 (0xf800c540,
  5208. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5209. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5210. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5211. CSKY_ISA_DSP_ENHANCE),
  5212. OP32 ("psub.s8.s",
  5213. OPCODE_INFO3 (0xf800c5c0,
  5214. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5215. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5216. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5217. CSKY_ISA_DSP_ENHANCE),
  5218. OP32 ("psub.u16.s",
  5219. OPCODE_INFO3 (0xf800c500,
  5220. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5221. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5222. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5223. CSKY_ISA_DSP_ENHANCE),
  5224. OP32 ("psub.s16.s",
  5225. OPCODE_INFO3 (0xf800c580,
  5226. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5227. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5228. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5229. CSKY_ISA_DSP_ENHANCE),
  5230. OP32 ("sub.u32.s",
  5231. OPCODE_INFO3 (0xf800c520,
  5232. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5233. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5234. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5235. CSKY_ISA_DSP_ENHANCE),
  5236. OP32 ("sub.s32.s",
  5237. OPCODE_INFO3 (0xf800c5a0,
  5238. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5239. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5240. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5241. CSKY_ISA_DSP_ENHANCE),
  5242. OP32 ("paddh.u8",
  5243. OPCODE_INFO3 (0xf800c240,
  5244. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5245. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5246. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5247. CSKY_ISA_DSP_ENHANCE),
  5248. OP32 ("paddh.s8",
  5249. OPCODE_INFO3 (0xf800c2c0,
  5250. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5251. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5252. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5253. CSKY_ISA_DSP_ENHANCE),
  5254. OP32 ("paddh.u16",
  5255. OPCODE_INFO3 (0xf800c200,
  5256. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5257. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5258. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5259. CSKY_ISA_DSP_ENHANCE),
  5260. OP32 ("paddh.s16",
  5261. OPCODE_INFO3 (0xf800c280,
  5262. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5263. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5264. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5265. CSKY_ISA_DSP_ENHANCE),
  5266. OP32 ("addh.u32",
  5267. OPCODE_INFO3 (0xf800c220,
  5268. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5269. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5270. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5271. CSKY_ISA_DSP_ENHANCE),
  5272. OP32 ("addh.s32",
  5273. OPCODE_INFO3 (0xf800c2a0,
  5274. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5275. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5276. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5277. CSKY_ISA_DSP_ENHANCE),
  5278. OP32 ("psubh.u8",
  5279. OPCODE_INFO3 (0xf800c640,
  5280. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5281. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5282. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5283. CSKY_ISA_DSP_ENHANCE),
  5284. OP32 ("psubh.s8",
  5285. OPCODE_INFO3 (0xf800c6c0,
  5286. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5287. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5288. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5289. CSKY_ISA_DSP_ENHANCE),
  5290. OP32 ("psubh.u16",
  5291. OPCODE_INFO3 (0xf800c600,
  5292. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5293. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5294. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5295. CSKY_ISA_DSP_ENHANCE),
  5296. OP32 ("psubh.s16",
  5297. OPCODE_INFO3 (0xf800c680,
  5298. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5299. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5300. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5301. CSKY_ISA_DSP_ENHANCE),
  5302. OP32 ("subh.u32",
  5303. OPCODE_INFO3 (0xf800c620,
  5304. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5305. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5306. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5307. CSKY_ISA_DSP_ENHANCE),
  5308. OP32 ("subh.s32",
  5309. OPCODE_INFO3 (0xf800c6a0,
  5310. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5311. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5312. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5313. CSKY_ISA_DSP_ENHANCE),
  5314. OP32 ("add.64",
  5315. OPCODE_INFO3 (0xf800c060,
  5316. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5317. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5318. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5319. CSKY_ISA_DSP_ENHANCE),
  5320. OP32 ("sub.64",
  5321. OPCODE_INFO3 (0xf800c460,
  5322. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5323. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5324. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5325. CSKY_ISA_DSP_ENHANCE),
  5326. OP32 ("add.u64.s",
  5327. OPCODE_INFO3 (0xf800c160,
  5328. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5329. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5330. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5331. CSKY_ISA_DSP_ENHANCE),
  5332. OP32 ("add.s64.s",
  5333. OPCODE_INFO3 (0xf800c1e0,
  5334. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5335. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5336. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5337. CSKY_ISA_DSP_ENHANCE),
  5338. OP32 ("sub.u64.s",
  5339. OPCODE_INFO3 (0xf800c560,
  5340. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5341. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5342. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5343. CSKY_ISA_DSP_ENHANCE),
  5344. OP32 ("sub.s64.s",
  5345. OPCODE_INFO3 (0xf800c5e0,
  5346. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5347. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5348. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5349. CSKY_ISA_DSP_ENHANCE),
  5350. /* The following are comparison instructions. */
  5351. OP32 ("pasx.16",
  5352. OPCODE_INFO3 (0xf800c860,
  5353. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5354. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5355. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5356. CSKY_ISA_DSP_ENHANCE),
  5357. OP32 ("psax.16",
  5358. OPCODE_INFO3 (0xf800cc60,
  5359. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5360. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5361. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5362. CSKY_ISA_DSP_ENHANCE),
  5363. OP32 ("pasx.u16.s",
  5364. OPCODE_INFO3 (0xf800c960,
  5365. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5366. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5367. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5368. CSKY_ISA_DSP_ENHANCE),
  5369. OP32 ("pasx.s16.s",
  5370. OPCODE_INFO3 (0xf800c9e0,
  5371. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5372. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5373. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5374. CSKY_ISA_DSP_ENHANCE),
  5375. OP32 ("psax.u16.s",
  5376. OPCODE_INFO3 (0xf800cd60,
  5377. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5378. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5379. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5380. CSKY_ISA_DSP_ENHANCE),
  5381. OP32 ("psax.s16.s",
  5382. OPCODE_INFO3 (0xf800cde0,
  5383. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5384. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5385. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5386. CSKY_ISA_DSP_ENHANCE),
  5387. OP32 ("pasxh.u16",
  5388. OPCODE_INFO3 (0xf800ca60,
  5389. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5390. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5391. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5392. CSKY_ISA_DSP_ENHANCE),
  5393. OP32 ("pasxh.s16",
  5394. OPCODE_INFO3 (0xf800cae0,
  5395. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5396. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5397. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5398. CSKY_ISA_DSP_ENHANCE),
  5399. OP32 ("psaxh.u16",
  5400. OPCODE_INFO3 (0xf800ce60,
  5401. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5402. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5403. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5404. CSKY_ISA_DSP_ENHANCE),
  5405. OP32 ("psaxh.s16",
  5406. OPCODE_INFO3 (0xf800cee0,
  5407. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5408. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5409. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5410. CSKY_ISA_DSP_ENHANCE),
  5411. OP32 ("pcmpne.8",
  5412. OPCODE_INFO3 (0xf800c840,
  5413. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5414. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5415. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5416. CSKY_ISA_DSP_ENHANCE),
  5417. OP32 ("pcmpne.16",
  5418. OPCODE_INFO3 (0xf800c800,
  5419. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5420. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5421. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5422. CSKY_ISA_DSP_ENHANCE),
  5423. OP32 ("pcmphs.u8",
  5424. OPCODE_INFO3 (0xf800c940,
  5425. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5426. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5427. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5428. CSKY_ISA_DSP_ENHANCE),
  5429. OP32 ("pcmphs.s8",
  5430. OPCODE_INFO3 (0xf800c9c0,
  5431. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5432. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5433. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5434. CSKY_ISA_DSP_ENHANCE),
  5435. OP32 ("pcmphs.u16",
  5436. OPCODE_INFO3 (0xf800c900,
  5437. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5438. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5439. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5440. CSKY_ISA_DSP_ENHANCE),
  5441. OP32 ("pcmphs.s16",
  5442. OPCODE_INFO3 (0xf800c980,
  5443. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5444. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5445. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5446. CSKY_ISA_DSP_ENHANCE),
  5447. OP32 ("pcmplt.u8",
  5448. OPCODE_INFO3 (0xf800ca40,
  5449. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5450. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5451. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5452. CSKY_ISA_DSP_ENHANCE),
  5453. OP32 ("pcmplt.s8",
  5454. OPCODE_INFO3 (0xf800cac0,
  5455. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5456. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5457. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5458. CSKY_ISA_DSP_ENHANCE),
  5459. OP32 ("pcmplt.u16",
  5460. OPCODE_INFO3 (0xf800ca00,
  5461. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5462. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5463. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5464. CSKY_ISA_DSP_ENHANCE),
  5465. OP32 ("pcmplt.s16",
  5466. OPCODE_INFO3 (0xf800ca80,
  5467. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5468. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5469. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5470. CSKY_ISA_DSP_ENHANCE),
  5471. OP32 ("pmax.u8",
  5472. OPCODE_INFO3 (0xf800cc40,
  5473. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5474. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5475. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5476. CSKY_ISA_DSP_ENHANCE),
  5477. OP32 ("pmax.s8",
  5478. OPCODE_INFO3 (0xf800ccc0,
  5479. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5480. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5481. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5482. CSKY_ISA_DSP_ENHANCE),
  5483. OP32 ("pmax.u16",
  5484. OPCODE_INFO3 (0xf800cc00,
  5485. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5486. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5487. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5488. CSKY_ISA_DSP_ENHANCE),
  5489. OP32 ("pmax.s16",
  5490. OPCODE_INFO3 (0xf800cc80,
  5491. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5492. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5493. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5494. CSKY_ISA_DSP_ENHANCE),
  5495. OP32 ("max.u32",
  5496. OPCODE_INFO3 (0xf800cc20,
  5497. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5498. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5499. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5500. CSKY_ISA_DSP_ENHANCE),
  5501. OP32 ("max.s32",
  5502. OPCODE_INFO3 (0xf800cca0,
  5503. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5504. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5505. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5506. CSKY_ISA_DSP_ENHANCE),
  5507. OP32 ("pmin.u8",
  5508. OPCODE_INFO3 (0xf800cd40,
  5509. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5510. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5511. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5512. CSKY_ISA_DSP_ENHANCE),
  5513. OP32 ("pmin.s8",
  5514. OPCODE_INFO3 (0xf800cdc0,
  5515. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5516. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5517. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5518. CSKY_ISA_DSP_ENHANCE),
  5519. OP32 ("pmin.u16",
  5520. OPCODE_INFO3 (0xf800cd00,
  5521. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5522. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5523. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5524. CSKY_ISA_DSP_ENHANCE),
  5525. OP32 ("pmin.s16",
  5526. OPCODE_INFO3 (0xf800cd80,
  5527. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5528. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5529. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5530. CSKY_ISA_DSP_ENHANCE),
  5531. OP32 ("min.u32",
  5532. OPCODE_INFO3 (0xf800cd20,
  5533. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5534. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5535. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5536. CSKY_ISA_DSP_ENHANCE),
  5537. OP32 ("min.s32",
  5538. OPCODE_INFO3 (0xf800cda0,
  5539. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5540. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5541. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5542. CSKY_ISA_DSP_ENHANCE),
  5543. OP32 ("sel",
  5544. OPCODE_INFO4 (0xf8009000,
  5545. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5546. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5547. (21_25, AREG, OPRND_SHIFT_0_BIT),
  5548. (5_9, AREG, OPRND_SHIFT_0_BIT)),
  5549. CSKY_ISA_DSP_ENHANCE),
  5550. /* The followings are miscs. */
  5551. OP32 ("psabsa.u8",
  5552. OPCODE_INFO3 (0xf800e040,
  5553. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5554. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5555. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5556. CSKY_ISA_DSP_ENHANCE),
  5557. OP32 ("psabsaa.u8",
  5558. OPCODE_INFO3 (0xf800e140,
  5559. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5560. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5561. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5562. CSKY_ISA_DSP_ENHANCE),
  5563. OP32 ("divul",
  5564. OPCODE_INFO3 (0xf800e260,
  5565. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5566. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5567. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5568. CSKYV2_ISA_3E3R3),
  5569. OP32 ("divsl",
  5570. OPCODE_INFO3 (0xf800e2e0,
  5571. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5572. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5573. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5574. CSKYV2_ISA_3E3R3),
  5575. OP32 ("mulaca.s8",
  5576. OPCODE_INFO3 (0xf800e4c0,
  5577. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5578. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5579. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5580. CSKY_ISA_DSP_ENHANCE),
  5581. /* The followings are shift instructions. */
  5582. OP32 ("asri.s32.r",
  5583. OPCODE_INFO3 (0xf800d1a0,
  5584. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5585. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5586. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  5587. CSKY_ISA_DSP_ENHANCE),
  5588. OP32 ("asr.s32.r",
  5589. OPCODE_INFO3 (0xf800d1e0,
  5590. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5591. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5592. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5593. CSKY_ISA_DSP_ENHANCE),
  5594. OP32 ("lsri.u32.r",
  5595. OPCODE_INFO3 (0xf800d320,
  5596. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5597. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5598. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  5599. CSKY_ISA_DSP_ENHANCE),
  5600. OP32 ("lsr.u32.r",
  5601. OPCODE_INFO3 (0xf800d360,
  5602. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5603. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5604. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5605. CSKY_ISA_DSP_ENHANCE),
  5606. OP32 ("lsli.u32.s",
  5607. OPCODE_INFO3 (0xf800d520,
  5608. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5609. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5610. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  5611. CSKY_ISA_DSP_ENHANCE),
  5612. OP32 ("lsli.s32.s",
  5613. OPCODE_INFO3 (0xf800d5a0,
  5614. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5615. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5616. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  5617. CSKY_ISA_DSP_ENHANCE),
  5618. OP32 ("lsl.u32.s",
  5619. OPCODE_INFO3 (0xf800d560,
  5620. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5621. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5622. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5623. CSKY_ISA_DSP_ENHANCE),
  5624. OP32 ("lsl.s32.s",
  5625. OPCODE_INFO3 (0xf800d5e0,
  5626. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5627. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5628. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5629. CSKY_ISA_DSP_ENHANCE),
  5630. OP32 ("pasri.s16",
  5631. OPCODE_INFO3 (0xf800d080,
  5632. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5633. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5634. (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
  5635. CSKY_ISA_DSP_ENHANCE),
  5636. OP32 ("pasr.s16",
  5637. OPCODE_INFO3 (0xf800d0c0,
  5638. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5639. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5640. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5641. CSKY_ISA_DSP_ENHANCE),
  5642. OP32 ("pasri.s16.r",
  5643. OPCODE_INFO3 (0xf800d180,
  5644. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5645. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5646. (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
  5647. CSKY_ISA_DSP_ENHANCE),
  5648. OP32 ("pasr.s16.r",
  5649. OPCODE_INFO3 (0xf800d1c0,
  5650. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5651. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5652. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5653. CSKY_ISA_DSP_ENHANCE),
  5654. OP32 ("plsri.u16",
  5655. OPCODE_INFO3 (0xf800d200,
  5656. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5657. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5658. (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
  5659. CSKY_ISA_DSP_ENHANCE),
  5660. OP32 ("plsr.u16",
  5661. OPCODE_INFO3 (0xf800d240,
  5662. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5663. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5664. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5665. CSKY_ISA_DSP_ENHANCE),
  5666. OP32 ("plsri.u16.r",
  5667. OPCODE_INFO3 (0xf800d300,
  5668. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5669. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5670. (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
  5671. CSKY_ISA_DSP_ENHANCE),
  5672. OP32 ("plsr.u16.r",
  5673. OPCODE_INFO3 (0xf800d340,
  5674. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5675. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5676. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5677. CSKY_ISA_DSP_ENHANCE),
  5678. OP32 ("plsli.16",
  5679. OPCODE_INFO3 (0xf800d400,
  5680. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5681. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5682. (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
  5683. CSKY_ISA_DSP_ENHANCE),
  5684. OP32 ("plsl.16",
  5685. OPCODE_INFO3 (0xf800d440,
  5686. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5687. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5688. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5689. CSKY_ISA_DSP_ENHANCE),
  5690. OP32 ("plsli.u16.s",
  5691. OPCODE_INFO3 (0xf800d500,
  5692. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5693. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5694. (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
  5695. CSKY_ISA_DSP_ENHANCE),
  5696. OP32 ("plsli.s16.s",
  5697. OPCODE_INFO3 (0xf800d580,
  5698. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5699. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5700. (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
  5701. CSKY_ISA_DSP_ENHANCE),
  5702. OP32 ("plsl.u16.s",
  5703. OPCODE_INFO3 (0xf800d540,
  5704. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5705. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5706. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5707. CSKY_ISA_DSP_ENHANCE),
  5708. OP32 ("plsl.s16.s",
  5709. OPCODE_INFO3 (0xf800d5c0,
  5710. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5711. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5712. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5713. CSKY_ISA_DSP_ENHANCE),
  5714. /* The following are package & unpackage instructions. */
  5715. OP32 ("pkg",
  5716. OPCODE_INFO5 (0xf800a000,
  5717. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5718. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5719. (5_8, IMM4b, OPRND_SHIFT_0_BIT),
  5720. (21_25, AREG, OPRND_SHIFT_0_BIT),
  5721. (9_12, OIMM4b, OPRND_SHIFT_0_BIT)),
  5722. CSKY_ISA_DSP_ENHANCE),
  5723. OP32 ("dexti",
  5724. OPCODE_INFO4 (0xf8009800,
  5725. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5726. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5727. (21_25, AREG, OPRND_SHIFT_0_BIT),
  5728. (5_9, IMM5b, OPRND_SHIFT_0_BIT)),
  5729. CSKY_ISA_DSP_ENHANCE),
  5730. OP32 ("dext",
  5731. OPCODE_INFO4 (0xf8009c00,
  5732. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5733. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5734. (21_25, AREG, OPRND_SHIFT_0_BIT),
  5735. (5_9, AREG, OPRND_SHIFT_0_BIT)),
  5736. CSKY_ISA_DSP_ENHANCE),
  5737. OP32 ("pkgll",
  5738. OPCODE_INFO3 (0xf800d840,
  5739. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5740. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5741. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5742. CSKY_ISA_DSP_ENHANCE),
  5743. OP32 ("pkghh",
  5744. OPCODE_INFO3 (0xf800d860,
  5745. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5746. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5747. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5748. CSKY_ISA_DSP_ENHANCE),
  5749. OP32 ("pext.u8.e",
  5750. OPCODE_INFO2 (0xf800d900,
  5751. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5752. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5753. CSKY_ISA_DSP_ENHANCE),
  5754. OP32 ("pext.s8.e",
  5755. OPCODE_INFO2 (0xf800d980,
  5756. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5757. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5758. CSKY_ISA_DSP_ENHANCE),
  5759. OP32 ("pextx.u8.e",
  5760. OPCODE_INFO2 (0xf800d920,
  5761. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5762. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5763. CSKY_ISA_DSP_ENHANCE),
  5764. OP32 ("pextx.s8.e",
  5765. OPCODE_INFO2 (0xf800d9a0,
  5766. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5767. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5768. CSKY_ISA_DSP_ENHANCE),
  5769. OP32 ("narl",
  5770. OPCODE_INFO3 (0xf800da00,
  5771. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5772. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5773. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5774. CSKY_ISA_DSP_ENHANCE),
  5775. OP32 ("narh",
  5776. OPCODE_INFO3 (0xf800da20,
  5777. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5778. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5779. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5780. CSKY_ISA_DSP_ENHANCE),
  5781. OP32 ("narlx",
  5782. OPCODE_INFO3 (0xf800da40,
  5783. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5784. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5785. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5786. CSKY_ISA_DSP_ENHANCE),
  5787. OP32 ("narhx",
  5788. OPCODE_INFO3 (0xf800da60,
  5789. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5790. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5791. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5792. CSKY_ISA_DSP_ENHANCE),
  5793. OP32 ("clipi.u32",
  5794. OPCODE_INFO3 (0xf800db00,
  5795. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5796. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5797. (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
  5798. CSKY_ISA_DSP_ENHANCE),
  5799. OP32 ("clipi.s32",
  5800. OPCODE_INFO3 (0xf800db80,
  5801. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5802. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5803. (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
  5804. CSKY_ISA_DSP_ENHANCE),
  5805. OP32 ("clip.u32",
  5806. OPCODE_INFO3 (0xf800db20,
  5807. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5808. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5809. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5810. CSKY_ISA_DSP_ENHANCE),
  5811. OP32 ("clip.s32",
  5812. OPCODE_INFO3 (0xf800dba0,
  5813. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5814. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5815. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5816. CSKY_ISA_DSP_ENHANCE),
  5817. OP32 ("pclipi.u16",
  5818. OPCODE_INFO3 (0xf800db40,
  5819. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5820. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5821. (21_25, IMM4b, OPRND_SHIFT_0_BIT)),
  5822. CSKY_ISA_DSP_ENHANCE),
  5823. OP32 ("pclipi.s16",
  5824. OPCODE_INFO3 (0xf800dbc0,
  5825. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5826. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5827. (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
  5828. CSKY_ISA_DSP_ENHANCE),
  5829. OP32 ("pclip.u16",
  5830. OPCODE_INFO3 (0xf800db60,
  5831. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5832. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5833. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5834. CSKY_ISA_DSP_ENHANCE),
  5835. OP32 ("pclip.s16",
  5836. OPCODE_INFO3 (0xf800dbe0,
  5837. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5838. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5839. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5840. CSKY_ISA_DSP_ENHANCE),
  5841. OP32 ("pabs.s8.s",
  5842. OPCODE_INFO2 (0xf800dc80,
  5843. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5844. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5845. CSKY_ISA_DSP_ENHANCE),
  5846. OP32 ("pabs.s16.s",
  5847. OPCODE_INFO2 (0xf800dca0,
  5848. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5849. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5850. CSKY_ISA_DSP_ENHANCE),
  5851. OP32 ("abs.s32.s",
  5852. OPCODE_INFO2 (0xf800dcc0,
  5853. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5854. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5855. CSKY_ISA_DSP_ENHANCE),
  5856. OP32 ("pneg.s8.s",
  5857. OPCODE_INFO2 (0xf800dd80,
  5858. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5859. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5860. CSKY_ISA_DSP_ENHANCE),
  5861. OP32 ("pneg.s16.s",
  5862. OPCODE_INFO2 (0xf800dda0,
  5863. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5864. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5865. CSKY_ISA_DSP_ENHANCE),
  5866. OP32 ("neg.s32.s",
  5867. OPCODE_INFO2 (0xf800ddc0,
  5868. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5869. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  5870. CSKY_ISA_DSP_ENHANCE),
  5871. OP32 ("dup.8",
  5872. OPCODE_INFO3 (0xf800de00,
  5873. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5874. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5875. (5_6, IMM2b, OPRND_SHIFT_0_BIT)),
  5876. CSKY_ISA_DSP_ENHANCE),
  5877. OP32 ("dup.16",
  5878. OPCODE_INFO3 (0xf800df00,
  5879. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5880. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5881. (5_6, IMM1b, OPRND_SHIFT_0_BIT)),
  5882. CSKY_ISA_DSP_ENHANCE),
  5883. /* The followings are multiplication instructions. */
  5884. OP32 ("mul.u32",
  5885. OPCODE_INFO3 (0xf8008000,
  5886. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5887. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5888. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5889. CSKYV2_ISA_3E3R1),
  5890. OP32 ("mul.s32",
  5891. OPCODE_INFO3 (0xf8008200,
  5892. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5893. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5894. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5895. CSKYV2_ISA_3E3R1),
  5896. OP32 ("mula.u32",
  5897. OPCODE_INFO3 (0xf8008080,
  5898. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5899. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5900. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5901. CSKYV2_ISA_3E3R1),
  5902. OP32 ("mula.s32",
  5903. OPCODE_INFO3 (0xf8008280,
  5904. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5905. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5906. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5907. CSKYV2_ISA_3E3R1),
  5908. OP32 ("mula.32.l",
  5909. OPCODE_INFO3 (0xf8008440,
  5910. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5911. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5912. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5913. CSKYV2_ISA_3E3R1),
  5914. OP32 ("mulall.s16.s",
  5915. OPCODE_INFO3 (0xf80081a0,
  5916. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5917. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5918. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5919. CSKYV2_ISA_3E3R1),
  5920. OP32 ("muls.u32",
  5921. OPCODE_INFO3 (0xf80080c0,
  5922. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5923. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5924. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5925. CSKY_ISA_DSP_ENHANCE),
  5926. OP32 ("muls.s32",
  5927. OPCODE_INFO3 (0xf80082c0,
  5928. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5929. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5930. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5931. CSKY_ISA_DSP_ENHANCE),
  5932. OP32 ("mula.u32.s",
  5933. OPCODE_INFO3 (0xf8008180,
  5934. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5935. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5936. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5937. CSKY_ISA_DSP_ENHANCE),
  5938. OP32 ("mula.s32.s",
  5939. OPCODE_INFO3 (0xf8008380,
  5940. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5941. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5942. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5943. CSKY_ISA_DSP_ENHANCE),
  5944. OP32 ("muls.u32.s",
  5945. OPCODE_INFO3 (0xf80081c0,
  5946. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5947. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5948. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5949. CSKY_ISA_DSP_ENHANCE),
  5950. OP32 ("muls.s32.s",
  5951. OPCODE_INFO3 (0xf80083c0,
  5952. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5953. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5954. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5955. CSKY_ISA_DSP_ENHANCE),
  5956. OP32 ("mul.s32.h",
  5957. OPCODE_INFO3 (0xf8008400,
  5958. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5959. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5960. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5961. CSKY_ISA_DSP_ENHANCE),
  5962. OP32 ("mul.s32.rh",
  5963. OPCODE_INFO3 (0xf8008600,
  5964. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5965. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5966. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5967. CSKY_ISA_DSP_ENHANCE),
  5968. OP32 ("rmul.s32.h",
  5969. OPCODE_INFO3 (0xf8008500,
  5970. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5971. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5972. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5973. CSKY_ISA_DSP_ENHANCE),
  5974. OP32 ("rmul.s32.rh",
  5975. OPCODE_INFO3 (0xf8008700,
  5976. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5977. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5978. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5979. CSKY_ISA_DSP_ENHANCE),
  5980. OP32 ("mula.s32.hs",
  5981. OPCODE_INFO3 (0xf8008580,
  5982. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5983. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5984. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5985. CSKY_ISA_DSP_ENHANCE),
  5986. OP32 ("muls.s32.hs",
  5987. OPCODE_INFO3 (0xf80085c0,
  5988. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5989. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5990. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5991. CSKY_ISA_DSP_ENHANCE),
  5992. OP32 ("mula.s32.rhs",
  5993. OPCODE_INFO3 (0xf8008780,
  5994. (0_4, AREG, OPRND_SHIFT_0_BIT),
  5995. (16_20, AREG, OPRND_SHIFT_0_BIT),
  5996. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  5997. CSKY_ISA_DSP_ENHANCE),
  5998. OP32 ("muls.s32.rhs",
  5999. OPCODE_INFO3 (0xf80087c0,
  6000. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6001. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6002. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6003. CSKY_ISA_DSP_ENHANCE),
  6004. OP32 ("mulxl.s32",
  6005. OPCODE_INFO3 (0xf8008800,
  6006. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6007. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6008. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6009. CSKY_ISA_DSP_ENHANCE),
  6010. OP32 ("mulxl.s32.r",
  6011. OPCODE_INFO3 (0xf8008a00,
  6012. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6013. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6014. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6015. CSKY_ISA_DSP_ENHANCE),
  6016. OP32 ("mulxh.s32",
  6017. OPCODE_INFO3 (0xf8008c00,
  6018. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6019. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6020. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6021. CSKY_ISA_DSP_ENHANCE),
  6022. OP32 ("mulxh.s32.r",
  6023. OPCODE_INFO3 (0xf8008e00,
  6024. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6025. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6026. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6027. CSKY_ISA_DSP_ENHANCE),
  6028. OP32 ("rmulxl.s32",
  6029. OPCODE_INFO3 (0xf8008900,
  6030. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6031. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6032. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6033. CSKY_ISA_DSP_ENHANCE),
  6034. OP32 ("rmulxl.s32.r",
  6035. OPCODE_INFO3 (0xf8008b00,
  6036. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6037. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6038. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6039. CSKY_ISA_DSP_ENHANCE),
  6040. OP32 ("rmulxh.s32",
  6041. OPCODE_INFO3 (0xf8008d00,
  6042. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6043. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6044. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6045. CSKY_ISA_DSP_ENHANCE),
  6046. OP32 ("rmulxh.s32.r",
  6047. OPCODE_INFO3 (0xf8008f00,
  6048. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6049. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6050. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6051. CSKY_ISA_DSP_ENHANCE),
  6052. OP32 ("mulaxl.s32.s",
  6053. OPCODE_INFO3 (0xf8008980,
  6054. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6055. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6056. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6057. CSKY_ISA_DSP_ENHANCE),
  6058. OP32 ("mulaxl.s32.rs",
  6059. OPCODE_INFO3 (0xf8008b80,
  6060. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6061. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6062. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6063. CSKY_ISA_DSP_ENHANCE),
  6064. OP32 ("mulaxh.s32.s",
  6065. OPCODE_INFO3 (0xf8008d80,
  6066. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6067. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6068. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6069. CSKY_ISA_DSP_ENHANCE),
  6070. OP32 ("mulaxh.s32.rs",
  6071. OPCODE_INFO3 (0xf8008f80,
  6072. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6073. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6074. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6075. CSKY_ISA_DSP_ENHANCE),
  6076. OP32 ("mulll.s16",
  6077. OPCODE_INFO3 (0xf8008020,
  6078. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6079. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6080. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6081. CSKY_ISA_DSP_ENHANCE),
  6082. OP32 ("mulhh.s16",
  6083. OPCODE_INFO3 (0xf8008260,
  6084. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6085. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6086. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6087. CSKY_ISA_DSP_ENHANCE),
  6088. OP32 ("mulhl.s16",
  6089. OPCODE_INFO3 (0xf8008220,
  6090. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6091. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6092. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6093. CSKY_ISA_DSP_ENHANCE),
  6094. OP32 ("rmulll.s16",
  6095. OPCODE_INFO3 (0xf8008120,
  6096. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6097. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6098. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6099. CSKY_ISA_DSP_ENHANCE),
  6100. OP32 ("rmulhh.s16",
  6101. OPCODE_INFO3 (0xf8008360,
  6102. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6103. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6104. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6105. CSKY_ISA_DSP_ENHANCE),
  6106. OP32 ("rmulhl.s16",
  6107. OPCODE_INFO3 (0xf8008320,
  6108. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6109. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6110. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6111. CSKY_ISA_DSP_ENHANCE),
  6112. OP32 ("mulahh.s16.s",
  6113. OPCODE_INFO3 (0xf80083e0,
  6114. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6115. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6116. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6117. CSKY_ISA_DSP_ENHANCE),
  6118. OP32 ("mulahl.s16.s",
  6119. OPCODE_INFO3 (0xf80083a0,
  6120. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6121. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6122. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6123. CSKY_ISA_DSP_ENHANCE),
  6124. OP32 ("mulall.s16.e",
  6125. OPCODE_INFO3 (0xf80080a0,
  6126. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6127. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6128. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6129. CSKY_ISA_DSP_ENHANCE),
  6130. OP32 ("mulahh.s16.e",
  6131. OPCODE_INFO3 (0xf80082e0,
  6132. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6133. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6134. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6135. CSKY_ISA_DSP_ENHANCE),
  6136. OP32 ("mulahl.s16.e",
  6137. OPCODE_INFO3 (0xf80080e0,
  6138. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6139. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6140. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6141. CSKY_ISA_DSP_ENHANCE),
  6142. OP32 ("pmul.u16",
  6143. OPCODE_INFO3 (0xf80084a0,
  6144. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6145. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6146. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6147. CSKY_ISA_DSP_ENHANCE),
  6148. OP32 ("pmulx.u16",
  6149. OPCODE_INFO3 (0xf80084e0,
  6150. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6151. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6152. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6153. CSKY_ISA_DSP_ENHANCE),
  6154. OP32 ("pmul.s16",
  6155. OPCODE_INFO3 (0xf8008420,
  6156. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6157. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6158. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6159. CSKY_ISA_DSP_ENHANCE),
  6160. OP32 ("pmulx.s16",
  6161. OPCODE_INFO3 (0xf8008460,
  6162. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6163. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6164. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6165. CSKY_ISA_DSP_ENHANCE),
  6166. OP32 ("prmul.s16",
  6167. OPCODE_INFO3 (0xf8008520,
  6168. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6169. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6170. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6171. CSKY_ISA_DSP_ENHANCE),
  6172. OP32 ("prmulx.s16",
  6173. OPCODE_INFO3 (0xf8008560,
  6174. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6175. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6176. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6177. CSKY_ISA_DSP_ENHANCE),
  6178. OP32 ("prmul.s16.h",
  6179. OPCODE_INFO3 (0xf80085a0,
  6180. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6181. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6182. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6183. CSKY_ISA_DSP_ENHANCE),
  6184. OP32 ("prmul.s16.rh",
  6185. OPCODE_INFO3 (0xf80087a0,
  6186. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6187. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6188. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6189. CSKY_ISA_DSP_ENHANCE),
  6190. OP32 ("prmulx.s16.h",
  6191. OPCODE_INFO3 (0xf80085e0,
  6192. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6193. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6194. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6195. CSKY_ISA_DSP_ENHANCE),
  6196. OP32 ("prmulx.s16.rh",
  6197. OPCODE_INFO3 (0xf80087e0,
  6198. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6199. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6200. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6201. CSKY_ISA_DSP_ENHANCE),
  6202. OP32 ("mulca.s16.s",
  6203. OPCODE_INFO3 (0xf8008920,
  6204. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6205. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6206. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6207. CSKY_ISA_DSP_ENHANCE),
  6208. OP32 ("mulcax.s16.s",
  6209. OPCODE_INFO3 (0xf8008960,
  6210. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6211. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6212. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6213. CSKY_ISA_DSP_ENHANCE),
  6214. OP32 ("mulcs.s16",
  6215. OPCODE_INFO3 (0xf8008a20,
  6216. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6217. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6218. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6219. CSKY_ISA_DSP_ENHANCE),
  6220. OP32 ("mulcsr.s16",
  6221. OPCODE_INFO3 (0xf8008a60,
  6222. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6223. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6224. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6225. CSKY_ISA_DSP_ENHANCE),
  6226. OP32 ("mulcsx.s16",
  6227. OPCODE_INFO3 (0xf8008c20,
  6228. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6229. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6230. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6231. CSKY_ISA_DSP_ENHANCE),
  6232. OP32 ("mulaca.s16.s",
  6233. OPCODE_INFO3 (0xf80089a0,
  6234. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6235. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6236. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6237. CSKY_ISA_DSP_ENHANCE),
  6238. OP32 ("mulacax.s16.s",
  6239. OPCODE_INFO3 (0xf80089e0,
  6240. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6241. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6242. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6243. CSKY_ISA_DSP_ENHANCE),
  6244. OP32 ("mulacs.s16.s",
  6245. OPCODE_INFO3 (0xf8008ba0,
  6246. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6247. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6248. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6249. CSKY_ISA_DSP_ENHANCE),
  6250. OP32 ("mulacsr.s16.s",
  6251. OPCODE_INFO3 (0xf8008be0,
  6252. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6253. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6254. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6255. CSKY_ISA_DSP_ENHANCE),
  6256. OP32 ("mulacsx.s16.s",
  6257. OPCODE_INFO3 (0xf8008da0,
  6258. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6259. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6260. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6261. CSKY_ISA_DSP_ENHANCE),
  6262. OP32 ("mulsca.s16.s",
  6263. OPCODE_INFO3 (0xf8008de0,
  6264. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6265. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6266. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6267. CSKY_ISA_DSP_ENHANCE),
  6268. OP32 ("mulscax.s16.s",
  6269. OPCODE_INFO3 (0xf8008fa0,
  6270. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6271. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6272. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6273. CSKY_ISA_DSP_ENHANCE),
  6274. OP32 ("mulaca.s16.e",
  6275. OPCODE_INFO3 (0xf80088a0,
  6276. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6277. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6278. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6279. CSKY_ISA_DSP_ENHANCE),
  6280. OP32 ("mulacax.s16.e",
  6281. OPCODE_INFO3 (0xf80088e0,
  6282. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6283. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6284. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6285. CSKY_ISA_DSP_ENHANCE),
  6286. OP32 ("mulacs.s16.e",
  6287. OPCODE_INFO3 (0xf8008aa0,
  6288. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6289. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6290. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6291. CSKY_ISA_DSP_ENHANCE),
  6292. OP32 ("mulacsr.s16.e",
  6293. OPCODE_INFO3 (0xf8008ae0,
  6294. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6295. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6296. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6297. CSKY_ISA_DSP_ENHANCE),
  6298. OP32 ("mulacsx.s16.e",
  6299. OPCODE_INFO3 (0xf8008ca0,
  6300. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6301. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6302. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6303. CSKY_ISA_DSP_ENHANCE),
  6304. OP32 ("mulsca.s16.e",
  6305. OPCODE_INFO3 (0xf8008ce0,
  6306. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6307. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6308. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6309. CSKY_ISA_DSP_ENHANCE),
  6310. OP32 ("mulscax.s16.e",
  6311. OPCODE_INFO3 (0xf8008ea0,
  6312. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6313. (16_20, AREG, OPRND_SHIFT_0_BIT),
  6314. (21_25, AREG, OPRND_SHIFT_0_BIT)),
  6315. CSKY_ISA_DSP_ENHANCE),
  6316. /* The followings are vdsp instructions for ck810. */
  6317. OP32 ("vdup.8",
  6318. OPCODE_INFO2 (0xf8000e80,
  6319. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6320. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6321. CSKY_ISA_VDSP),
  6322. OP32 ("vdup.16",
  6323. OPCODE_INFO2 (0xf8100e80,
  6324. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6325. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6326. CSKY_ISA_VDSP),
  6327. OP32 ("vdup.32",
  6328. OPCODE_INFO2 (0xfa000e80,
  6329. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6330. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6331. CSKY_ISA_VDSP),
  6332. OP32 ("vmfvr.u8",
  6333. OPCODE_INFO2 (0xf8001200,
  6334. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6335. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6336. CSKY_ISA_VDSP),
  6337. OP32 ("vmfvr.u16",
  6338. OPCODE_INFO2 (0xf8001220,
  6339. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6340. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6341. CSKY_ISA_VDSP),
  6342. OP32 ("vmfvr.u32",
  6343. OPCODE_INFO2 (0xf8001240,
  6344. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6345. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6346. CSKY_ISA_VDSP),
  6347. OP32 ("vmfvr.s8",
  6348. OPCODE_INFO2 (0xf8001280,
  6349. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6350. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6351. CSKY_ISA_VDSP),
  6352. OP32 ("vmfvr.s16",
  6353. OPCODE_INFO2 (0xf80012a0,
  6354. (0_4, AREG, OPRND_SHIFT_0_BIT),
  6355. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6356. CSKY_ISA_VDSP),
  6357. OP32 ("vmtvr.u8",
  6358. OPCODE_INFO2 (0xf8001300,
  6359. (0_3or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
  6360. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  6361. CSKY_ISA_VDSP),
  6362. OP32 ("vmtvr.u16",
  6363. OPCODE_INFO2 (0xf8001320,
  6364. (0_3or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
  6365. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  6366. CSKY_ISA_VDSP),
  6367. OP32 ("vins.8",
  6368. OPCODE_INFO2 (0xf8001400,
  6369. (0_3or5_8, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
  6370. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6371. CSKY_ISA_VDSP),
  6372. OP32 ("vins.16",
  6373. OPCODE_INFO2 (0xf8101400,
  6374. (0_3or5_8, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
  6375. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6376. CSKY_ISA_VDSP),
  6377. OP32 ("vins.32",
  6378. OPCODE_INFO2 (0xfa001400,
  6379. (0_3or5_8, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
  6380. (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
  6381. CSKY_ISA_VDSP),
  6382. OP32 ("vmtvr.u32",
  6383. OPCODE_INFO2 (0xf8001340,
  6384. (0_3or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
  6385. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  6386. CSKY_ISA_VDSP),
  6387. OP32 ("vldd.8",
  6388. SOPCODE_INFO2 (0xf8002000,
  6389. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6390. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6391. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
  6392. CSKY_ISA_VDSP),
  6393. OP32 ("vldd.16",
  6394. SOPCODE_INFO2 (0xf8002100,
  6395. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6396. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6397. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
  6398. CSKY_ISA_VDSP),
  6399. OP32 ("vldd.32",
  6400. SOPCODE_INFO2 (0xf8002200,
  6401. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6402. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6403. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
  6404. CSKY_ISA_VDSP),
  6405. OP32 ("vldq.8",
  6406. SOPCODE_INFO2 (0xf8002400,
  6407. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6408. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6409. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
  6410. CSKY_ISA_VDSP),
  6411. OP32 ("vldq.16",
  6412. SOPCODE_INFO2 (0xf8002500,
  6413. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6414. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6415. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
  6416. CSKY_ISA_VDSP),
  6417. OP32 ("vldq.32",
  6418. SOPCODE_INFO2 (0xf8002600,
  6419. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6420. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6421. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
  6422. CSKY_ISA_VDSP),
  6423. OP32 ("vstd.8",
  6424. SOPCODE_INFO2 (0xf8002800,
  6425. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6426. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6427. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
  6428. CSKY_ISA_VDSP),
  6429. OP32 ("vstd.16",
  6430. SOPCODE_INFO2 (0xf8002900,
  6431. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6432. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6433. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
  6434. CSKY_ISA_VDSP),
  6435. OP32 ("vstd.32",
  6436. SOPCODE_INFO2 (0xf8002a00,
  6437. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6438. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6439. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
  6440. CSKY_ISA_VDSP),
  6441. OP32 ("vstq.8",
  6442. SOPCODE_INFO2 (0xf8002c00,
  6443. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6444. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6445. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
  6446. CSKY_ISA_VDSP),
  6447. OP32 ("vstq.16",
  6448. SOPCODE_INFO2 (0xf8002d00,
  6449. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6450. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6451. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
  6452. CSKY_ISA_VDSP),
  6453. OP32 ("vstq.32",
  6454. SOPCODE_INFO2 (0xf8002e00,
  6455. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6456. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6457. (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
  6458. CSKY_ISA_VDSP),
  6459. OP32 ("vldrd.8",
  6460. SOPCODE_INFO2 (0xf8003000,
  6461. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6462. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6463. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6464. CSKY_ISA_VDSP),
  6465. OP32 ("vldrd.16",
  6466. SOPCODE_INFO2 (0xf8003100,
  6467. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6468. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6469. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6470. CSKY_ISA_VDSP),
  6471. OP32 ("vldrd.32",
  6472. SOPCODE_INFO2 (0xf8003200,
  6473. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6474. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6475. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6476. CSKY_ISA_VDSP),
  6477. OP32 ("vldrq.8",
  6478. SOPCODE_INFO2 (0xf8003400,
  6479. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6480. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6481. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6482. CSKY_ISA_VDSP),
  6483. OP32 ("vldrq.16",
  6484. SOPCODE_INFO2 (0xf8003500,
  6485. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6486. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6487. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6488. CSKY_ISA_VDSP),
  6489. OP32 ("vldrq.32",
  6490. SOPCODE_INFO2 (0xf8003600,
  6491. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6492. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6493. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6494. CSKY_ISA_VDSP),
  6495. OP32 ("vstrd.8",
  6496. SOPCODE_INFO2 (0xf8003800,
  6497. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6498. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6499. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6500. CSKY_ISA_VDSP),
  6501. OP32 ("vstrd.16",
  6502. SOPCODE_INFO2 (0xf8003900,
  6503. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6504. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6505. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6506. CSKY_ISA_VDSP),
  6507. OP32 ("vstrd.32",
  6508. SOPCODE_INFO2 (0xf8003a00,
  6509. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6510. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6511. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6512. CSKY_ISA_VDSP),
  6513. OP32 ("vstrq.8",
  6514. SOPCODE_INFO2 (0xf8003c00,
  6515. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6516. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6517. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6518. CSKY_ISA_VDSP),
  6519. OP32 ("vstrq.16",
  6520. SOPCODE_INFO2 (0xf8003d00,
  6521. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6522. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6523. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6524. CSKY_ISA_VDSP),
  6525. OP32 ("vstrq.32",
  6526. SOPCODE_INFO2 (0xf8003e00,
  6527. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6528. BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
  6529. (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
  6530. CSKY_ISA_VDSP),
  6531. OP32 ("vmov",
  6532. OPCODE_INFO2 (0xf8000c00,
  6533. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6534. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6535. CSKY_ISA_VDSP),
  6536. OP32 ("vcadd.eu8",
  6537. OPCODE_INFO2 (0xf8000060,
  6538. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6539. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6540. CSKY_ISA_VDSP),
  6541. OP32 ("vcadd.eu16",
  6542. OPCODE_INFO2 (0xf8100060,
  6543. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6544. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6545. CSKY_ISA_VDSP),
  6546. OP32 ("vcadd.es8",
  6547. OPCODE_INFO2 (0xf8000070,
  6548. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6549. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6550. CSKY_ISA_VDSP),
  6551. OP32 ("vcadd.es16",
  6552. OPCODE_INFO2 (0xf8100070,
  6553. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6554. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6555. CSKY_ISA_VDSP),
  6556. OP32 ("vmov.eu8",
  6557. OPCODE_INFO2 (0xf8000c20,
  6558. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6559. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6560. CSKY_ISA_VDSP),
  6561. OP32 ("vmov.eu16",
  6562. OPCODE_INFO2 (0xf8100c20,
  6563. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6564. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6565. CSKY_ISA_VDSP),
  6566. OP32 ("vmov.es8",
  6567. OPCODE_INFO2 (0xf8000c30,
  6568. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6569. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6570. CSKY_ISA_VDSP),
  6571. OP32 ("vmov.es16",
  6572. OPCODE_INFO2 (0xf8100c30,
  6573. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6574. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6575. CSKY_ISA_VDSP),
  6576. OP32 ("vmov.u16.l",
  6577. OPCODE_INFO2 (0xf8100d00,
  6578. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6579. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6580. CSKY_ISA_VDSP),
  6581. OP32 ("vmov.u32.l",
  6582. OPCODE_INFO2 (0xfa000d00,
  6583. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6584. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6585. CSKY_ISA_VDSP),
  6586. OP32 ("vmov.s16.l",
  6587. OPCODE_INFO2 (0xf8100d10,
  6588. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6589. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6590. CSKY_ISA_VDSP),
  6591. OP32 ("vmov.s32.l",
  6592. OPCODE_INFO2 (0xfa000d10,
  6593. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6594. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6595. CSKY_ISA_VDSP),
  6596. OP32 ("vmov.u16.sl",
  6597. OPCODE_INFO2 (0xf8100d40,
  6598. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6599. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6600. CSKY_ISA_VDSP),
  6601. OP32 ("vmov.u32.sl",
  6602. OPCODE_INFO2 (0xfa000d40,
  6603. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6604. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6605. CSKY_ISA_VDSP),
  6606. OP32 ("vmov.s16.sl",
  6607. OPCODE_INFO2 (0xf8100d50,
  6608. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6609. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6610. CSKY_ISA_VDSP),
  6611. OP32 ("vmov.s32.sl",
  6612. OPCODE_INFO2 (0xfa000d50,
  6613. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6614. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6615. CSKY_ISA_VDSP),
  6616. OP32 ("vmov.u16.h",
  6617. OPCODE_INFO2 (0xf8100d60,
  6618. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6619. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6620. CSKY_ISA_VDSP),
  6621. OP32 ("vmov.u32.h",
  6622. OPCODE_INFO2 (0xfa000d60,
  6623. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6624. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6625. CSKY_ISA_VDSP),
  6626. OP32 ("vmov.s16.h",
  6627. OPCODE_INFO2 (0xf8100d70,
  6628. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6629. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6630. CSKY_ISA_VDSP),
  6631. OP32 ("vmov.s32.h",
  6632. OPCODE_INFO2 (0xfa000d70,
  6633. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6634. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6635. CSKY_ISA_VDSP),
  6636. OP32 ("vmov.u16.rh",
  6637. OPCODE_INFO2 (0xf8100d80,
  6638. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6639. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6640. CSKY_ISA_VDSP),
  6641. OP32 ("vmov.u32.rh",
  6642. OPCODE_INFO2 (0xfa000d80,
  6643. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6644. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6645. CSKY_ISA_VDSP),
  6646. OP32 ("vmov.s16.rh",
  6647. OPCODE_INFO2 (0xf8100d90,
  6648. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6649. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6650. CSKY_ISA_VDSP),
  6651. OP32 ("vmov.s32.rh",
  6652. OPCODE_INFO2 (0xfa000d90,
  6653. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6654. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6655. CSKY_ISA_VDSP),
  6656. OP32 ("vstou.u16.sl",
  6657. OPCODE_INFO2 (0xf8100dc0,
  6658. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6659. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6660. CSKY_ISA_VDSP),
  6661. OP32 ("vstou.u32.sl",
  6662. OPCODE_INFO2 (0xfa000dc0,
  6663. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6664. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6665. CSKY_ISA_VDSP),
  6666. OP32 ("vstou.s16.sl",
  6667. OPCODE_INFO2 (0xf8100dd0,
  6668. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6669. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6670. CSKY_ISA_VDSP),
  6671. OP32 ("vstou.s32.sl",
  6672. OPCODE_INFO2 (0xfa000dd0,
  6673. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6674. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6675. CSKY_ISA_VDSP),
  6676. OP32 ("vrev.8",
  6677. OPCODE_INFO2 (0xf8000e60,
  6678. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6679. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6680. CSKY_ISA_VDSP),
  6681. OP32 ("vrev.16",
  6682. OPCODE_INFO2 (0xf8100e60,
  6683. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6684. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6685. CSKY_ISA_VDSP),
  6686. OP32 ("vrev.32",
  6687. OPCODE_INFO2 (0xfa000e60,
  6688. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6689. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6690. CSKY_ISA_VDSP),
  6691. OP32 ("vcnt1.8",
  6692. OPCODE_INFO2 (0xf8000ea0,
  6693. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6694. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6695. CSKY_ISA_VDSP),
  6696. OP32 ("vclz.8",
  6697. OPCODE_INFO2 (0xf8000ec0,
  6698. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6699. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6700. CSKY_ISA_VDSP),
  6701. OP32 ("vclz.16",
  6702. OPCODE_INFO2 (0xf8100ec0,
  6703. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6704. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6705. CSKY_ISA_VDSP),
  6706. OP32 ("vclz.32",
  6707. OPCODE_INFO2 (0xfa000ec0,
  6708. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6709. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6710. CSKY_ISA_VDSP),
  6711. OP32 ("vcls.u8",
  6712. OPCODE_INFO2 (0xf8000ee0,
  6713. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6714. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6715. CSKY_ISA_VDSP),
  6716. OP32 ("vcls.u16",
  6717. OPCODE_INFO2 (0xf8100ee0,
  6718. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6719. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6720. CSKY_ISA_VDSP),
  6721. OP32 ("vcls.u32",
  6722. OPCODE_INFO2 (0xfa000ee0,
  6723. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6724. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6725. CSKY_ISA_VDSP),
  6726. OP32 ("vcls.s8",
  6727. OPCODE_INFO2 (0xf8000ef0,
  6728. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6729. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6730. CSKY_ISA_VDSP),
  6731. OP32 ("vcls.s16",
  6732. OPCODE_INFO2 (0xf8100ef0,
  6733. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6734. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6735. CSKY_ISA_VDSP),
  6736. OP32 ("vcls.s32",
  6737. OPCODE_INFO2 (0xfa000ef0,
  6738. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6739. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6740. CSKY_ISA_VDSP),
  6741. OP32 ("vabs.s8",
  6742. OPCODE_INFO2 (0xf8001010,
  6743. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6744. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6745. CSKY_ISA_VDSP),
  6746. OP32 ("vabs.s16",
  6747. OPCODE_INFO2 (0xf8101010,
  6748. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6749. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6750. CSKY_ISA_VDSP),
  6751. OP32 ("vabs.s32",
  6752. OPCODE_INFO2 (0xfa001010,
  6753. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6754. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6755. CSKY_ISA_VDSP),
  6756. OP32 ("vabs.u8.s",
  6757. OPCODE_INFO2 (0xf8001040,
  6758. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6759. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6760. CSKY_ISA_VDSP),
  6761. OP32 ("vabs.u16.s",
  6762. OPCODE_INFO2 (0xf8101040,
  6763. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6764. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6765. CSKY_ISA_VDSP),
  6766. OP32 ("vabs.u32.s",
  6767. OPCODE_INFO2 (0xfa001040,
  6768. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6769. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6770. CSKY_ISA_VDSP),
  6771. OP32 ("vabs.s8.s",
  6772. OPCODE_INFO2 (0xf8001050,
  6773. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6774. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6775. CSKY_ISA_VDSP),
  6776. OP32 ("vabs.s16.s",
  6777. OPCODE_INFO2 (0xf8101050,
  6778. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6779. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6780. CSKY_ISA_VDSP),
  6781. OP32 ("vabs.s32.s",
  6782. OPCODE_INFO2 (0xfa001050,
  6783. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6784. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6785. CSKY_ISA_VDSP),
  6786. OP32 ("vneg.u8",
  6787. OPCODE_INFO2 (0xf8001080,
  6788. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6789. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6790. CSKY_ISA_VDSP),
  6791. OP32 ("vneg.u16",
  6792. OPCODE_INFO2 (0xf8101080,
  6793. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6794. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6795. CSKY_ISA_VDSP),
  6796. OP32 ("vneg.u32",
  6797. OPCODE_INFO2 (0xfa001080,
  6798. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6799. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6800. CSKY_ISA_VDSP),
  6801. OP32 ("vneg.s8",
  6802. OPCODE_INFO2 (0xf8001090,
  6803. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6804. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6805. CSKY_ISA_VDSP),
  6806. OP32 ("vneg.s16",
  6807. OPCODE_INFO2 (0xf8101090,
  6808. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6809. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6810. CSKY_ISA_VDSP),
  6811. OP32 ("vneg.s32",
  6812. OPCODE_INFO2 (0xfa001090,
  6813. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6814. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6815. CSKY_ISA_VDSP),
  6816. OP32 ("vneg.u8.s",
  6817. OPCODE_INFO2 (0xf80010c0,
  6818. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6819. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6820. CSKY_ISA_VDSP),
  6821. OP32 ("vneg.u16.s",
  6822. OPCODE_INFO2 (0xf81010c0,
  6823. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6824. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6825. CSKY_ISA_VDSP),
  6826. OP32 ("vneg.u32.s",
  6827. OPCODE_INFO2 (0xfa0010c0,
  6828. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6829. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6830. CSKY_ISA_VDSP),
  6831. OP32 ("vneg.s8.s",
  6832. OPCODE_INFO2 (0xf80010d0,
  6833. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6834. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6835. CSKY_ISA_VDSP),
  6836. OP32 ("vneg.s16.s",
  6837. OPCODE_INFO2 (0xf81010d0,
  6838. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6839. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6840. CSKY_ISA_VDSP),
  6841. OP32 ("vneg.s32.s",
  6842. OPCODE_INFO2 (0xfa0010d0,
  6843. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6844. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6845. CSKY_ISA_VDSP),
  6846. OP32 ("vcmphsz.u8",
  6847. OPCODE_INFO2 (0xf8000880,
  6848. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6849. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6850. CSKY_ISA_VDSP),
  6851. OP32 ("vcmphsz.u16",
  6852. OPCODE_INFO2 (0xf8100880,
  6853. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6854. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6855. CSKY_ISA_VDSP),
  6856. OP32 ("vcmphsz.u32",
  6857. OPCODE_INFO2 (0xfa000880,
  6858. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6859. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6860. CSKY_ISA_VDSP),
  6861. OP32 ("vcmphsz.s8",
  6862. OPCODE_INFO2 (0xf8000890,
  6863. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6864. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6865. CSKY_ISA_VDSP),
  6866. OP32 ("vcmphsz.s16",
  6867. OPCODE_INFO2 (0xf8100890,
  6868. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6869. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6870. CSKY_ISA_VDSP),
  6871. OP32 ("vcmphsz.s32",
  6872. OPCODE_INFO2 (0xfa000890,
  6873. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6874. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6875. CSKY_ISA_VDSP),
  6876. OP32 ("vcmpltz.u8",
  6877. OPCODE_INFO2 (0xf80008a0,
  6878. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6879. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6880. CSKY_ISA_VDSP),
  6881. OP32 ("vcmpltz.u16",
  6882. OPCODE_INFO2 (0xf81008a0,
  6883. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6884. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6885. CSKY_ISA_VDSP),
  6886. OP32 ("vcmpltz.u32",
  6887. OPCODE_INFO2 (0xfa0008a0,
  6888. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6889. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6890. CSKY_ISA_VDSP),
  6891. OP32 ("vcmpltz.s8",
  6892. OPCODE_INFO2 (0xf80008b0,
  6893. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6894. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6895. CSKY_ISA_VDSP),
  6896. OP32 ("vcmpltz.s16",
  6897. OPCODE_INFO2 (0xf81008b0,
  6898. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6899. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6900. CSKY_ISA_VDSP),
  6901. OP32 ("vcmpltz.s32",
  6902. OPCODE_INFO2 (0xfa0008b0,
  6903. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6904. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6905. CSKY_ISA_VDSP),
  6906. OP32 ("vcmpnez.u8",
  6907. OPCODE_INFO2 (0xf80008c0,
  6908. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6909. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6910. CSKY_ISA_VDSP),
  6911. OP32 ("vcmpnez.u16",
  6912. OPCODE_INFO2 (0xf81008c0,
  6913. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6914. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6915. CSKY_ISA_VDSP),
  6916. OP32 ("vcmpnez.u32",
  6917. OPCODE_INFO2 (0xfa0008c0,
  6918. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6919. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6920. CSKY_ISA_VDSP),
  6921. OP32 ("vcmpnez.s8",
  6922. OPCODE_INFO2 (0xf80008d0,
  6923. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6924. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6925. CSKY_ISA_VDSP),
  6926. OP32 ("vcmpnez.s16",
  6927. OPCODE_INFO2 (0xf81008d0,
  6928. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6929. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6930. CSKY_ISA_VDSP),
  6931. OP32 ("vcmpnez.s32",
  6932. OPCODE_INFO2 (0xfa0008d0,
  6933. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6934. (16_19, VREG, OPRND_SHIFT_0_BIT)),
  6935. CSKY_ISA_VDSP),
  6936. OP32 ("vtrch.8",
  6937. OPCODE_INFO3 (0xf8000f40,
  6938. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6939. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6940. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6941. CSKY_ISA_VDSP),
  6942. OP32 ("vtrch.16",
  6943. OPCODE_INFO3 (0xf8100f40,
  6944. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6945. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6946. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6947. CSKY_ISA_VDSP),
  6948. OP32 ("vtrch.32",
  6949. OPCODE_INFO3 (0xfa000f40,
  6950. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6951. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6952. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6953. CSKY_ISA_VDSP),
  6954. OP32 ("vtrcl.8",
  6955. OPCODE_INFO3 (0xf8000f60,
  6956. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6957. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6958. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6959. CSKY_ISA_VDSP),
  6960. OP32 ("vtrcl.16",
  6961. OPCODE_INFO3 (0xf8100f60,
  6962. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6963. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6964. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6965. CSKY_ISA_VDSP),
  6966. OP32 ("vtrcl.32",
  6967. OPCODE_INFO3 (0xfa000f60,
  6968. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6969. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6970. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6971. CSKY_ISA_VDSP),
  6972. OP32 ("vadd.u8",
  6973. OPCODE_INFO3 (0xf8000000,
  6974. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6975. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6976. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6977. CSKY_ISA_VDSP),
  6978. OP32 ("vadd.u16",
  6979. OPCODE_INFO3 (0xf8100000,
  6980. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6981. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6982. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6983. CSKY_ISA_VDSP),
  6984. OP32 ("vadd.u32",
  6985. OPCODE_INFO3 (0xfa000000,
  6986. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6987. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6988. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6989. CSKY_ISA_VDSP),
  6990. OP32 ("vadd.s8",
  6991. OPCODE_INFO3 (0xf8000010,
  6992. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6993. (16_19, VREG, OPRND_SHIFT_0_BIT),
  6994. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  6995. CSKY_ISA_VDSP),
  6996. OP32 ("vadd.s16",
  6997. OPCODE_INFO3 (0xf8100010,
  6998. (0_3, VREG, OPRND_SHIFT_0_BIT),
  6999. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7000. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7001. CSKY_ISA_VDSP),
  7002. OP32 ("vadd.s32",
  7003. OPCODE_INFO3 (0xfa000010,
  7004. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7005. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7006. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7007. CSKY_ISA_VDSP),
  7008. OP32 ("vadd.eu8",
  7009. OPCODE_INFO3 (0xf8000020,
  7010. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7011. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7012. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7013. CSKY_ISA_VDSP),
  7014. OP32 ("vadd.eu16",
  7015. OPCODE_INFO3 (0xf8100020,
  7016. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7017. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7018. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7019. CSKY_ISA_VDSP),
  7020. OP32 ("vadd.es8",
  7021. OPCODE_INFO3 (0xf8000030,
  7022. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7023. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7024. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7025. CSKY_ISA_VDSP),
  7026. OP32 ("vadd.es16",
  7027. OPCODE_INFO3 (0xf8100030,
  7028. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7029. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7030. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7031. CSKY_ISA_VDSP),
  7032. OP32 ("vcadd.u8",
  7033. OPCODE_INFO3 (0xf8000040,
  7034. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7035. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7036. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7037. CSKY_ISA_VDSP),
  7038. OP32 ("vcadd.u16",
  7039. OPCODE_INFO3 (0xf8100040,
  7040. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7041. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7042. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7043. CSKY_ISA_VDSP),
  7044. OP32 ("vcadd.u32",
  7045. OPCODE_INFO3 (0xfa000040,
  7046. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7047. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7048. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7049. CSKY_ISA_VDSP),
  7050. OP32 ("vcadd.s8",
  7051. OPCODE_INFO3 (0xf8000050,
  7052. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7053. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7054. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7055. CSKY_ISA_VDSP),
  7056. OP32 ("vcadd.s16",
  7057. OPCODE_INFO3 (0xf8100050,
  7058. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7059. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7060. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7061. CSKY_ISA_VDSP),
  7062. OP32 ("vcadd.s32",
  7063. OPCODE_INFO3 (0xfa000050,
  7064. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7065. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7066. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7067. CSKY_ISA_VDSP),
  7068. OP32 ("vadd.xu16.sl",
  7069. OPCODE_INFO3 (0xf8100140,
  7070. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7071. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7072. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7073. CSKY_ISA_VDSP),
  7074. OP32 ("vadd.xu32.sl",
  7075. OPCODE_INFO3 (0xfa000140,
  7076. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7077. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7078. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7079. CSKY_ISA_VDSP),
  7080. OP32 ("vadd.xs16.sl",
  7081. OPCODE_INFO3 (0xf8100150,
  7082. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7083. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7084. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7085. CSKY_ISA_VDSP),
  7086. OP32 ("vadd.xs32.sl",
  7087. OPCODE_INFO3 (0xfa000150,
  7088. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7089. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7090. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7091. CSKY_ISA_VDSP),
  7092. OP32 ("vadd.xu16",
  7093. OPCODE_INFO3 (0xf8100160,
  7094. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7095. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7096. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7097. CSKY_ISA_VDSP),
  7098. OP32 ("vadd.xu32",
  7099. OPCODE_INFO3 (0xfa000160,
  7100. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7101. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7102. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7103. CSKY_ISA_VDSP),
  7104. OP32 ("vadd.xs16",
  7105. OPCODE_INFO3 (0xf8100170,
  7106. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7107. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7108. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7109. CSKY_ISA_VDSP),
  7110. OP32 ("vadd.xs32",
  7111. OPCODE_INFO3 (0xfa000170,
  7112. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7113. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7114. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7115. CSKY_ISA_VDSP),
  7116. OP32 ("vaddh.u8",
  7117. OPCODE_INFO3 (0xf8000180,
  7118. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7119. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7120. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7121. CSKY_ISA_VDSP),
  7122. OP32 ("vaddh.u16",
  7123. OPCODE_INFO3 (0xf8100180,
  7124. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7125. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7126. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7127. CSKY_ISA_VDSP),
  7128. OP32 ("vaddh.u32",
  7129. OPCODE_INFO3 (0xfa000180,
  7130. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7131. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7132. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7133. CSKY_ISA_VDSP),
  7134. OP32 ("vaddh.s8",
  7135. OPCODE_INFO3 (0xf8000190,
  7136. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7137. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7138. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7139. CSKY_ISA_VDSP),
  7140. OP32 ("vaddh.s16",
  7141. OPCODE_INFO3 (0xf8100190,
  7142. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7143. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7144. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7145. CSKY_ISA_VDSP),
  7146. OP32 ("vaddh.s32",
  7147. OPCODE_INFO3 (0xfa000190,
  7148. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7149. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7150. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7151. CSKY_ISA_VDSP),
  7152. OP32 ("vaddh.u8.r",
  7153. OPCODE_INFO3 (0xf80001a0,
  7154. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7155. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7156. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7157. CSKY_ISA_VDSP),
  7158. OP32 ("vaddh.u16.r",
  7159. OPCODE_INFO3 (0xf81001a0,
  7160. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7161. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7162. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7163. CSKY_ISA_VDSP),
  7164. OP32 ("vaddh.u32.r",
  7165. OPCODE_INFO3 (0xfa0001a0,
  7166. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7167. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7168. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7169. CSKY_ISA_VDSP),
  7170. OP32 ("vaddh.s8.r",
  7171. OPCODE_INFO3 (0xf80001b0,
  7172. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7173. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7174. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7175. CSKY_ISA_VDSP),
  7176. OP32 ("vaddh.s16.r",
  7177. OPCODE_INFO3 (0xf81001b0,
  7178. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7179. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7180. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7181. CSKY_ISA_VDSP),
  7182. OP32 ("vaddh.s32.r",
  7183. OPCODE_INFO3 (0xfa0001b0,
  7184. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7185. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7186. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7187. CSKY_ISA_VDSP),
  7188. OP32 ("vadd.u8.s",
  7189. OPCODE_INFO3 (0xf80001c0,
  7190. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7191. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7192. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7193. CSKY_ISA_VDSP),
  7194. OP32 ("vadd.u16.s",
  7195. OPCODE_INFO3 (0xf81001c0,
  7196. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7197. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7198. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7199. CSKY_ISA_VDSP),
  7200. OP32 ("vadd.u32.s",
  7201. OPCODE_INFO3 (0xfa0001c0,
  7202. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7203. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7204. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7205. CSKY_ISA_VDSP),
  7206. OP32 ("vadd.s8.s",
  7207. OPCODE_INFO3 (0xf80001d0,
  7208. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7209. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7210. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7211. CSKY_ISA_VDSP),
  7212. OP32 ("vadd.s16.s",
  7213. OPCODE_INFO3 (0xf81001d0,
  7214. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7215. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7216. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7217. CSKY_ISA_VDSP),
  7218. OP32 ("vadd.s32.s",
  7219. OPCODE_INFO3 (0xfa0001d0,
  7220. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7221. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7222. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7223. CSKY_ISA_VDSP),
  7224. OP32 ("vsub.u8",
  7225. OPCODE_INFO3 (0xf8000200,
  7226. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7227. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7228. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7229. CSKY_ISA_VDSP),
  7230. OP32 ("vsub.u16",
  7231. OPCODE_INFO3 (0xf8100200,
  7232. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7233. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7234. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7235. CSKY_ISA_VDSP),
  7236. OP32 ("vsub.u32",
  7237. OPCODE_INFO3 (0xfa000200,
  7238. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7239. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7240. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7241. CSKY_ISA_VDSP),
  7242. OP32 ("vsub.s8",
  7243. OPCODE_INFO3 (0xf8000210,
  7244. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7245. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7246. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7247. CSKY_ISA_VDSP),
  7248. OP32 ("vsub.s16",
  7249. OPCODE_INFO3 (0xf8100210,
  7250. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7251. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7252. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7253. CSKY_ISA_VDSP),
  7254. OP32 ("vsub.s32",
  7255. OPCODE_INFO3 (0xfa000210,
  7256. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7257. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7258. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7259. CSKY_ISA_VDSP),
  7260. OP32 ("vsub.eu8",
  7261. OPCODE_INFO3 (0xf8000220,
  7262. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7263. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7264. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7265. CSKY_ISA_VDSP),
  7266. OP32 ("vsub.eu16",
  7267. OPCODE_INFO3 (0xf8100220,
  7268. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7269. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7270. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7271. CSKY_ISA_VDSP),
  7272. OP32 ("vsub.eu32",
  7273. OPCODE_INFO3 (0xfa000220,
  7274. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7275. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7276. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7277. CSKY_ISA_VDSP),
  7278. OP32 ("vsub.es8",
  7279. OPCODE_INFO3 (0xf8000230,
  7280. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7281. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7282. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7283. CSKY_ISA_VDSP),
  7284. OP32 ("vsub.es16",
  7285. OPCODE_INFO3 (0xf8100230,
  7286. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7287. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7288. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7289. CSKY_ISA_VDSP),
  7290. OP32 ("vsub.es32",
  7291. OPCODE_INFO3 (0xfa000230,
  7292. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7293. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7294. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7295. CSKY_ISA_VDSP),
  7296. OP32 ("vsabs.u8",
  7297. OPCODE_INFO3 (0xf8000240,
  7298. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7299. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7300. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7301. CSKY_ISA_VDSP),
  7302. OP32 ("vsabs.u16",
  7303. OPCODE_INFO3 (0xf8100240,
  7304. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7305. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7306. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7307. CSKY_ISA_VDSP),
  7308. OP32 ("vsabs.u32",
  7309. OPCODE_INFO3 (0xfa000240,
  7310. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7311. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7312. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7313. CSKY_ISA_VDSP),
  7314. OP32 ("vsabs.s8",
  7315. OPCODE_INFO3 (0xf8000250,
  7316. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7317. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7318. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7319. CSKY_ISA_VDSP),
  7320. OP32 ("vsabs.s16",
  7321. OPCODE_INFO3 (0xf8100250,
  7322. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7323. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7324. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7325. CSKY_ISA_VDSP),
  7326. OP32 ("vsabs.s32",
  7327. OPCODE_INFO3 (0xfa000250,
  7328. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7329. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7330. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7331. CSKY_ISA_VDSP),
  7332. OP32 ("vsabs.eu8",
  7333. OPCODE_INFO3 (0xf8000260,
  7334. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7335. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7336. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7337. CSKY_ISA_VDSP),
  7338. OP32 ("vsabs.eu16",
  7339. OPCODE_INFO3 (0xf8100260,
  7340. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7341. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7342. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7343. CSKY_ISA_VDSP),
  7344. OP32 ("vsabs.es8",
  7345. OPCODE_INFO3 (0xf8000270,
  7346. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7347. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7348. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7349. CSKY_ISA_VDSP),
  7350. OP32 ("vsabs.es16",
  7351. OPCODE_INFO3 (0xf8100270,
  7352. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7353. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7354. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7355. CSKY_ISA_VDSP),
  7356. OP32 ("vsabsa.u8",
  7357. OPCODE_INFO3 (0xf8000280,
  7358. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7359. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7360. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7361. CSKY_ISA_VDSP),
  7362. OP32 ("vsabsa.u16",
  7363. OPCODE_INFO3 (0xf8100280,
  7364. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7365. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7366. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7367. CSKY_ISA_VDSP),
  7368. OP32 ("vsabsa.u32",
  7369. OPCODE_INFO3 (0xfa000280,
  7370. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7371. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7372. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7373. CSKY_ISA_VDSP),
  7374. OP32 ("vsabsa.s8",
  7375. OPCODE_INFO3 (0xf8000290,
  7376. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7377. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7378. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7379. CSKY_ISA_VDSP),
  7380. OP32 ("vsabsa.s16",
  7381. OPCODE_INFO3 (0xf8100290,
  7382. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7383. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7384. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7385. CSKY_ISA_VDSP),
  7386. OP32 ("vsabsa.s32",
  7387. OPCODE_INFO3 (0xfa000290,
  7388. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7389. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7390. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7391. CSKY_ISA_VDSP),
  7392. OP32 ("vsabsa.eu8",
  7393. OPCODE_INFO3 (0xf80002a0,
  7394. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7395. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7396. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7397. CSKY_ISA_VDSP),
  7398. OP32 ("vsabsa.eu16",
  7399. OPCODE_INFO3 (0xf81002a0,
  7400. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7401. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7402. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7403. CSKY_ISA_VDSP),
  7404. OP32 ("vsabsa.es8",
  7405. OPCODE_INFO3 (0xf80002b0,
  7406. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7407. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7408. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7409. CSKY_ISA_VDSP),
  7410. OP32 ("vsabsa.es16",
  7411. OPCODE_INFO3 (0xf81002b0,
  7412. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7413. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7414. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7415. CSKY_ISA_VDSP),
  7416. OP32 ("vsub.xu16",
  7417. OPCODE_INFO3 (0xf8100360,
  7418. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7419. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7420. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7421. CSKY_ISA_VDSP),
  7422. OP32 ("vsub.xu32",
  7423. OPCODE_INFO3 (0xfa000360,
  7424. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7425. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7426. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7427. CSKY_ISA_VDSP),
  7428. OP32 ("vsub.xs16",
  7429. OPCODE_INFO3 (0xf8100370,
  7430. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7431. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7432. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7433. CSKY_ISA_VDSP),
  7434. OP32 ("vsub.xs32",
  7435. OPCODE_INFO3 (0xfa000370,
  7436. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7437. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7438. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7439. CSKY_ISA_VDSP),
  7440. OP32 ("vsubh.u8",
  7441. OPCODE_INFO3 (0xf8000380,
  7442. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7443. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7444. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7445. CSKY_ISA_VDSP),
  7446. OP32 ("vsubh.u16",
  7447. OPCODE_INFO3 (0xf8100380,
  7448. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7449. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7450. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7451. CSKY_ISA_VDSP),
  7452. OP32 ("vsubh.u32",
  7453. OPCODE_INFO3 (0xfa000380,
  7454. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7455. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7456. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7457. CSKY_ISA_VDSP),
  7458. OP32 ("vsubh.s8",
  7459. OPCODE_INFO3 (0xf8000390,
  7460. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7461. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7462. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7463. CSKY_ISA_VDSP),
  7464. OP32 ("vsubh.s16",
  7465. OPCODE_INFO3 (0xf8100390,
  7466. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7467. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7468. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7469. CSKY_ISA_VDSP),
  7470. OP32 ("vsubh.s32",
  7471. OPCODE_INFO3 (0xfa000390,
  7472. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7473. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7474. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7475. CSKY_ISA_VDSP),
  7476. OP32 ("vsubh.u8.r",
  7477. OPCODE_INFO3 (0xf80003a0,
  7478. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7479. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7480. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7481. CSKY_ISA_VDSP),
  7482. OP32 ("vsubh.u16.r",
  7483. OPCODE_INFO3 (0xf81003a0,
  7484. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7485. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7486. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7487. CSKY_ISA_VDSP),
  7488. OP32 ("vsubh.u32.r",
  7489. OPCODE_INFO3 (0xfa0003a0,
  7490. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7491. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7492. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7493. CSKY_ISA_VDSP),
  7494. OP32 ("vsubh.s8.r",
  7495. OPCODE_INFO3 (0xf80003b0,
  7496. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7497. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7498. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7499. CSKY_ISA_VDSP),
  7500. OP32 ("vsubh.s16.r",
  7501. OPCODE_INFO3 (0xf81003b0,
  7502. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7503. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7504. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7505. CSKY_ISA_VDSP),
  7506. OP32 ("vsubh.s32.r",
  7507. OPCODE_INFO3 (0xfa0003b0,
  7508. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7509. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7510. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7511. CSKY_ISA_VDSP),
  7512. OP32 ("vsub.u8.s",
  7513. OPCODE_INFO3 (0xf80003c0,
  7514. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7515. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7516. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7517. CSKY_ISA_VDSP),
  7518. OP32 ("vsub.u16.s",
  7519. OPCODE_INFO3 (0xf81003c0,
  7520. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7521. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7522. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7523. CSKY_ISA_VDSP),
  7524. OP32 ("vsub.u32.s",
  7525. OPCODE_INFO3 (0xfa0003c0,
  7526. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7527. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7528. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7529. CSKY_ISA_VDSP),
  7530. OP32 ("vsub.s8.s",
  7531. OPCODE_INFO3 (0xf80003d0,
  7532. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7533. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7534. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7535. CSKY_ISA_VDSP),
  7536. OP32 ("vsub.s16.s",
  7537. OPCODE_INFO3 (0xf81003d0,
  7538. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7539. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7540. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7541. CSKY_ISA_VDSP),
  7542. OP32 ("vsub.s32.s",
  7543. OPCODE_INFO3 (0xfa0003d0,
  7544. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7545. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7546. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7547. CSKY_ISA_VDSP),
  7548. OP32 ("vmul.u8",
  7549. OPCODE_INFO3 (0xf8000400,
  7550. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7551. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7552. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7553. CSKY_ISA_VDSP),
  7554. OP32 ("vmul.u16",
  7555. OPCODE_INFO3 (0xf8100400,
  7556. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7557. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7558. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7559. CSKY_ISA_VDSP),
  7560. OP32 ("vmul.u32",
  7561. OPCODE_INFO3 (0xfa000400,
  7562. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7563. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7564. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7565. CSKY_ISA_VDSP),
  7566. OP32 ("vmul.s8",
  7567. OPCODE_INFO3 (0xf8000410,
  7568. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7569. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7570. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7571. CSKY_ISA_VDSP),
  7572. OP32 ("vmul.s16",
  7573. OPCODE_INFO3 (0xf8100410,
  7574. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7575. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7576. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7577. CSKY_ISA_VDSP),
  7578. OP32 ("vmul.s32",
  7579. OPCODE_INFO3 (0xfa000410,
  7580. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7581. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7582. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7583. CSKY_ISA_VDSP),
  7584. OP32 ("vmul.eu8",
  7585. OPCODE_INFO3 (0xf8000420,
  7586. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7587. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7588. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7589. CSKY_ISA_VDSP),
  7590. OP32 ("vmul.eu16",
  7591. OPCODE_INFO3 (0xf8100420,
  7592. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7593. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7594. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7595. CSKY_ISA_VDSP),
  7596. OP32 ("vmul.es8",
  7597. OPCODE_INFO3 (0xf8000430,
  7598. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7599. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7600. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7601. CSKY_ISA_VDSP),
  7602. OP32 ("vmul.es16",
  7603. OPCODE_INFO3 (0xf8100430,
  7604. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7605. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7606. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7607. CSKY_ISA_VDSP),
  7608. OP32 ("vmula.u8",
  7609. OPCODE_INFO3 (0xf8000440,
  7610. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7611. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7612. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7613. CSKY_ISA_VDSP),
  7614. OP32 ("vmula.u16",
  7615. OPCODE_INFO3 (0xf8100440,
  7616. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7617. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7618. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7619. CSKY_ISA_VDSP),
  7620. OP32 ("vmula.u32",
  7621. OPCODE_INFO3 (0xfa000440,
  7622. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7623. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7624. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7625. CSKY_ISA_VDSP),
  7626. OP32 ("vmula.s8",
  7627. OPCODE_INFO3 (0xf8000450,
  7628. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7629. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7630. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7631. CSKY_ISA_VDSP),
  7632. OP32 ("vmula.s16",
  7633. OPCODE_INFO3 (0xf8100450,
  7634. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7635. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7636. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7637. CSKY_ISA_VDSP),
  7638. OP32 ("vmula.s32",
  7639. OPCODE_INFO3 (0xfa000450,
  7640. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7641. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7642. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7643. CSKY_ISA_VDSP),
  7644. OP32 ("vmula.eu8",
  7645. OPCODE_INFO3 (0xf8000460,
  7646. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7647. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7648. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7649. CSKY_ISA_VDSP),
  7650. OP32 ("vmula.eu16",
  7651. OPCODE_INFO3 (0xf8100460,
  7652. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7653. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7654. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7655. CSKY_ISA_VDSP),
  7656. OP32 ("vmula.eu32",
  7657. OPCODE_INFO3 (0xfa000460,
  7658. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7659. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7660. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7661. CSKY_ISA_VDSP),
  7662. OP32 ("vmula.es8",
  7663. OPCODE_INFO3 (0xf8000470,
  7664. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7665. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7666. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7667. CSKY_ISA_VDSP),
  7668. OP32 ("vmula.es16",
  7669. OPCODE_INFO3 (0xf8100470,
  7670. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7671. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7672. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7673. CSKY_ISA_VDSP),
  7674. OP32 ("vmula.es32",
  7675. OPCODE_INFO3 (0xfa000470,
  7676. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7677. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7678. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7679. CSKY_ISA_VDSP),
  7680. OP32 ("vmuls.u8",
  7681. OPCODE_INFO3 (0xf8000480,
  7682. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7683. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7684. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7685. CSKY_ISA_VDSP),
  7686. OP32 ("vmuls.u16",
  7687. OPCODE_INFO3 (0xf8100480,
  7688. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7689. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7690. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7691. CSKY_ISA_VDSP),
  7692. OP32 ("vmuls.u32",
  7693. OPCODE_INFO3 (0xfa000480,
  7694. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7695. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7696. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7697. CSKY_ISA_VDSP),
  7698. OP32 ("vmuls.s8",
  7699. OPCODE_INFO3 (0xf8000490,
  7700. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7701. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7702. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7703. CSKY_ISA_VDSP),
  7704. OP32 ("vmuls.s16",
  7705. OPCODE_INFO3 (0xf8100490,
  7706. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7707. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7708. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7709. CSKY_ISA_VDSP),
  7710. OP32 ("vmuls.s32",
  7711. OPCODE_INFO3 (0xfa000490,
  7712. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7713. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7714. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7715. CSKY_ISA_VDSP),
  7716. OP32 ("vmuls.eu8",
  7717. OPCODE_INFO3 (0xf80004a0,
  7718. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7719. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7720. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7721. CSKY_ISA_VDSP),
  7722. OP32 ("vmuls.eu16",
  7723. OPCODE_INFO3 (0xf81004a0,
  7724. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7725. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7726. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7727. CSKY_ISA_VDSP),
  7728. OP32 ("vmuls.es8",
  7729. OPCODE_INFO3 (0xf80004b0,
  7730. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7731. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7732. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7733. CSKY_ISA_VDSP),
  7734. OP32 ("vmuls.es16",
  7735. OPCODE_INFO3 (0xf81004b0,
  7736. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7737. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7738. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7739. CSKY_ISA_VDSP),
  7740. OP32 ("vshr.u8",
  7741. OPCODE_INFO3 (0xf8000680,
  7742. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7743. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7744. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7745. CSKY_ISA_VDSP),
  7746. OP32 ("vshr.u16",
  7747. OPCODE_INFO3 (0xf8100680,
  7748. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7749. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7750. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7751. CSKY_ISA_VDSP),
  7752. OP32 ("vshr.u32",
  7753. OPCODE_INFO3 (0xfa000680,
  7754. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7755. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7756. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7757. CSKY_ISA_VDSP),
  7758. OP32 ("vshr.s8",
  7759. OPCODE_INFO3 (0xf8000690,
  7760. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7761. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7762. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7763. CSKY_ISA_VDSP),
  7764. OP32 ("vshr.s16",
  7765. OPCODE_INFO3 (0xf8100690,
  7766. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7767. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7768. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7769. CSKY_ISA_VDSP),
  7770. OP32 ("vshr.s32",
  7771. OPCODE_INFO3 (0xfa000690,
  7772. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7773. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7774. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7775. CSKY_ISA_VDSP),
  7776. OP32 ("vshr.u8.r",
  7777. OPCODE_INFO3 (0xf80006c0,
  7778. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7779. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7780. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7781. CSKY_ISA_VDSP),
  7782. OP32 ("vshr.u16.r",
  7783. OPCODE_INFO3 (0xf81006c0,
  7784. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7785. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7786. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7787. CSKY_ISA_VDSP),
  7788. OP32 ("vshr.u32.r",
  7789. OPCODE_INFO3 (0xfa0006c0,
  7790. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7791. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7792. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7793. CSKY_ISA_VDSP),
  7794. OP32 ("vshr.s8.r",
  7795. OPCODE_INFO3 (0xf80006d0,
  7796. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7797. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7798. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7799. CSKY_ISA_VDSP),
  7800. OP32 ("vshr.s16.r",
  7801. OPCODE_INFO3 (0xf81006d0,
  7802. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7803. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7804. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7805. CSKY_ISA_VDSP),
  7806. OP32 ("vshri.u8",
  7807. OPCODE_INFO3 (0xf8000600,
  7808. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7809. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7810. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7811. CSKY_ISA_VDSP),
  7812. OP32 ("vshri.u16",
  7813. OPCODE_INFO3 (0xf8100600,
  7814. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7815. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7816. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7817. CSKY_ISA_VDSP),
  7818. OP32 ("vshri.u32",
  7819. OPCODE_INFO3 (0xfa000600,
  7820. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7821. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7822. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7823. CSKY_ISA_VDSP),
  7824. OP32 ("vshri.s8",
  7825. OPCODE_INFO3 (0xf8000610,
  7826. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7827. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7828. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7829. CSKY_ISA_VDSP),
  7830. OP32 ("vshri.s16",
  7831. OPCODE_INFO3 (0xf8100610,
  7832. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7833. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7834. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7835. CSKY_ISA_VDSP),
  7836. OP32 ("vshri.s32",
  7837. OPCODE_INFO3 (0xfa000610,
  7838. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7839. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7840. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7841. CSKY_ISA_VDSP),
  7842. OP32 ("vshri.u8.r",
  7843. OPCODE_INFO3 (0xf8000640,
  7844. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7845. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7846. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7847. CSKY_ISA_VDSP),
  7848. OP32 ("vshri.u16.r",
  7849. OPCODE_INFO3 (0xf8100640,
  7850. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7851. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7852. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7853. CSKY_ISA_VDSP),
  7854. OP32 ("vshri.u32.r",
  7855. OPCODE_INFO3 (0xfa000640,
  7856. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7857. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7858. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7859. CSKY_ISA_VDSP),
  7860. OP32 ("vshri.s8.r",
  7861. OPCODE_INFO3 (0xf8000650,
  7862. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7863. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7864. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7865. CSKY_ISA_VDSP),
  7866. OP32 ("vshri.s16.r",
  7867. OPCODE_INFO3 (0xf8100650,
  7868. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7869. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7870. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7871. CSKY_ISA_VDSP),
  7872. OP32 ("vshri.s32.r",
  7873. OPCODE_INFO3 (0xfa000650,
  7874. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7875. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7876. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7877. CSKY_ISA_VDSP),
  7878. OP32 ("vshr.s32.r",
  7879. OPCODE_INFO3 (0xfa0006d0,
  7880. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7881. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7882. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7883. CSKY_ISA_VDSP),
  7884. OP32 ("vshr.s32.r",
  7885. OPCODE_INFO3 (0xfa0006d0,
  7886. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7887. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7888. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7889. CSKY_ISA_VDSP),
  7890. OP32 ("vshl.u8",
  7891. OPCODE_INFO3 (0xf8000780,
  7892. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7893. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7894. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7895. CSKY_ISA_VDSP),
  7896. OP32 ("vshl.u16",
  7897. OPCODE_INFO3 (0xf8100780,
  7898. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7899. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7900. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7901. CSKY_ISA_VDSP),
  7902. OP32 ("vshl.u32",
  7903. OPCODE_INFO3 (0xfa000780,
  7904. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7905. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7906. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7907. CSKY_ISA_VDSP),
  7908. OP32 ("vshl.s8",
  7909. OPCODE_INFO3 (0xf8000790,
  7910. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7911. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7912. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7913. CSKY_ISA_VDSP),
  7914. OP32 ("vshl.s16",
  7915. OPCODE_INFO3 (0xf8100790,
  7916. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7917. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7918. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7919. CSKY_ISA_VDSP),
  7920. OP32 ("vshl.s32",
  7921. OPCODE_INFO3 (0xfa000790,
  7922. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7923. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7924. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7925. CSKY_ISA_VDSP),
  7926. OP32 ("vshl.u8.s",
  7927. OPCODE_INFO3 (0xf80007c0,
  7928. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7929. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7930. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7931. CSKY_ISA_VDSP),
  7932. OP32 ("vshl.u16.s",
  7933. OPCODE_INFO3 (0xf81007c0,
  7934. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7935. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7936. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7937. CSKY_ISA_VDSP),
  7938. OP32 ("vshl.u32.s",
  7939. OPCODE_INFO3 (0xfa0007c0,
  7940. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7941. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7942. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7943. CSKY_ISA_VDSP),
  7944. OP32 ("vshl.s8.s",
  7945. OPCODE_INFO3 (0xf80007d0,
  7946. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7947. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7948. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7949. CSKY_ISA_VDSP),
  7950. OP32 ("vshl.s16.s",
  7951. OPCODE_INFO3 (0xf81007d0,
  7952. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7953. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7954. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7955. CSKY_ISA_VDSP),
  7956. OP32 ("vshl.s32.s",
  7957. OPCODE_INFO3 (0xfa0007d0,
  7958. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7959. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7960. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  7961. CSKY_ISA_VDSP),
  7962. OP32 ("vshli.u8",
  7963. OPCODE_INFO3 (0xf8000700,
  7964. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7965. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7966. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7967. CSKY_ISA_VDSP),
  7968. OP32 ("vshli.u16",
  7969. OPCODE_INFO3 (0xf8100700,
  7970. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7971. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7972. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7973. CSKY_ISA_VDSP),
  7974. OP32 ("vshli.u32",
  7975. OPCODE_INFO3 (0xfa000700,
  7976. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7977. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7978. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7979. CSKY_ISA_VDSP),
  7980. OP32 ("vshli.s8",
  7981. OPCODE_INFO3 (0xf8000710,
  7982. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7983. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7984. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7985. CSKY_ISA_VDSP),
  7986. OP32 ("vshli.s16",
  7987. OPCODE_INFO3 (0xf8100710,
  7988. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7989. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7990. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7991. CSKY_ISA_VDSP),
  7992. OP32 ("vshli.s32",
  7993. OPCODE_INFO3 (0xfa000710,
  7994. (0_3, VREG, OPRND_SHIFT_0_BIT),
  7995. (16_19, VREG, OPRND_SHIFT_0_BIT),
  7996. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  7997. CSKY_ISA_VDSP),
  7998. OP32 ("vshli.u8.s",
  7999. OPCODE_INFO3 (0xf8000740,
  8000. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8001. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8002. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  8003. CSKY_ISA_VDSP),
  8004. OP32 ("vshli.u16.s",
  8005. OPCODE_INFO3 (0xf8100740,
  8006. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8007. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8008. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  8009. CSKY_ISA_VDSP),
  8010. OP32 ("vshli.u32.s",
  8011. OPCODE_INFO3 (0xfa000740,
  8012. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8013. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8014. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  8015. CSKY_ISA_VDSP),
  8016. OP32 ("vshli.s8.s",
  8017. OPCODE_INFO3 (0xf8000750,
  8018. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8019. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8020. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  8021. CSKY_ISA_VDSP),
  8022. OP32 ("vshli.s16.s",
  8023. OPCODE_INFO3 (0xf8100750,
  8024. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8025. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8026. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  8027. CSKY_ISA_VDSP),
  8028. OP32 ("vshli.s32.s",
  8029. OPCODE_INFO3 (0xfa000750,
  8030. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8031. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8032. (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
  8033. CSKY_ISA_VDSP),
  8034. OP32 ("vcmphs.u8",
  8035. OPCODE_INFO3 (0xf8000800,
  8036. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8037. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8038. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8039. CSKY_ISA_VDSP),
  8040. OP32 ("vcmphs.u16",
  8041. OPCODE_INFO3 (0xf8100800,
  8042. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8043. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8044. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8045. CSKY_ISA_VDSP),
  8046. OP32 ("vcmphs.u32",
  8047. OPCODE_INFO3 (0xfa000800,
  8048. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8049. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8050. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8051. CSKY_ISA_VDSP),
  8052. OP32 ("vcmphs.s8",
  8053. OPCODE_INFO3 (0xf8000810,
  8054. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8055. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8056. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8057. CSKY_ISA_VDSP),
  8058. OP32 ("vcmphs.s16",
  8059. OPCODE_INFO3 (0xf8100810,
  8060. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8061. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8062. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8063. CSKY_ISA_VDSP),
  8064. OP32 ("vcmphs.s32",
  8065. OPCODE_INFO3 (0xfa000810,
  8066. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8067. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8068. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8069. CSKY_ISA_VDSP),
  8070. OP32 ("vcmplt.u8",
  8071. OPCODE_INFO3 (0xf8000820,
  8072. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8073. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8074. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8075. CSKY_ISA_VDSP),
  8076. OP32 ("vcmplt.u16",
  8077. OPCODE_INFO3 (0xf8100820,
  8078. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8079. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8080. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8081. CSKY_ISA_VDSP),
  8082. OP32 ("vcmplt.u32",
  8083. OPCODE_INFO3 (0xfa000820,
  8084. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8085. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8086. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8087. CSKY_ISA_VDSP),
  8088. OP32 ("vcmplt.s8",
  8089. OPCODE_INFO3 (0xf8000830,
  8090. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8091. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8092. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8093. CSKY_ISA_VDSP),
  8094. OP32 ("vcmplt.s16",
  8095. OPCODE_INFO3 (0xf8100830,
  8096. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8097. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8098. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8099. CSKY_ISA_VDSP),
  8100. OP32 ("vcmplt.s32",
  8101. OPCODE_INFO3 (0xfa000830,
  8102. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8103. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8104. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8105. CSKY_ISA_VDSP),
  8106. OP32 ("vcmpne.u8",
  8107. OPCODE_INFO3 (0xf8000840,
  8108. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8109. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8110. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8111. CSKY_ISA_VDSP),
  8112. OP32 ("vcmpne.u16",
  8113. OPCODE_INFO3 (0xf8100840,
  8114. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8115. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8116. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8117. CSKY_ISA_VDSP),
  8118. OP32 ("vcmpne.u32",
  8119. OPCODE_INFO3 (0xfa000840,
  8120. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8121. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8122. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8123. CSKY_ISA_VDSP),
  8124. OP32 ("vcmpne.s8",
  8125. OPCODE_INFO3 (0xf8000850,
  8126. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8127. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8128. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8129. CSKY_ISA_VDSP),
  8130. OP32 ("vcmpne.s16",
  8131. OPCODE_INFO3 (0xf8100850,
  8132. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8133. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8134. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8135. CSKY_ISA_VDSP),
  8136. OP32 ("vcmpne.s32",
  8137. OPCODE_INFO3 (0xfa000850,
  8138. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8139. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8140. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8141. CSKY_ISA_VDSP),
  8142. OP32 ("vmax.u8",
  8143. OPCODE_INFO3 (0xf8000900,
  8144. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8145. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8146. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8147. CSKY_ISA_VDSP),
  8148. OP32 ("vmax.u16",
  8149. OPCODE_INFO3 (0xf8100900,
  8150. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8151. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8152. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8153. CSKY_ISA_VDSP),
  8154. OP32 ("vmax.u32",
  8155. OPCODE_INFO3 (0xfa000900,
  8156. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8157. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8158. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8159. CSKY_ISA_VDSP),
  8160. OP32 ("vmax.s8",
  8161. OPCODE_INFO3 (0xf8000910,
  8162. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8163. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8164. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8165. CSKY_ISA_VDSP),
  8166. OP32 ("vmax.s16",
  8167. OPCODE_INFO3 (0xf8100910,
  8168. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8169. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8170. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8171. CSKY_ISA_VDSP),
  8172. OP32 ("vmax.s32",
  8173. OPCODE_INFO3 (0xfa000910,
  8174. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8175. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8176. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8177. CSKY_ISA_VDSP),
  8178. OP32 ("vmin.u8",
  8179. OPCODE_INFO3 (0xf8000920,
  8180. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8181. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8182. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8183. CSKY_ISA_VDSP),
  8184. OP32 ("vmin.u16",
  8185. OPCODE_INFO3 (0xf8100920,
  8186. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8187. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8188. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8189. CSKY_ISA_VDSP),
  8190. OP32 ("vmin.u32",
  8191. OPCODE_INFO3 (0xfa000920,
  8192. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8193. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8194. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8195. CSKY_ISA_VDSP),
  8196. OP32 ("vmin.s8",
  8197. OPCODE_INFO3 (0xf8000930,
  8198. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8199. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8200. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8201. CSKY_ISA_VDSP),
  8202. OP32 ("vmin.s16",
  8203. OPCODE_INFO3 (0xf8100930,
  8204. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8205. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8206. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8207. CSKY_ISA_VDSP),
  8208. OP32 ("vmin.s32",
  8209. OPCODE_INFO3 (0xfa000930,
  8210. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8211. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8212. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8213. CSKY_ISA_VDSP),
  8214. OP32 ("vcmax.u8",
  8215. OPCODE_INFO3 (0xf8000980,
  8216. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8217. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8218. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8219. CSKY_ISA_VDSP),
  8220. OP32 ("vcmax.u16",
  8221. OPCODE_INFO3 (0xf8100980,
  8222. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8223. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8224. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8225. CSKY_ISA_VDSP),
  8226. OP32 ("vcmax.u32",
  8227. OPCODE_INFO3 (0xfa000980,
  8228. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8229. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8230. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8231. CSKY_ISA_VDSP),
  8232. OP32 ("vcmax.s8",
  8233. OPCODE_INFO3 (0xf8000990,
  8234. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8235. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8236. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8237. CSKY_ISA_VDSP),
  8238. OP32 ("vcmax.s16",
  8239. OPCODE_INFO3 (0xf8100990,
  8240. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8241. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8242. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8243. CSKY_ISA_VDSP),
  8244. OP32 ("vcmax.s32",
  8245. OPCODE_INFO3 (0xfa000990,
  8246. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8247. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8248. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8249. CSKY_ISA_VDSP),
  8250. OP32 ("vcmin.u8",
  8251. OPCODE_INFO3 (0xf80009a0,
  8252. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8253. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8254. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8255. CSKY_ISA_VDSP),
  8256. OP32 ("vcmin.u16",
  8257. OPCODE_INFO3 (0xf81009a0,
  8258. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8259. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8260. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8261. CSKY_ISA_VDSP),
  8262. OP32 ("vcmin.u32",
  8263. OPCODE_INFO3 (0xfa0009a0,
  8264. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8265. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8266. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8267. CSKY_ISA_VDSP),
  8268. OP32 ("vcmin.s8",
  8269. OPCODE_INFO3 (0xf80009b0,
  8270. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8271. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8272. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8273. CSKY_ISA_VDSP),
  8274. OP32 ("vcmin.s16",
  8275. OPCODE_INFO3 (0xf81009b0,
  8276. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8277. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8278. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8279. CSKY_ISA_VDSP),
  8280. OP32 ("vcmin.s32",
  8281. OPCODE_INFO3 (0xfa0009b0,
  8282. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8283. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8284. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8285. CSKY_ISA_VDSP),
  8286. OP32 ("vand.8",
  8287. OPCODE_INFO3 (0xf8000a00,
  8288. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8289. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8290. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8291. CSKY_ISA_VDSP),
  8292. OP32 ("vand.16",
  8293. OPCODE_INFO3 (0xf8100a00,
  8294. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8295. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8296. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8297. CSKY_ISA_VDSP),
  8298. OP32 ("vand.32",
  8299. OPCODE_INFO3 (0xfa000a00,
  8300. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8301. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8302. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8303. CSKY_ISA_VDSP),
  8304. OP32 ("vandn.8",
  8305. OPCODE_INFO3 (0xf8000a20,
  8306. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8307. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8308. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8309. CSKY_ISA_VDSP),
  8310. OP32 ("vandn.16",
  8311. OPCODE_INFO3 (0xf8100a20,
  8312. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8313. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8314. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8315. CSKY_ISA_VDSP),
  8316. OP32 ("vandn.32",
  8317. OPCODE_INFO3 (0xfa000a20,
  8318. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8319. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8320. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8321. CSKY_ISA_VDSP),
  8322. OP32 ("vor.8",
  8323. OPCODE_INFO3 (0xf8000a40,
  8324. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8325. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8326. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8327. CSKY_ISA_VDSP),
  8328. OP32 ("vor.16",
  8329. OPCODE_INFO3 (0xf8100a40,
  8330. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8331. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8332. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8333. CSKY_ISA_VDSP),
  8334. OP32 ("vor.32",
  8335. OPCODE_INFO3 (0xfa000a40,
  8336. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8337. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8338. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8339. CSKY_ISA_VDSP),
  8340. OP32 ("vnor.8",
  8341. OPCODE_INFO3 (0xf8000a60,
  8342. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8343. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8344. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8345. CSKY_ISA_VDSP),
  8346. OP32 ("vnor.16",
  8347. OPCODE_INFO3 (0xf8100a60,
  8348. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8349. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8350. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8351. CSKY_ISA_VDSP),
  8352. OP32 ("vnor.32",
  8353. OPCODE_INFO3 (0xfa000a60,
  8354. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8355. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8356. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8357. CSKY_ISA_VDSP),
  8358. OP32 ("vxor.8",
  8359. OPCODE_INFO3 (0xf8000a80,
  8360. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8361. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8362. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8363. CSKY_ISA_VDSP),
  8364. OP32 ("vxor.16",
  8365. OPCODE_INFO3 (0xf8100a80,
  8366. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8367. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8368. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8369. CSKY_ISA_VDSP),
  8370. OP32 ("vxor.32",
  8371. OPCODE_INFO3 (0xfa000a80,
  8372. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8373. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8374. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8375. CSKY_ISA_VDSP),
  8376. OP32 ("vtst.8",
  8377. OPCODE_INFO3 (0xf8000b20,
  8378. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8379. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8380. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8381. CSKY_ISA_VDSP),
  8382. OP32 ("vtst.16",
  8383. OPCODE_INFO3 (0xf8100b20,
  8384. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8385. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8386. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8387. CSKY_ISA_VDSP),
  8388. OP32 ("vtst.32",
  8389. OPCODE_INFO3 (0xfa000b20,
  8390. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8391. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8392. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8393. CSKY_ISA_VDSP),
  8394. OP32 ("vbpermz.8",
  8395. OPCODE_INFO3 (0xf8000f00,
  8396. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8397. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8398. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8399. CSKY_ISA_VDSP),
  8400. OP32 ("vbpermz.16",
  8401. OPCODE_INFO3 (0xf8100f00,
  8402. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8403. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8404. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8405. CSKY_ISA_VDSP),
  8406. OP32 ("vbpermz.32",
  8407. OPCODE_INFO3 (0xfa000f00,
  8408. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8409. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8410. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8411. CSKY_ISA_VDSP),
  8412. OP32 ("vbperm.8",
  8413. OPCODE_INFO3 (0xf8000f20,
  8414. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8415. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8416. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8417. CSKY_ISA_VDSP),
  8418. OP32 ("vbperm.16",
  8419. OPCODE_INFO3 (0xf8100f20,
  8420. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8421. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8422. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8423. CSKY_ISA_VDSP),
  8424. OP32 ("vbperm.32",
  8425. OPCODE_INFO3 (0xfa000f20,
  8426. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8427. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8428. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8429. CSKY_ISA_VDSP),
  8430. OP32 ("vdch.8",
  8431. OPCODE_INFO3 (0xf8000fc0,
  8432. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8433. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8434. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8435. CSKY_ISA_VDSP),
  8436. OP32 ("vdch.16",
  8437. OPCODE_INFO3 (0xf8100fc0,
  8438. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8439. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8440. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8441. CSKY_ISA_VDSP),
  8442. OP32 ("vdch.32",
  8443. OPCODE_INFO3 (0xfa000fc0,
  8444. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8445. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8446. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8447. CSKY_ISA_VDSP),
  8448. OP32 ("vdcl.8",
  8449. OPCODE_INFO3 (0xf8000fe0,
  8450. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8451. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8452. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8453. CSKY_ISA_VDSP),
  8454. OP32 ("vdcl.16",
  8455. OPCODE_INFO3 (0xf8100fe0,
  8456. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8457. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8458. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8459. CSKY_ISA_VDSP),
  8460. OP32 ("vdcl.32",
  8461. OPCODE_INFO3 (0xfa000fe0,
  8462. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8463. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8464. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8465. CSKY_ISA_VDSP),
  8466. OP32 ("vich.8",
  8467. OPCODE_INFO3 (0xf8000f80,
  8468. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8469. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8470. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8471. CSKY_ISA_VDSP),
  8472. OP32 ("vich.16",
  8473. OPCODE_INFO3 (0xf8100f80,
  8474. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8475. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8476. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8477. CSKY_ISA_VDSP),
  8478. OP32 ("vich.32",
  8479. OPCODE_INFO3 (0xfa000f80,
  8480. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8481. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8482. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8483. CSKY_ISA_VDSP),
  8484. OP32 ("vicl.8",
  8485. OPCODE_INFO3 (0xf8000fa0,
  8486. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8487. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8488. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8489. CSKY_ISA_VDSP),
  8490. OP32 ("vicl.16",
  8491. OPCODE_INFO3 (0xf8100fa0,
  8492. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8493. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8494. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8495. CSKY_ISA_VDSP),
  8496. OP32 ("vicl.32",
  8497. OPCODE_INFO3 (0xfa000fa0,
  8498. (0_3, VREG, OPRND_SHIFT_0_BIT),
  8499. (16_19, VREG, OPRND_SHIFT_0_BIT),
  8500. (21_24, VREG, OPRND_SHIFT_0_BIT)),
  8501. CSKY_ISA_VDSP),
  8502. #define OPRND_SHIFT0(mask, type) (mask, type, OPRND_SHIFT_0_BIT)
  8503. #define OPRND_SHIFT1(mask, type) (mask, type, OPRND_SHIFT_1_BIT)
  8504. #define OPRND_SHIFT2(mask, type) (mask, type, OPRND_SHIFT_2_BIT)
  8505. #define OPRND_SHIFT3(mask, type) (mask, type, OPRND_SHIFT_3_BIT)
  8506. #define OPRND_SHIFT4(mask, type) (mask, type, OPRND_SHIFT_4_BIT)
  8507. /* The followings are 860 floating instructions. */
  8508. OP32 ("fadd.16",
  8509. OPCODE_INFO3 (0xf400c800,
  8510. OPRND_SHIFT0 (0_4, FREG),
  8511. OPRND_SHIFT0 (16_20, FREG),
  8512. OPRND_SHIFT0 (21_25, FREG)),
  8513. CSKY_ISA_FLOAT_7E60),
  8514. OP32 ("faddh",
  8515. OPCODE_INFO3 (0xf400c800,
  8516. OPRND_SHIFT0 (0_4, FREG),
  8517. OPRND_SHIFT0 (16_20, FREG),
  8518. OPRND_SHIFT0 (21_25, FREG)),
  8519. CSKY_ISA_FLOAT_7E60),
  8520. OP32 ("fsub.16",
  8521. OPCODE_INFO3 (0xf400c820,
  8522. OPRND_SHIFT0 (0_4, FREG),
  8523. OPRND_SHIFT0 (16_20, FREG),
  8524. OPRND_SHIFT0 (21_25, FREG)),
  8525. CSKY_ISA_FLOAT_7E60),
  8526. OP32 ("fsubh",
  8527. OPCODE_INFO3 (0xf400c820,
  8528. OPRND_SHIFT0 (0_4, FREG),
  8529. OPRND_SHIFT0 (16_20, FREG),
  8530. OPRND_SHIFT0 (21_25, FREG)),
  8531. CSKY_ISA_FLOAT_7E60),
  8532. OP32 ("fmov.16",
  8533. OPCODE_INFO2 (0xf400c880,
  8534. OPRND_SHIFT0 (0_4, FREG),
  8535. OPRND_SHIFT0 (16_20, FREG)),
  8536. CSKY_ISA_FLOAT_7E60),
  8537. OP32 ("fmovh",
  8538. OPCODE_INFO2 (0xf400c880,
  8539. OPRND_SHIFT0 (0_4, FREG),
  8540. OPRND_SHIFT0 (16_20, FREG)),
  8541. CSKY_ISA_FLOAT_7E60),
  8542. OP32 ("fabs.16",
  8543. OPCODE_INFO2 (0xf400c8c0,
  8544. OPRND_SHIFT0 (0_4, FREG),
  8545. OPRND_SHIFT0 (16_20, FREG)),
  8546. CSKY_ISA_FLOAT_7E60),
  8547. OP32 ("fabsh",
  8548. OPCODE_INFO2 (0xf400c8c0,
  8549. OPRND_SHIFT0 (0_4, FREG),
  8550. OPRND_SHIFT0 (16_20, FREG)),
  8551. CSKY_ISA_FLOAT_7E60),
  8552. OP32 ("fneg.16",
  8553. OPCODE_INFO2 (0xf400c8e0,
  8554. OPRND_SHIFT0 (0_4, FREG),
  8555. OPRND_SHIFT0 (16_20, FREG)),
  8556. CSKY_ISA_FLOAT_7E60),
  8557. OP32 ("fnegh",
  8558. OPCODE_INFO2 (0xf400c8e0,
  8559. OPRND_SHIFT0 (0_4, FREG),
  8560. OPRND_SHIFT0 (16_20, FREG)),
  8561. CSKY_ISA_FLOAT_7E60),
  8562. OP32 ("fcmphsz.16",
  8563. OPCODE_INFO1 (0xf400c900,
  8564. OPRND_SHIFT0 (16_20, FREG)),
  8565. CSKY_ISA_FLOAT_7E60),
  8566. OP32 ("fcmpzhsh",
  8567. OPCODE_INFO1 (0xf400c900,
  8568. OPRND_SHIFT0 (16_20, FREG)),
  8569. CSKY_ISA_FLOAT_7E60),
  8570. OP32 ("fcmpltz.16",
  8571. OPCODE_INFO1 (0xf400c920,
  8572. OPRND_SHIFT0 (16_20, FREG)),
  8573. CSKY_ISA_FLOAT_7E60),
  8574. OP32 ("fcmpzlth",
  8575. OPCODE_INFO1 (0xf400c920,
  8576. OPRND_SHIFT0 (16_20, FREG)),
  8577. CSKY_ISA_FLOAT_7E60),
  8578. OP32 ("fcmpnez.16",
  8579. OPCODE_INFO1 (0xf400c940,
  8580. OPRND_SHIFT0 (16_20, FREG)),
  8581. CSKY_ISA_FLOAT_7E60),
  8582. OP32 ("fcmpzneh",
  8583. OPCODE_INFO1 (0xf400c940,
  8584. OPRND_SHIFT0 (16_20, FREG)),
  8585. CSKY_ISA_FLOAT_7E60),
  8586. OP32 ("fcmpuoz.16",
  8587. OPCODE_INFO1 (0xf400c960,
  8588. OPRND_SHIFT0 (16_20, FREG)),
  8589. CSKY_ISA_FLOAT_7E60),
  8590. OP32 ("fcmpzuoh",
  8591. OPCODE_INFO1 (0xf400c960,
  8592. OPRND_SHIFT0 (16_20, FREG)),
  8593. CSKY_ISA_FLOAT_7E60),
  8594. OP32 ("fcmphs.16",
  8595. OPCODE_INFO2 (0xf400c980,
  8596. OPRND_SHIFT0 (16_20, FREG),
  8597. OPRND_SHIFT0 (21_25, FREG)),
  8598. CSKY_ISA_FLOAT_7E60),
  8599. OP32 ("fcmphsh",
  8600. OPCODE_INFO2 (0xf400c980,
  8601. OPRND_SHIFT0 (16_20, FREG),
  8602. OPRND_SHIFT0 (21_25, FREG)),
  8603. CSKY_ISA_FLOAT_7E60),
  8604. OP32 ("fcmplt.16",
  8605. OPCODE_INFO2 (0xf400c9a0,
  8606. OPRND_SHIFT0 (16_20, FREG),
  8607. OPRND_SHIFT0 (21_25, FREG)),
  8608. CSKY_ISA_FLOAT_7E60),
  8609. OP32 ("fcmpne.16",
  8610. OPCODE_INFO2 (0xf400c9c0,
  8611. OPRND_SHIFT0 (16_20, FREG),
  8612. OPRND_SHIFT0 (21_25, FREG)),
  8613. CSKY_ISA_FLOAT_7E60),
  8614. OP32 ("fcmpneh",
  8615. OPCODE_INFO2 (0xf400c9c0,
  8616. OPRND_SHIFT0 (16_20, FREG),
  8617. OPRND_SHIFT0 (21_25, FREG)),
  8618. CSKY_ISA_FLOAT_7E60),
  8619. OP32 ("fcmpuo.16",
  8620. OPCODE_INFO2 (0xf400c9e0,
  8621. OPRND_SHIFT0 (16_20, FREG),
  8622. OPRND_SHIFT0 (21_25, FREG)),
  8623. CSKY_ISA_FLOAT_7E60),
  8624. OP32 ("fcmpuoh",
  8625. OPCODE_INFO2 (0xf400c9e0,
  8626. OPRND_SHIFT0 (16_20, FREG),
  8627. OPRND_SHIFT0 (21_25, FREG)),
  8628. CSKY_ISA_FLOAT_7E60),
  8629. OP32 ("fmaxnm.16",
  8630. OPCODE_INFO3 (0xf400cd00,
  8631. OPRND_SHIFT0 (0_4, FREG),
  8632. OPRND_SHIFT0 (16_20, FREG),
  8633. OPRND_SHIFT0 (21_25, FREG)),
  8634. CSKY_ISA_FLOAT_7E60),
  8635. OP32 ("fminnm.16",
  8636. OPCODE_INFO3 (0xf400cd20,
  8637. OPRND_SHIFT0 (0_4, FREG),
  8638. OPRND_SHIFT0 (16_20, FREG),
  8639. OPRND_SHIFT0 (21_25, FREG)),
  8640. CSKY_ISA_FLOAT_7E60),
  8641. OP32 ("fcmphz.16",
  8642. OPCODE_INFO1 (0xf400cd40,
  8643. OPRND_SHIFT0 (16_20, FREG)),
  8644. CSKY_ISA_FLOAT_7E60),
  8645. OP32 ("fcmplsz.16",
  8646. OPCODE_INFO1 (0xf400cd60,
  8647. OPRND_SHIFT0 (16_20, FREG)),
  8648. CSKY_ISA_FLOAT_7E60),
  8649. OP32 ("fmul.16",
  8650. OPCODE_INFO3 (0xf400ca00,
  8651. OPRND_SHIFT0 (0_4, FREG),
  8652. OPRND_SHIFT0 (16_20, FREG),
  8653. OPRND_SHIFT0 (21_25, FREG)),
  8654. CSKY_ISA_FLOAT_7E60),
  8655. OP32 ("fmulh",
  8656. OPCODE_INFO3 (0xf400ca00,
  8657. OPRND_SHIFT0 (0_4, FREG),
  8658. OPRND_SHIFT0 (16_20, FREG),
  8659. OPRND_SHIFT0 (21_25, FREG)),
  8660. CSKY_ISA_FLOAT_7E60),
  8661. OP32 ("fnmul.16",
  8662. OPCODE_INFO3 (0xf400ca20,
  8663. OPRND_SHIFT0 (0_4, FREG),
  8664. OPRND_SHIFT0 (16_20, FREG),
  8665. OPRND_SHIFT0 (21_25, FREG)),
  8666. CSKY_ISA_FLOAT_7E60),
  8667. OP32 ("fnmulh",
  8668. OPCODE_INFO3 (0xf400ca20,
  8669. OPRND_SHIFT0 (0_4, FREG),
  8670. OPRND_SHIFT0 (16_20, FREG),
  8671. OPRND_SHIFT0 (21_25, FREG)),
  8672. CSKY_ISA_FLOAT_7E60),
  8673. OP32 ("fmula.16",
  8674. OPCODE_INFO3 (0xf400ca80,
  8675. OPRND_SHIFT0 (0_4, FREG),
  8676. OPRND_SHIFT0 (16_20, FREG),
  8677. OPRND_SHIFT0 (21_25, FREG)),
  8678. CSKY_ISA_FLOAT_7E60),
  8679. OP32 ("fmach",
  8680. OPCODE_INFO3 (0xf400ca80,
  8681. OPRND_SHIFT0 (0_4, FREG),
  8682. OPRND_SHIFT0 (16_20, FREG),
  8683. OPRND_SHIFT0 (21_25, FREG)),
  8684. CSKY_ISA_FLOAT_7E60),
  8685. OP32 ("fnmuls.16",
  8686. OPCODE_INFO3 (0xf400caa0,
  8687. OPRND_SHIFT0 (0_4, FREG),
  8688. OPRND_SHIFT0 (16_20, FREG),
  8689. OPRND_SHIFT0 (21_25, FREG)),
  8690. CSKY_ISA_FLOAT_7E60),
  8691. OP32 ("fmsch",
  8692. OPCODE_INFO3 (0xf400caa0,
  8693. OPRND_SHIFT0 (0_4, FREG),
  8694. OPRND_SHIFT0 (16_20, FREG),
  8695. OPRND_SHIFT0 (21_25, FREG)),
  8696. CSKY_ISA_FLOAT_7E60),
  8697. OP32 ("fmuls.16",
  8698. OPCODE_INFO3 (0xf400cac0,
  8699. OPRND_SHIFT0 (0_4, FREG),
  8700. OPRND_SHIFT0 (16_20, FREG),
  8701. OPRND_SHIFT0 (21_25, FREG)),
  8702. CSKY_ISA_FLOAT_7E60),
  8703. OP32 ("fnmach",
  8704. OPCODE_INFO3 (0xf400cac0,
  8705. OPRND_SHIFT0 (0_4, FREG),
  8706. OPRND_SHIFT0 (16_20, FREG),
  8707. OPRND_SHIFT0 (21_25, FREG)),
  8708. CSKY_ISA_FLOAT_7E60),
  8709. OP32 ("fnmula.16",
  8710. OPCODE_INFO3 (0xf400cae0,
  8711. OPRND_SHIFT0 (0_4, FREG),
  8712. OPRND_SHIFT0 (16_20, FREG),
  8713. OPRND_SHIFT0 (21_25, FREG)),
  8714. CSKY_ISA_FLOAT_7E60),
  8715. OP32 ("fnmsch",
  8716. OPCODE_INFO3 (0xf400cae0,
  8717. OPRND_SHIFT0 (0_4, FREG),
  8718. OPRND_SHIFT0 (16_20, FREG),
  8719. OPRND_SHIFT0 (21_25, FREG)),
  8720. CSKY_ISA_FLOAT_7E60),
  8721. OP32 ("ffmula.16",
  8722. OPCODE_INFO3 (0xf400ce00,
  8723. OPRND_SHIFT0 (0_4, FREG),
  8724. OPRND_SHIFT0 (16_20, FREG),
  8725. OPRND_SHIFT0 (21_25, FREG)),
  8726. CSKY_ISA_FLOAT_7E60),
  8727. OP32 ("ffmuls.16",
  8728. OPCODE_INFO3 (0xf400ce20,
  8729. OPRND_SHIFT0 (0_4, FREG),
  8730. OPRND_SHIFT0 (16_20, FREG),
  8731. OPRND_SHIFT0 (21_25, FREG)),
  8732. CSKY_ISA_FLOAT_7E60),
  8733. OP32 ("ffnmula.16",
  8734. OPCODE_INFO3 (0xf400ce40,
  8735. OPRND_SHIFT0 (0_4, FREG),
  8736. OPRND_SHIFT0 (16_20, FREG),
  8737. OPRND_SHIFT0 (21_25, FREG)),
  8738. CSKY_ISA_FLOAT_7E60),
  8739. OP32 ("ffnmuls.16",
  8740. OPCODE_INFO3 (0xf400ce60,
  8741. OPRND_SHIFT0 (0_4, FREG),
  8742. OPRND_SHIFT0 (16_20, FREG),
  8743. OPRND_SHIFT0 (21_25, FREG)),
  8744. CSKY_ISA_FLOAT_7E60),
  8745. OP32 ("fdivh",
  8746. OPCODE_INFO3 (0xf400cb00,
  8747. OPRND_SHIFT0 (0_4, FREG),
  8748. OPRND_SHIFT0 (16_20, FREG),
  8749. OPRND_SHIFT0 (21_25, FREG)),
  8750. CSKY_ISA_FLOAT_7E60),
  8751. OP32 ("fdiv.16",
  8752. OPCODE_INFO3 (0xf400cb00,
  8753. OPRND_SHIFT0 (0_4, FREG),
  8754. OPRND_SHIFT0 (16_20, FREG),
  8755. OPRND_SHIFT0 (21_25, FREG)),
  8756. CSKY_ISA_FLOAT_7E60),
  8757. OP32 ("freciph",
  8758. OPCODE_INFO2 (0xf400cb20,
  8759. OPRND_SHIFT0 (0_4, FREG),
  8760. OPRND_SHIFT0 (16_20, FREG)),
  8761. CSKY_ISA_FLOAT_7E60),
  8762. OP32 ("frecip.16",
  8763. OPCODE_INFO2 (0xf400cb20,
  8764. OPRND_SHIFT0 (0_4, FREG),
  8765. OPRND_SHIFT0 (16_20, FREG)),
  8766. CSKY_ISA_FLOAT_7E60),
  8767. OP32 ("fsqrt.16",
  8768. OPCODE_INFO2 (0xf400cb40,
  8769. OPRND_SHIFT0 (0_4, FREG),
  8770. OPRND_SHIFT0 (16_20, FREG)),
  8771. CSKY_ISA_FLOAT_7E60),
  8772. OP32 ("fsqrth",
  8773. OPCODE_INFO2 (0xf400cb40,
  8774. OPRND_SHIFT0 (0_4, FREG),
  8775. OPRND_SHIFT0 (16_20, FREG)),
  8776. CSKY_ISA_FLOAT_7E60),
  8777. OP32 ("fsel.16",
  8778. OPCODE_INFO3 (0xf400cf20,
  8779. OPRND_SHIFT0 (0_4, FREG),
  8780. OPRND_SHIFT0 (16_20, FREG),
  8781. OPRND_SHIFT0 (21_25, FREG)),
  8782. CSKY_ISA_FLOAT_7E60),
  8783. /* Single floating. */
  8784. OP32 ("fadd.32",
  8785. OPCODE_INFO3 (0xf4000000,
  8786. OPRND_SHIFT0 (0_4, FREG),
  8787. OPRND_SHIFT0 (16_20, FREG),
  8788. OPRND_SHIFT0 (21_25, FREG)),
  8789. CSKY_ISA_FLOAT_7E60),
  8790. OP32 ("fadds",
  8791. OPCODE_INFO3 (0xf4000000,
  8792. OPRND_SHIFT0 (0_4, FREG),
  8793. OPRND_SHIFT0 (16_20, FREG),
  8794. OPRND_SHIFT0 (21_25, FREG)),
  8795. CSKY_ISA_FLOAT_7E60),
  8796. OP32 ("fsub.32",
  8797. OPCODE_INFO3 (0xf4000020,
  8798. OPRND_SHIFT0 (0_4, FREG),
  8799. OPRND_SHIFT0 (16_20, FREG),
  8800. OPRND_SHIFT0 (21_25, FREG)),
  8801. CSKY_ISA_FLOAT_7E60),
  8802. OP32 ("fsubs",
  8803. OPCODE_INFO3 (0xf4000020,
  8804. OPRND_SHIFT0 (0_4, FREG),
  8805. OPRND_SHIFT0 (16_20, FREG),
  8806. OPRND_SHIFT0 (21_25, FREG)),
  8807. CSKY_ISA_FLOAT_7E60),
  8808. OP32 ("fmov.32",
  8809. OPCODE_INFO2 (0xf4000080,
  8810. OPRND_SHIFT0 (0_4, FREG),
  8811. OPRND_SHIFT0 (16_20, FREG)),
  8812. CSKY_ISA_FLOAT_7E60),
  8813. OP32 ("fmovs",
  8814. OPCODE_INFO2 (0xf4000080,
  8815. OPRND_SHIFT0 (0_4, FREG),
  8816. OPRND_SHIFT0 (16_20, FREG)),
  8817. CSKY_ISA_FLOAT_7E60),
  8818. OP32 ("fabs.32",
  8819. OPCODE_INFO2 (0xf40000c0,
  8820. OPRND_SHIFT0 (0_4, FREG),
  8821. OPRND_SHIFT0 (16_20, FREG)),
  8822. CSKY_ISA_FLOAT_7E60),
  8823. OP32 ("fabss",
  8824. OPCODE_INFO2 (0xf40000c0,
  8825. OPRND_SHIFT0 (0_4, FREG),
  8826. OPRND_SHIFT0 (16_20, FREG)),
  8827. CSKY_ISA_FLOAT_7E60),
  8828. OP32 ("fneg.32",
  8829. OPCODE_INFO2 (0xf40000e0,
  8830. OPRND_SHIFT0 (0_4, FREG),
  8831. OPRND_SHIFT0 (16_20, FREG)),
  8832. CSKY_ISA_FLOAT_7E60),
  8833. OP32 ("fnegs",
  8834. OPCODE_INFO2 (0xf40000e0,
  8835. OPRND_SHIFT0 (0_4, FREG),
  8836. OPRND_SHIFT0 (16_20, FREG)),
  8837. CSKY_ISA_FLOAT_7E60),
  8838. OP32 ("fcmphsz.32",
  8839. OPCODE_INFO1 (0xf4000100,
  8840. OPRND_SHIFT0 (16_20, FREG)),
  8841. CSKY_ISA_FLOAT_7E60),
  8842. OP32 ("fcmpzhss",
  8843. OPCODE_INFO1 (0xf4000100,
  8844. OPRND_SHIFT0 (16_20, FREG)),
  8845. CSKY_ISA_FLOAT_7E60),
  8846. OP32 ("fcmpltz.32",
  8847. OPCODE_INFO1 (0xf4000120,
  8848. OPRND_SHIFT0 (16_20, FREG)),
  8849. CSKY_ISA_FLOAT_7E60),
  8850. OP32 ("fcmpzlts",
  8851. OPCODE_INFO1 (0xf4000120,
  8852. OPRND_SHIFT0 (16_20, FREG)),
  8853. CSKY_ISA_FLOAT_7E60),
  8854. OP32 ("fcmpnez.32",
  8855. OPCODE_INFO1 (0xf4000140,
  8856. OPRND_SHIFT0 (16_20, FREG)),
  8857. CSKY_ISA_FLOAT_7E60),
  8858. OP32 ("fcmpznes",
  8859. OPCODE_INFO1 (0xf4000140,
  8860. OPRND_SHIFT0 (16_20, FREG)),
  8861. CSKY_ISA_FLOAT_7E60),
  8862. OP32 ("fcmpuoz.32",
  8863. OPCODE_INFO1 (0xf4000160,
  8864. OPRND_SHIFT0 (16_20, FREG)),
  8865. CSKY_ISA_FLOAT_7E60),
  8866. OP32 ("fcmpzuos",
  8867. OPCODE_INFO1 (0xf4000160,
  8868. OPRND_SHIFT0 (16_20, FREG)),
  8869. CSKY_ISA_FLOAT_7E60),
  8870. OP32 ("fcmphs.32",
  8871. OPCODE_INFO2 (0xf4000180,
  8872. OPRND_SHIFT0 (16_20, FREG),
  8873. OPRND_SHIFT0 (21_25, FREG)),
  8874. CSKY_ISA_FLOAT_7E60),
  8875. OP32 ("fcmphss",
  8876. OPCODE_INFO2 (0xf4000180,
  8877. OPRND_SHIFT0 (16_20, FREG),
  8878. OPRND_SHIFT0 (21_25, FREG)),
  8879. CSKY_ISA_FLOAT_7E60),
  8880. OP32 ("fcmplt.32",
  8881. OPCODE_INFO2 (0xf40001a0,
  8882. OPRND_SHIFT0 (16_20, FREG),
  8883. OPRND_SHIFT0 (21_25, FREG)),
  8884. CSKY_ISA_FLOAT_7E60),
  8885. OP32 ("fcmplts",
  8886. OPCODE_INFO2 (0xf40001a0,
  8887. OPRND_SHIFT0 (16_20, FREG),
  8888. OPRND_SHIFT0 (21_25, FREG)),
  8889. CSKY_ISA_FLOAT_7E60),
  8890. OP32 ("fcmpne.32",
  8891. OPCODE_INFO2 (0xf40001c0,
  8892. OPRND_SHIFT0 (16_20, FREG),
  8893. OPRND_SHIFT0 (21_25, FREG)),
  8894. CSKY_ISA_FLOAT_7E60),
  8895. OP32 ("fcmpnes",
  8896. OPCODE_INFO2 (0xf40001c0,
  8897. OPRND_SHIFT0 (16_20, FREG),
  8898. OPRND_SHIFT0 (21_25, FREG)),
  8899. CSKY_ISA_FLOAT_7E60),
  8900. OP32 ("fcmpuo.32",
  8901. OPCODE_INFO2 (0xf40001e0,
  8902. OPRND_SHIFT0 (16_20, FREG),
  8903. OPRND_SHIFT0 (21_25, FREG)),
  8904. CSKY_ISA_FLOAT_7E60),
  8905. OP32 ("fcmpuos",
  8906. OPCODE_INFO2 (0xf40001e0,
  8907. OPRND_SHIFT0 (16_20, FREG),
  8908. OPRND_SHIFT0 (21_25, FREG)),
  8909. CSKY_ISA_FLOAT_7E60),
  8910. OP32 ("fmaxnm.32",
  8911. OPCODE_INFO3 (0xf4000500,
  8912. OPRND_SHIFT0 (0_4, FREG),
  8913. OPRND_SHIFT0 (16_20, FREG),
  8914. OPRND_SHIFT0 (21_25, FREG)),
  8915. CSKY_ISA_FLOAT_7E60),
  8916. OP32 ("fminnm.32",
  8917. OPCODE_INFO3 (0xf4000520,
  8918. OPRND_SHIFT0 (0_4, FREG),
  8919. OPRND_SHIFT0 (16_20, FREG),
  8920. OPRND_SHIFT0 (21_25, FREG)),
  8921. CSKY_ISA_FLOAT_7E60),
  8922. OP32 ("fcmphz.32",
  8923. OPCODE_INFO1 (0xf4000540,
  8924. OPRND_SHIFT0 (16_20, FREG)),
  8925. CSKY_ISA_FLOAT_7E60),
  8926. OP32 ("fcmplsz.32",
  8927. OPCODE_INFO1 (0xf4000560,
  8928. OPRND_SHIFT0 (16_20, FREG)),
  8929. CSKY_ISA_FLOAT_7E60),
  8930. OP32 ("fmul.32",
  8931. OPCODE_INFO3 (0xf4000200,
  8932. OPRND_SHIFT0 (0_4, FREG),
  8933. OPRND_SHIFT0 (16_20, FREG),
  8934. OPRND_SHIFT0 (21_25, FREG)),
  8935. CSKY_ISA_FLOAT_7E60),
  8936. OP32 ("fmuls",
  8937. OPCODE_INFO3 (0xf4000200,
  8938. OPRND_SHIFT0 (0_4, FREG),
  8939. OPRND_SHIFT0 (16_20, FREG),
  8940. OPRND_SHIFT0 (21_25, FREG)),
  8941. CSKY_ISA_FLOAT_7E60),
  8942. OP32 ("fnmul.32",
  8943. OPCODE_INFO3 (0xf4000220,
  8944. OPRND_SHIFT0 (0_4, FREG),
  8945. OPRND_SHIFT0 (16_20, FREG),
  8946. OPRND_SHIFT0 (21_25, FREG)),
  8947. CSKY_ISA_FLOAT_7E60),
  8948. OP32 ("fnmuls",
  8949. OPCODE_INFO3 (0xf4000220,
  8950. OPRND_SHIFT0 (0_4, FREG),
  8951. OPRND_SHIFT0 (16_20, FREG),
  8952. OPRND_SHIFT0 (21_25, FREG)),
  8953. CSKY_ISA_FLOAT_7E60),
  8954. OP32 ("fmula.32",
  8955. OPCODE_INFO3 (0xf4000280,
  8956. OPRND_SHIFT0 (0_4, FREG),
  8957. OPRND_SHIFT0 (16_20, FREG),
  8958. OPRND_SHIFT0 (21_25, FREG)),
  8959. CSKY_ISA_FLOAT_7E60),
  8960. OP32 ("fmacs",
  8961. OPCODE_INFO3 (0xf4000280,
  8962. OPRND_SHIFT0 (0_4, FREG),
  8963. OPRND_SHIFT0 (16_20, FREG),
  8964. OPRND_SHIFT0 (21_25, FREG)),
  8965. CSKY_ISA_FLOAT_7E60),
  8966. OP32 ("fnmuls.32",
  8967. OPCODE_INFO3 (0xf40002a0,
  8968. OPRND_SHIFT0 (0_4, FREG),
  8969. OPRND_SHIFT0 (16_20, FREG),
  8970. OPRND_SHIFT0 (21_25, FREG)),
  8971. CSKY_ISA_FLOAT_7E60),
  8972. OP32 ("fmscs",
  8973. OPCODE_INFO3 (0xf40002a0,
  8974. OPRND_SHIFT0 (0_4, FREG),
  8975. OPRND_SHIFT0 (16_20, FREG),
  8976. OPRND_SHIFT0 (21_25, FREG)),
  8977. CSKY_ISA_FLOAT_7E60),
  8978. OP32 ("fmuls.32",
  8979. OPCODE_INFO3 (0xf40002c0,
  8980. OPRND_SHIFT0 (0_4, FREG),
  8981. OPRND_SHIFT0 (16_20, FREG),
  8982. OPRND_SHIFT0 (21_25, FREG)),
  8983. CSKY_ISA_FLOAT_7E60),
  8984. OP32 ("fnmacs",
  8985. OPCODE_INFO3 (0xf40002c0,
  8986. OPRND_SHIFT0 (0_4, FREG),
  8987. OPRND_SHIFT0 (16_20, FREG),
  8988. OPRND_SHIFT0 (21_25, FREG)),
  8989. CSKY_ISA_FLOAT_7E60),
  8990. OP32 ("fnmula.32",
  8991. OPCODE_INFO3 (0xf40002e0,
  8992. OPRND_SHIFT0 (0_4, FREG),
  8993. OPRND_SHIFT0 (16_20, FREG),
  8994. OPRND_SHIFT0 (21_25, FREG)),
  8995. CSKY_ISA_FLOAT_7E60),
  8996. OP32 ("fnmscs",
  8997. OPCODE_INFO3 (0xf40002e0,
  8998. OPRND_SHIFT0 (0_4, FREG),
  8999. OPRND_SHIFT0 (16_20, FREG),
  9000. OPRND_SHIFT0 (21_25, FREG)),
  9001. CSKY_ISA_FLOAT_7E60),
  9002. OP32 ("ffmula.32",
  9003. OPCODE_INFO3 (0xf4000600,
  9004. OPRND_SHIFT0 (0_4, FREG),
  9005. OPRND_SHIFT0 (16_20, FREG),
  9006. OPRND_SHIFT0 (21_25, FREG)),
  9007. CSKY_ISA_FLOAT_7E60),
  9008. OP32 ("ffmuls.32",
  9009. OPCODE_INFO3 (0xf4000620,
  9010. OPRND_SHIFT0 (0_4, FREG),
  9011. OPRND_SHIFT0 (16_20, FREG),
  9012. OPRND_SHIFT0 (21_25, FREG)),
  9013. CSKY_ISA_FLOAT_7E60),
  9014. OP32 ("ffnmula.32",
  9015. OPCODE_INFO3 (0xf4000640,
  9016. OPRND_SHIFT0 (0_4, FREG),
  9017. OPRND_SHIFT0 (16_20, FREG),
  9018. OPRND_SHIFT0 (21_25, FREG)),
  9019. CSKY_ISA_FLOAT_7E60),
  9020. OP32 ("ffnmuls.32",
  9021. OPCODE_INFO3 (0xf4000660,
  9022. OPRND_SHIFT0 (0_4, FREG),
  9023. OPRND_SHIFT0 (16_20, FREG),
  9024. OPRND_SHIFT0 (21_25, FREG)),
  9025. CSKY_ISA_FLOAT_7E60),
  9026. OP32 ("fdiv.32",
  9027. OPCODE_INFO3 (0xf4000300,
  9028. OPRND_SHIFT0 (0_4, FREG),
  9029. OPRND_SHIFT0 (16_20, FREG),
  9030. OPRND_SHIFT0 (21_25, FREG)),
  9031. CSKY_ISA_FLOAT_7E60),
  9032. OP32 ("fdivs",
  9033. OPCODE_INFO3 (0xf4000300,
  9034. OPRND_SHIFT0 (0_4, FREG),
  9035. OPRND_SHIFT0 (16_20, FREG),
  9036. OPRND_SHIFT0 (21_25, FREG)),
  9037. CSKY_ISA_FLOAT_7E60),
  9038. OP32 ("frecip.32",
  9039. OPCODE_INFO2 (0xf4000320,
  9040. OPRND_SHIFT0 (0_4, FREG),
  9041. OPRND_SHIFT0 (16_20, FREG)),
  9042. CSKY_ISA_FLOAT_7E60),
  9043. OP32 ("frecips",
  9044. OPCODE_INFO2 (0xf4000320,
  9045. OPRND_SHIFT0 (0_4, FREG),
  9046. OPRND_SHIFT0 (16_20, FREG)),
  9047. CSKY_ISA_FLOAT_7E60),
  9048. OP32 ("fsqrt.32",
  9049. OPCODE_INFO2 (0xf4000340,
  9050. OPRND_SHIFT0 (0_4, FREG),
  9051. OPRND_SHIFT0 (16_20, FREG)),
  9052. CSKY_ISA_FLOAT_7E60),
  9053. OP32 ("fsqrts",
  9054. OPCODE_INFO2 (0xf4000340,
  9055. OPRND_SHIFT0 (0_4, FREG),
  9056. OPRND_SHIFT0 (16_20, FREG)),
  9057. CSKY_ISA_FLOAT_7E60),
  9058. OP32 ("fsel.32",
  9059. OPCODE_INFO3 (0xf4000720,
  9060. OPRND_SHIFT0 (0_4, FREG),
  9061. OPRND_SHIFT0 (16_20, FREG),
  9062. OPRND_SHIFT0 (21_25, FREG)),
  9063. CSKY_ISA_FLOAT_7E60),
  9064. /* Double floating. */
  9065. OP32 ("fadd.64",
  9066. OPCODE_INFO3 (0xf4000800,
  9067. OPRND_SHIFT0 (0_4, FREG),
  9068. OPRND_SHIFT0 (16_20, FREG),
  9069. OPRND_SHIFT0 (21_25, FREG)),
  9070. CSKY_ISA_FLOAT_7E60),
  9071. OP32 ("faddd",
  9072. OPCODE_INFO3 (0xf4000800,
  9073. OPRND_SHIFT0 (0_4, FREG),
  9074. OPRND_SHIFT0 (16_20, FREG),
  9075. OPRND_SHIFT0 (21_25, FREG)),
  9076. CSKY_ISA_FLOAT_7E60),
  9077. OP32 ("fsub.64",
  9078. OPCODE_INFO3 (0xf4000820,
  9079. OPRND_SHIFT0 (0_4, FREG),
  9080. OPRND_SHIFT0 (16_20, FREG),
  9081. OPRND_SHIFT0 (21_25, FREG)),
  9082. CSKY_ISA_FLOAT_7E60),
  9083. OP32 ("fsubd",
  9084. OPCODE_INFO3 (0xf4000820,
  9085. OPRND_SHIFT0 (0_4, FREG),
  9086. OPRND_SHIFT0 (16_20, FREG),
  9087. OPRND_SHIFT0 (21_25, FREG)),
  9088. CSKY_ISA_FLOAT_7E60),
  9089. OP32 ("fmov.64",
  9090. OPCODE_INFO2 (0xf4000880,
  9091. OPRND_SHIFT0 (0_4, FREG),
  9092. OPRND_SHIFT0 (16_20, FREG)),
  9093. CSKY_ISA_FLOAT_7E60),
  9094. OP32 ("fmovd",
  9095. OPCODE_INFO2 (0xf4000880,
  9096. OPRND_SHIFT0 (0_4, FREG),
  9097. OPRND_SHIFT0 (16_20, FREG)),
  9098. CSKY_ISA_FLOAT_7E60),
  9099. OP32 ("fmovx.32",
  9100. OPCODE_INFO2 (0xf40008a0,
  9101. OPRND_SHIFT0 (0_4, FREG),
  9102. OPRND_SHIFT0 (16_20, FREG)),
  9103. CSKY_ISA_FLOAT_7E60),
  9104. OP32 ("fabs.64",
  9105. OPCODE_INFO2 (0xf40008c0,
  9106. OPRND_SHIFT0 (0_4, FREG),
  9107. OPRND_SHIFT0 (16_20, FREG)),
  9108. CSKY_ISA_FLOAT_7E60),
  9109. OP32 ("fabsd",
  9110. OPCODE_INFO2 (0xf40008c0,
  9111. OPRND_SHIFT0 (0_4, FREG),
  9112. OPRND_SHIFT0 (16_20, FREG)),
  9113. CSKY_ISA_FLOAT_7E60),
  9114. OP32 ("fneg.64",
  9115. OPCODE_INFO2 (0xf40008e0,
  9116. OPRND_SHIFT0 (0_4, FREG),
  9117. OPRND_SHIFT0 (16_20, FREG)),
  9118. CSKY_ISA_FLOAT_7E60),
  9119. OP32 ("fnegd",
  9120. OPCODE_INFO2 (0xf40008e0,
  9121. OPRND_SHIFT0 (0_4, FREG),
  9122. OPRND_SHIFT0 (16_20, FREG)),
  9123. CSKY_ISA_FLOAT_7E60),
  9124. OP32 ("fcmphsz.64",
  9125. OPCODE_INFO1 (0xf4000900,
  9126. OPRND_SHIFT0 (16_20, FREG)),
  9127. CSKY_ISA_FLOAT_7E60),
  9128. OP32 ("fcmpzhsd",
  9129. OPCODE_INFO1 (0xf4000900,
  9130. OPRND_SHIFT0 (16_20, FREG)),
  9131. CSKY_ISA_FLOAT_7E60),
  9132. OP32 ("fcmpltz.64",
  9133. OPCODE_INFO1 (0xf4000920,
  9134. OPRND_SHIFT0 (16_20, FREG)),
  9135. CSKY_ISA_FLOAT_7E60),
  9136. OP32 ("fcmpzltd",
  9137. OPCODE_INFO1 (0xf4000920,
  9138. OPRND_SHIFT0 (16_20, FREG)),
  9139. CSKY_ISA_FLOAT_7E60),
  9140. OP32 ("fcmpnez.64",
  9141. OPCODE_INFO1 (0xf4000940,
  9142. OPRND_SHIFT0 (16_20, FREG)),
  9143. CSKY_ISA_FLOAT_7E60),
  9144. OP32 ("fcmpzned",
  9145. OPCODE_INFO1 (0xf4000940,
  9146. OPRND_SHIFT0 (16_20, FREG)),
  9147. CSKY_ISA_FLOAT_7E60),
  9148. OP32 ("fcmpuoz.64",
  9149. OPCODE_INFO1 (0xf4000960,
  9150. OPRND_SHIFT0 (16_20, FREG)),
  9151. CSKY_ISA_FLOAT_7E60),
  9152. OP32 ("fcmpzuod",
  9153. OPCODE_INFO1 (0xf4000960,
  9154. OPRND_SHIFT0 (16_20, FREG)),
  9155. CSKY_ISA_FLOAT_7E60),
  9156. OP32 ("fcmphs.64",
  9157. OPCODE_INFO2 (0xf4000980,
  9158. OPRND_SHIFT0 (16_20, FREG),
  9159. OPRND_SHIFT0 (21_25, FREG)),
  9160. CSKY_ISA_FLOAT_7E60),
  9161. OP32 ("fcmphsd",
  9162. OPCODE_INFO2 (0xf4000980,
  9163. OPRND_SHIFT0 (16_20, FREG),
  9164. OPRND_SHIFT0 (21_25, FREG)),
  9165. CSKY_ISA_FLOAT_7E60),
  9166. OP32 ("fcmplt.64",
  9167. OPCODE_INFO2 (0xf40009a0,
  9168. OPRND_SHIFT0 (16_20, FREG),
  9169. OPRND_SHIFT0 (21_25, FREG)),
  9170. CSKY_ISA_FLOAT_7E60),
  9171. OP32 ("fcmpltd",
  9172. OPCODE_INFO2 (0xf40009a0,
  9173. OPRND_SHIFT0 (16_20, FREG),
  9174. OPRND_SHIFT0 (21_25, FREG)),
  9175. CSKY_ISA_FLOAT_7E60),
  9176. OP32 ("fcmpne.64",
  9177. OPCODE_INFO2 (0xf40009c0,
  9178. OPRND_SHIFT0 (16_20, FREG),
  9179. OPRND_SHIFT0 (21_25, FREG)),
  9180. CSKY_ISA_FLOAT_7E60),
  9181. OP32 ("fcmpned",
  9182. OPCODE_INFO2 (0xf40009c0,
  9183. OPRND_SHIFT0 (16_20, FREG),
  9184. OPRND_SHIFT0 (21_25, FREG)),
  9185. CSKY_ISA_FLOAT_7E60),
  9186. OP32 ("fcmpuo.64",
  9187. OPCODE_INFO2 (0xf40009e0,
  9188. OPRND_SHIFT0 (16_20, FREG),
  9189. OPRND_SHIFT0 (21_25, FREG)),
  9190. CSKY_ISA_FLOAT_7E60),
  9191. OP32 ("fcmpuod",
  9192. OPCODE_INFO2 (0xf40009e0,
  9193. OPRND_SHIFT0 (16_20, FREG),
  9194. OPRND_SHIFT0 (21_25, FREG)),
  9195. CSKY_ISA_FLOAT_7E60),
  9196. OP32 ("fmaxnm.64",
  9197. OPCODE_INFO3 (0xf4000d00,
  9198. OPRND_SHIFT0 (0_4, FREG),
  9199. OPRND_SHIFT0 (16_20, FREG),
  9200. OPRND_SHIFT0 (21_25, FREG)),
  9201. CSKY_ISA_FLOAT_7E60),
  9202. OP32 ("fminnm.64",
  9203. OPCODE_INFO3 (0xf4000d20,
  9204. OPRND_SHIFT0 (0_4, FREG),
  9205. OPRND_SHIFT0 (16_20, FREG),
  9206. OPRND_SHIFT0 (21_25, FREG)),
  9207. CSKY_ISA_FLOAT_7E60),
  9208. OP32 ("fcmphz.64",
  9209. OPCODE_INFO1 (0xf4000d40,
  9210. OPRND_SHIFT0 (16_20, FREG)),
  9211. CSKY_ISA_FLOAT_7E60),
  9212. OP32 ("fcmplsz.64",
  9213. OPCODE_INFO1 (0xf4000d60,
  9214. OPRND_SHIFT0 (16_20, FREG)),
  9215. CSKY_ISA_FLOAT_7E60),
  9216. OP32 ("fmul.64",
  9217. OPCODE_INFO3 (0xf4000a00,
  9218. OPRND_SHIFT0 (0_4, FREG),
  9219. OPRND_SHIFT0 (16_20, FREG),
  9220. OPRND_SHIFT0 (21_25, FREG)),
  9221. CSKY_ISA_FLOAT_7E60),
  9222. OP32 ("fmuld",
  9223. OPCODE_INFO3 (0xf4000a00,
  9224. OPRND_SHIFT0 (0_4, FREG),
  9225. OPRND_SHIFT0 (16_20, FREG),
  9226. OPRND_SHIFT0 (21_25, FREG)),
  9227. CSKY_ISA_FLOAT_7E60),
  9228. OP32 ("fnmul.64",
  9229. OPCODE_INFO3 (0xf4000a20,
  9230. OPRND_SHIFT0 (0_4, FREG),
  9231. OPRND_SHIFT0 (16_20, FREG),
  9232. OPRND_SHIFT0 (21_25, FREG)),
  9233. CSKY_ISA_FLOAT_7E60),
  9234. OP32 ("fnmuld",
  9235. OPCODE_INFO3 (0xf4000a20,
  9236. OPRND_SHIFT0 (0_4, FREG),
  9237. OPRND_SHIFT0 (16_20, FREG),
  9238. OPRND_SHIFT0 (21_25, FREG)),
  9239. CSKY_ISA_FLOAT_7E60),
  9240. OP32 ("fmula.64",
  9241. OPCODE_INFO3 (0xf4000a80,
  9242. OPRND_SHIFT0 (0_4, FREG),
  9243. OPRND_SHIFT0 (16_20, FREG),
  9244. OPRND_SHIFT0 (21_25, FREG)),
  9245. CSKY_ISA_FLOAT_7E60),
  9246. OP32 ("fmacd",
  9247. OPCODE_INFO3 (0xf4000a80,
  9248. OPRND_SHIFT0 (0_4, FREG),
  9249. OPRND_SHIFT0 (16_20, FREG),
  9250. OPRND_SHIFT0 (21_25, FREG)),
  9251. CSKY_ISA_FLOAT_7E60),
  9252. OP32 ("fnmuls.64",
  9253. OPCODE_INFO3 (0xf4000aa0,
  9254. OPRND_SHIFT0 (0_4, FREG),
  9255. OPRND_SHIFT0 (16_20, FREG),
  9256. OPRND_SHIFT0 (21_25, FREG)),
  9257. CSKY_ISA_FLOAT_7E60),
  9258. OP32 ("fmscd",
  9259. OPCODE_INFO3 (0xf4000aa0,
  9260. OPRND_SHIFT0 (0_4, FREG),
  9261. OPRND_SHIFT0 (16_20, FREG),
  9262. OPRND_SHIFT0 (21_25, FREG)),
  9263. CSKY_ISA_FLOAT_7E60),
  9264. OP32 ("fmuls.64",
  9265. OPCODE_INFO3 (0xf4000ac0,
  9266. OPRND_SHIFT0 (0_4, FREG),
  9267. OPRND_SHIFT0 (16_20, FREG),
  9268. OPRND_SHIFT0 (21_25, FREG)),
  9269. CSKY_ISA_FLOAT_7E60),
  9270. OP32 ("fnmacd",
  9271. OPCODE_INFO3 (0xf4000ac0,
  9272. OPRND_SHIFT0 (0_4, FREG),
  9273. OPRND_SHIFT0 (16_20, FREG),
  9274. OPRND_SHIFT0 (21_25, FREG)),
  9275. CSKY_ISA_FLOAT_7E60),
  9276. OP32 ("fnmula.64",
  9277. OPCODE_INFO3 (0xf4000ae0,
  9278. OPRND_SHIFT0 (0_4, FREG),
  9279. OPRND_SHIFT0 (16_20, FREG),
  9280. OPRND_SHIFT0 (21_25, FREG)),
  9281. CSKY_ISA_FLOAT_7E60),
  9282. OP32 ("fnmscd",
  9283. OPCODE_INFO3 (0xf4000ae0,
  9284. OPRND_SHIFT0 (0_4, FREG),
  9285. OPRND_SHIFT0 (16_20, FREG),
  9286. OPRND_SHIFT0 (21_25, FREG)),
  9287. CSKY_ISA_FLOAT_7E60),
  9288. OP32 ("ffmula.64",
  9289. OPCODE_INFO3 (0xf4000e00,
  9290. OPRND_SHIFT0 (0_4, FREG),
  9291. OPRND_SHIFT0 (16_20, FREG),
  9292. OPRND_SHIFT0 (21_25, FREG)),
  9293. CSKY_ISA_FLOAT_7E60),
  9294. OP32 ("ffmuls.64",
  9295. OPCODE_INFO3 (0xf4000e20,
  9296. OPRND_SHIFT0 (0_4, FREG),
  9297. OPRND_SHIFT0 (16_20, FREG),
  9298. OPRND_SHIFT0 (21_25, FREG)),
  9299. CSKY_ISA_FLOAT_7E60),
  9300. OP32 ("ffnmula.64",
  9301. OPCODE_INFO3 (0xf4000e40,
  9302. OPRND_SHIFT0 (0_4, FREG),
  9303. OPRND_SHIFT0 (16_20, FREG),
  9304. OPRND_SHIFT0 (21_25, FREG)),
  9305. CSKY_ISA_FLOAT_7E60),
  9306. OP32 ("ffnmuls.64",
  9307. OPCODE_INFO3 (0xf4000e60,
  9308. OPRND_SHIFT0 (0_4, FREG),
  9309. OPRND_SHIFT0 (16_20, FREG),
  9310. OPRND_SHIFT0 (21_25, FREG)),
  9311. CSKY_ISA_FLOAT_7E60),
  9312. OP32 ("fdiv.64",
  9313. OPCODE_INFO3 (0xf4000b00,
  9314. OPRND_SHIFT0 (0_4, FREG),
  9315. OPRND_SHIFT0 (16_20, FREG),
  9316. OPRND_SHIFT0 (21_25, FREG)),
  9317. CSKY_ISA_FLOAT_7E60),
  9318. OP32 ("fdivd",
  9319. OPCODE_INFO3 (0xf4000b00,
  9320. OPRND_SHIFT0 (0_4, FREG),
  9321. OPRND_SHIFT0 (16_20, FREG),
  9322. OPRND_SHIFT0 (21_25, FREG)),
  9323. CSKY_ISA_FLOAT_7E60),
  9324. OP32 ("frecip.64",
  9325. OPCODE_INFO2 (0xf4000b20,
  9326. OPRND_SHIFT0 (0_4, FREG),
  9327. OPRND_SHIFT0 (16_20, FREG)),
  9328. CSKY_ISA_FLOAT_7E60),
  9329. OP32 ("frecipd",
  9330. OPCODE_INFO2 (0xf4000b20,
  9331. OPRND_SHIFT0 (0_4, FREG),
  9332. OPRND_SHIFT0 (16_20, FREG)),
  9333. CSKY_ISA_FLOAT_7E60),
  9334. OP32 ("fsqrt.64",
  9335. OPCODE_INFO2 (0xf4000b40,
  9336. OPRND_SHIFT0 (0_4, FREG),
  9337. OPRND_SHIFT0 (16_20, FREG)),
  9338. CSKY_ISA_FLOAT_7E60),
  9339. OP32 ("fsqrtd",
  9340. OPCODE_INFO2 (0xf4000b40,
  9341. OPRND_SHIFT0 (0_4, FREG),
  9342. OPRND_SHIFT0 (16_20, FREG)),
  9343. CSKY_ISA_FLOAT_7E60),
  9344. OP32 ("fins.32",
  9345. OPCODE_INFO2 (0xf4000360,
  9346. OPRND_SHIFT0 (0_4, FREG),
  9347. OPRND_SHIFT0 (16_20, FREG)),
  9348. CSKY_ISA_FLOAT_7E60),
  9349. OP32 ("fsel.64",
  9350. OPCODE_INFO3 (0xf4000f20,
  9351. OPRND_SHIFT0 (0_4, FREG),
  9352. OPRND_SHIFT0 (16_20, FREG),
  9353. OPRND_SHIFT0 (21_25, FREG)),
  9354. CSKY_ISA_FLOAT_7E60),
  9355. /* SIMD floating. */
  9356. OP32 ("fadd.f32",
  9357. OPCODE_INFO3 (0xf4001000,
  9358. OPRND_SHIFT0 (0_4, FREG),
  9359. OPRND_SHIFT0 (16_20, FREG),
  9360. OPRND_SHIFT0 (21_25, FREG)),
  9361. CSKY_ISA_FLOAT_7E60),
  9362. OP32 ("faddm",
  9363. OPCODE_INFO3 (0xf4001000,
  9364. OPRND_SHIFT0 (0_4, FREG),
  9365. OPRND_SHIFT0 (16_20, FREG),
  9366. OPRND_SHIFT0 (21_25, FREG)),
  9367. CSKY_ISA_FLOAT_7E60),
  9368. OP32 ("fsub.f32",
  9369. OPCODE_INFO3 (0xf4001020,
  9370. OPRND_SHIFT0 (0_4, FREG),
  9371. OPRND_SHIFT0 (16_20, FREG),
  9372. OPRND_SHIFT0 (21_25, FREG)),
  9373. CSKY_ISA_FLOAT_7E60),
  9374. OP32 ("fsubm",
  9375. OPCODE_INFO3 (0xf4001020,
  9376. OPRND_SHIFT0 (0_4, FREG),
  9377. OPRND_SHIFT0 (16_20, FREG),
  9378. OPRND_SHIFT0 (21_25, FREG)),
  9379. CSKY_ISA_FLOAT_7E60),
  9380. OP32 ("fmov.f32",
  9381. OPCODE_INFO2 (0xf4001080,
  9382. OPRND_SHIFT0 (0_4, FREG),
  9383. OPRND_SHIFT0 (16_20, FREG)),
  9384. CSKY_ISA_FLOAT_7E60),
  9385. OP32 ("fmovm",
  9386. OPCODE_INFO2 (0xf4001080,
  9387. OPRND_SHIFT0 (0_4, FREG),
  9388. OPRND_SHIFT0 (16_20, FREG)),
  9389. CSKY_ISA_FLOAT_7E60),
  9390. OP32 ("fabs.f32",
  9391. OPCODE_INFO2 (0xf40010c0,
  9392. OPRND_SHIFT0 (0_4, FREG),
  9393. OPRND_SHIFT0 (16_20, FREG)),
  9394. CSKY_ISA_FLOAT_7E60),
  9395. OP32 ("fabsm",
  9396. OPCODE_INFO2 (0xf40010c0,
  9397. OPRND_SHIFT0 (0_4, FREG),
  9398. OPRND_SHIFT0 (16_20, FREG)),
  9399. CSKY_ISA_FLOAT_7E60),
  9400. OP32 ("fneg.f32",
  9401. OPCODE_INFO2 (0xf40010e0,
  9402. OPRND_SHIFT0 (0_4, FREG),
  9403. OPRND_SHIFT0 (16_20, FREG)),
  9404. CSKY_ISA_FLOAT_7E60),
  9405. OP32 ("fnegm",
  9406. OPCODE_INFO2 (0xf40010e0,
  9407. OPRND_SHIFT0 (0_4, FREG),
  9408. OPRND_SHIFT0 (16_20, FREG)),
  9409. CSKY_ISA_FLOAT_7E60),
  9410. OP32 ("fmul.f32",
  9411. OPCODE_INFO3 (0xf4001200,
  9412. OPRND_SHIFT0 (0_4, FREG),
  9413. OPRND_SHIFT0 (16_20, FREG),
  9414. OPRND_SHIFT0 (21_25, FREG)),
  9415. CSKY_ISA_FLOAT_7E60),
  9416. OP32 ("fmulm",
  9417. OPCODE_INFO3 (0xf4001200,
  9418. OPRND_SHIFT0 (0_4, FREG),
  9419. OPRND_SHIFT0 (16_20, FREG),
  9420. OPRND_SHIFT0 (21_25, FREG)),
  9421. CSKY_ISA_FLOAT_7E60),
  9422. OP32 ("fmula.f32",
  9423. OPCODE_INFO3 (0xf4001280,
  9424. OPRND_SHIFT0 (0_4, FREG),
  9425. OPRND_SHIFT0 (16_20, FREG),
  9426. OPRND_SHIFT0 (21_25, FREG)),
  9427. CSKY_ISA_FLOAT_7E60),
  9428. OP32 ("fmuls.f32",
  9429. OPCODE_INFO3 (0xf40012c0,
  9430. OPRND_SHIFT0 (0_4, FREG),
  9431. OPRND_SHIFT0 (16_20, FREG),
  9432. OPRND_SHIFT0 (21_25, FREG)),
  9433. CSKY_ISA_FLOAT_7E60),
  9434. OP32 ("fnmacm",
  9435. OPCODE_INFO3 (0xf40012c0,
  9436. OPRND_SHIFT0 (0_4, FREG),
  9437. OPRND_SHIFT0 (16_20, FREG),
  9438. OPRND_SHIFT0 (21_25, FREG)),
  9439. CSKY_ISA_FLOAT_7E60),
  9440. /* floating formate. */
  9441. OP32 ("fftoi.f32.s32.rn",
  9442. OPCODE_INFO2 (0xf4001800,
  9443. OPRND_SHIFT0 (0_4, FREG),
  9444. OPRND_SHIFT0 (16_20, FREG)),
  9445. CSKY_ISA_FLOAT_7E60),
  9446. OP32 ("fstosi.rn",
  9447. OPCODE_INFO2 (0xf4001800,
  9448. OPRND_SHIFT0 (0_4, FREG),
  9449. OPRND_SHIFT0 (16_20, FREG)),
  9450. CSKY_ISA_FLOAT_7E60),
  9451. OP32 ("fftoi.f32.s32.rz",
  9452. OPCODE_INFO2 (0xf4001820,
  9453. OPRND_SHIFT0 (0_4, FREG),
  9454. OPRND_SHIFT0 (16_20, FREG)),
  9455. CSKY_ISA_FLOAT_7E60),
  9456. OP32 ("fstosi.rz",
  9457. OPCODE_INFO2 (0xf4001820,
  9458. OPRND_SHIFT0 (0_4, FREG),
  9459. OPRND_SHIFT0 (16_20, FREG)),
  9460. CSKY_ISA_FLOAT_7E60),
  9461. OP32 ("fftoi.f32.s32.rpi",
  9462. OPCODE_INFO2 (0xf4001840,
  9463. OPRND_SHIFT0 (0_4, FREG),
  9464. OPRND_SHIFT0 (16_20, FREG)),
  9465. CSKY_ISA_FLOAT_7E60),
  9466. OP32 ("fstosi.rpi",
  9467. OPCODE_INFO2 (0xf4001840,
  9468. OPRND_SHIFT0 (0_4, FREG),
  9469. OPRND_SHIFT0 (16_20, FREG)),
  9470. CSKY_ISA_FLOAT_7E60),
  9471. OP32 ("fftoi.f32.s32.rni",
  9472. OPCODE_INFO2 (0xf4001860,
  9473. OPRND_SHIFT0 (0_4, FREG),
  9474. OPRND_SHIFT0 (16_20, FREG)),
  9475. CSKY_ISA_FLOAT_7E60),
  9476. OP32 ("fstosi.rni",
  9477. OPCODE_INFO2 (0xf4001860,
  9478. OPRND_SHIFT0 (0_4, FREG),
  9479. OPRND_SHIFT0 (16_20, FREG)),
  9480. CSKY_ISA_FLOAT_7E60),
  9481. OP32 ("fftoi.f32.u32.rn",
  9482. OPCODE_INFO2 (0xf4001880,
  9483. OPRND_SHIFT0 (0_4, FREG),
  9484. OPRND_SHIFT0 (16_20, FREG)),
  9485. CSKY_ISA_FLOAT_7E60),
  9486. OP32 ("fstoui.rn",
  9487. OPCODE_INFO2 (0xf4001880,
  9488. OPRND_SHIFT0 (0_4, FREG),
  9489. OPRND_SHIFT0 (16_20, FREG)),
  9490. CSKY_ISA_FLOAT_7E60),
  9491. OP32 ("fftoi.f32.u32.rz",
  9492. OPCODE_INFO2 (0xf40018a0,
  9493. OPRND_SHIFT0 (0_4, FREG),
  9494. OPRND_SHIFT0 (16_20, FREG)),
  9495. CSKY_ISA_FLOAT_7E60),
  9496. OP32 ("fstoui.rz",
  9497. OPCODE_INFO2 (0xf40018a0,
  9498. OPRND_SHIFT0 (0_4, FREG),
  9499. OPRND_SHIFT0 (16_20, FREG)),
  9500. CSKY_ISA_FLOAT_7E60),
  9501. OP32 ("fftoi.f32.u32.rpi",
  9502. OPCODE_INFO2 (0xf40018c0,
  9503. OPRND_SHIFT0 (0_4, FREG),
  9504. OPRND_SHIFT0 (16_20, FREG)),
  9505. CSKY_ISA_FLOAT_7E60),
  9506. OP32 ("fstoui.rpi",
  9507. OPCODE_INFO2 (0xf40018c0,
  9508. OPRND_SHIFT0 (0_4, FREG),
  9509. OPRND_SHIFT0 (16_20, FREG)),
  9510. CSKY_ISA_FLOAT_7E60),
  9511. OP32 ("fftoi.f32.u32.rni",
  9512. OPCODE_INFO2 (0xf40018e0,
  9513. OPRND_SHIFT0 (0_4, FREG),
  9514. OPRND_SHIFT0 (16_20, FREG)),
  9515. CSKY_ISA_FLOAT_7E60),
  9516. OP32 ("fstoui.rni",
  9517. OPCODE_INFO2 (0xf40018e0,
  9518. OPRND_SHIFT0 (0_4, FREG),
  9519. OPRND_SHIFT0 (16_20, FREG)),
  9520. CSKY_ISA_FLOAT_7E60),
  9521. OP32 ("fftoi.f64.s32.rn",
  9522. OPCODE_INFO2 (0xf4001900,
  9523. OPRND_SHIFT0 (0_4, FREG),
  9524. OPRND_SHIFT0 (16_20, FREG)),
  9525. CSKY_ISA_FLOAT_7E60),
  9526. OP32 ("fdtosi.rn",
  9527. OPCODE_INFO2 (0xf4001900,
  9528. OPRND_SHIFT0 (0_4, FREG),
  9529. OPRND_SHIFT0 (16_20, FREG)),
  9530. CSKY_ISA_FLOAT_7E60),
  9531. OP32 ("fftoi.f64.s32.rz",
  9532. OPCODE_INFO2 (0xf4001920,
  9533. OPRND_SHIFT0 (0_4, FREG),
  9534. OPRND_SHIFT0 (16_20, FREG)),
  9535. CSKY_ISA_FLOAT_7E60),
  9536. OP32 ("fdtosi.rz",
  9537. OPCODE_INFO2 (0xf4001920,
  9538. OPRND_SHIFT0 (0_4, FREG),
  9539. OPRND_SHIFT0 (16_20, FREG)),
  9540. CSKY_ISA_FLOAT_7E60),
  9541. OP32 ("fftoi.f64.s32.rpi",
  9542. OPCODE_INFO2 (0xf4001940,
  9543. OPRND_SHIFT0 (0_4, FREG),
  9544. OPRND_SHIFT0 (16_20, FREG)),
  9545. CSKY_ISA_FLOAT_7E60),
  9546. OP32 ("fdtosi.rpi",
  9547. OPCODE_INFO2 (0xf4001940,
  9548. OPRND_SHIFT0 (0_4, FREG),
  9549. OPRND_SHIFT0 (16_20, FREG)),
  9550. CSKY_ISA_FLOAT_7E60),
  9551. OP32 ("fftoi.f64.s32.rni",
  9552. OPCODE_INFO2 (0xf4001960,
  9553. OPRND_SHIFT0 (0_4, FREG),
  9554. OPRND_SHIFT0 (16_20, FREG)),
  9555. CSKY_ISA_FLOAT_7E60),
  9556. OP32 ("fdtosi.rni",
  9557. OPCODE_INFO2 (0xf4001960,
  9558. OPRND_SHIFT0 (0_4, FREG),
  9559. OPRND_SHIFT0 (16_20, FREG)),
  9560. CSKY_ISA_FLOAT_7E60),
  9561. OP32 ("fftoi.f64.u32.rn",
  9562. OPCODE_INFO2 (0xf4001980,
  9563. OPRND_SHIFT0 (0_4, FREG),
  9564. OPRND_SHIFT0 (16_20, FREG)),
  9565. CSKY_ISA_FLOAT_7E60),
  9566. OP32 ("fdtoui.rn",
  9567. OPCODE_INFO2 (0xf4001980,
  9568. OPRND_SHIFT0 (0_4, FREG),
  9569. OPRND_SHIFT0 (16_20, FREG)),
  9570. CSKY_ISA_FLOAT_7E60),
  9571. OP32 ("fftoi.f64.u32.rz",
  9572. OPCODE_INFO2 (0xf40019a0,
  9573. OPRND_SHIFT0 (0_4, FREG),
  9574. OPRND_SHIFT0 (16_20, FREG)),
  9575. CSKY_ISA_FLOAT_7E60),
  9576. OP32 ("fdtoui.rz",
  9577. OPCODE_INFO2 (0xf40019a0,
  9578. OPRND_SHIFT0 (0_4, FREG),
  9579. OPRND_SHIFT0 (16_20, FREG)),
  9580. CSKY_ISA_FLOAT_7E60),
  9581. OP32 ("fftoi.f64.u32.rpi",
  9582. OPCODE_INFO2 (0xf40019c0,
  9583. OPRND_SHIFT0 (0_4, FREG),
  9584. OPRND_SHIFT0 (16_20, FREG)),
  9585. CSKY_ISA_FLOAT_7E60),
  9586. OP32 ("fdtoui.rpi",
  9587. OPCODE_INFO2 (0xf40019c0,
  9588. OPRND_SHIFT0 (0_4, FREG),
  9589. OPRND_SHIFT0 (16_20, FREG)),
  9590. CSKY_ISA_FLOAT_7E60),
  9591. OP32 ("fftoi.f64.u32.rni",
  9592. OPCODE_INFO2 (0xf40019e0,
  9593. OPRND_SHIFT0 (0_4, FREG),
  9594. OPRND_SHIFT0 (16_20, FREG)),
  9595. CSKY_ISA_FLOAT_7E60),
  9596. OP32 ("fdtoui.rni",
  9597. OPCODE_INFO2 (0xf40019e0,
  9598. OPRND_SHIFT0 (0_4, FREG),
  9599. OPRND_SHIFT0 (16_20, FREG)),
  9600. CSKY_ISA_FLOAT_7E60),
  9601. OP32 ("fftoi.f16.s32.rn",
  9602. OPCODE_INFO2 (0xf4001c00,
  9603. OPRND_SHIFT0 (0_4, FREG),
  9604. OPRND_SHIFT0 (16_20, FREG)),
  9605. CSKY_ISA_FLOAT_7E60),
  9606. OP32 ("fhtosi.rn",
  9607. OPCODE_INFO2 (0xf4001c00,
  9608. OPRND_SHIFT0 (0_4, FREG),
  9609. OPRND_SHIFT0 (16_20, FREG)),
  9610. CSKY_ISA_FLOAT_7E60),
  9611. OP32 ("fftoi.f16.s32.rz",
  9612. OPCODE_INFO2 (0xf4001c20,
  9613. OPRND_SHIFT0 (0_4, FREG),
  9614. OPRND_SHIFT0 (16_20, FREG)),
  9615. CSKY_ISA_FLOAT_7E60),
  9616. OP32 ("fhtosi.rz",
  9617. OPCODE_INFO2 (0xf4001c20,
  9618. OPRND_SHIFT0 (0_4, FREG),
  9619. OPRND_SHIFT0 (16_20, FREG)),
  9620. CSKY_ISA_FLOAT_7E60),
  9621. OP32 ("fftoi.f16.s32.rpi",
  9622. OPCODE_INFO2 (0xf4001c40,
  9623. OPRND_SHIFT0 (0_4, FREG),
  9624. OPRND_SHIFT0 (16_20, FREG)),
  9625. CSKY_ISA_FLOAT_7E60),
  9626. OP32 ("fhtosi.rpi",
  9627. OPCODE_INFO2 (0xf4001c40,
  9628. OPRND_SHIFT0 (0_4, FREG),
  9629. OPRND_SHIFT0 (16_20, FREG)),
  9630. CSKY_ISA_FLOAT_7E60),
  9631. OP32 ("fftoi.f16.s32.rni",
  9632. OPCODE_INFO2 (0xf4001c60,
  9633. OPRND_SHIFT0 (0_4, FREG),
  9634. OPRND_SHIFT0 (16_20, FREG)),
  9635. CSKY_ISA_FLOAT_7E60),
  9636. OP32 ("fhtosi.rni",
  9637. OPCODE_INFO2 (0xf4001c60,
  9638. OPRND_SHIFT0 (0_4, FREG),
  9639. OPRND_SHIFT0 (16_20, FREG)),
  9640. CSKY_ISA_FLOAT_7E60),
  9641. OP32 ("fftoi.f16.u32.rn",
  9642. OPCODE_INFO2 (0xf4001c80,
  9643. OPRND_SHIFT0 (0_4, FREG),
  9644. OPRND_SHIFT0 (16_20, FREG)),
  9645. CSKY_ISA_FLOAT_7E60),
  9646. OP32 ("fhtoui.rn",
  9647. OPCODE_INFO2 (0xf4001c80,
  9648. OPRND_SHIFT0 (0_4, FREG),
  9649. OPRND_SHIFT0 (16_20, FREG)),
  9650. CSKY_ISA_FLOAT_7E60),
  9651. OP32 ("fftoi.f16.u32.rz",
  9652. OPCODE_INFO2 (0xf4001ca0,
  9653. OPRND_SHIFT0 (0_4, FREG),
  9654. OPRND_SHIFT0 (16_20, FREG)),
  9655. CSKY_ISA_FLOAT_7E60),
  9656. OP32 ("fhtoui.rz",
  9657. OPCODE_INFO2 (0xf4001ca0,
  9658. OPRND_SHIFT0 (0_4, FREG),
  9659. OPRND_SHIFT0 (16_20, FREG)),
  9660. CSKY_ISA_FLOAT_7E60),
  9661. OP32 ("fftoi.f16.u32.rpi",
  9662. OPCODE_INFO2 (0xf4001cc0,
  9663. OPRND_SHIFT0 (0_4, FREG),
  9664. OPRND_SHIFT0 (16_20, FREG)),
  9665. CSKY_ISA_FLOAT_7E60),
  9666. OP32 ("fhtoui.rpi",
  9667. OPCODE_INFO2 (0xf4001cc0,
  9668. OPRND_SHIFT0 (0_4, FREG),
  9669. OPRND_SHIFT0 (16_20, FREG)),
  9670. CSKY_ISA_FLOAT_7E60),
  9671. OP32 ("fftoi.f16.u32.rni",
  9672. OPCODE_INFO2 (0xf4001ce0,
  9673. OPRND_SHIFT0 (0_4, FREG),
  9674. OPRND_SHIFT0 (16_20, FREG)),
  9675. CSKY_ISA_FLOAT_7E60),
  9676. OP32 ("fhtoui.rni",
  9677. OPCODE_INFO2 (0xf4001ce0,
  9678. OPRND_SHIFT0 (0_4, FREG),
  9679. OPRND_SHIFT0 (16_20, FREG)),
  9680. CSKY_ISA_FLOAT_7E60),
  9681. OP32 ("fhtos",
  9682. OPCODE_INFO2 (0xf4001a40,
  9683. OPRND_SHIFT0 (0_4, FREG),
  9684. OPRND_SHIFT0 (16_20, FREG)),
  9685. CSKY_ISA_FLOAT_7E60),
  9686. OP32 ("fhtos.f16",
  9687. OPCODE_INFO2 (0xf4001a40,
  9688. OPRND_SHIFT0 (0_4, FREG),
  9689. OPRND_SHIFT0 (16_20, FREG)),
  9690. CSKY_ISA_FLOAT_7E60),
  9691. OP32 ("fstoh",
  9692. OPCODE_INFO2 (0xf4001a60,
  9693. OPRND_SHIFT0 (0_4, FREG),
  9694. OPRND_SHIFT0 (16_20, FREG)),
  9695. CSKY_ISA_FLOAT_7E60),
  9696. OP32 ("fstoh.f32",
  9697. OPCODE_INFO2 (0xf4001a60,
  9698. OPRND_SHIFT0 (0_4, FREG),
  9699. OPRND_SHIFT0 (16_20, FREG)),
  9700. CSKY_ISA_FLOAT_7E60),
  9701. OP32 ("fdtos",
  9702. OPCODE_INFO2 (0xf4001ac0,
  9703. OPRND_SHIFT0 (0_4, FREG),
  9704. OPRND_SHIFT0 (16_20, FREG)),
  9705. CSKY_ISA_FLOAT_7E60),
  9706. OP32 ("fdtos.f64",
  9707. OPCODE_INFO2 (0xf4001ac0,
  9708. OPRND_SHIFT0 (0_4, FREG),
  9709. OPRND_SHIFT0 (16_20, FREG)),
  9710. CSKY_ISA_FLOAT_7E60),
  9711. OP32 ("fstod",
  9712. OPCODE_INFO2 (0xf4001ae0,
  9713. OPRND_SHIFT0 (0_4, FREG),
  9714. OPRND_SHIFT0 (16_20, FREG)),
  9715. CSKY_ISA_FLOAT_7E60),
  9716. OP32 ("fmfvrh",
  9717. OPCODE_INFO2 (0xf4001b00,
  9718. OPRND_SHIFT0 (0_4, AREG),
  9719. OPRND_SHIFT0 (16_20, FREG)),
  9720. CSKY_ISA_FLOAT_7E60),
  9721. OP32 ("fmfvr.32.1",
  9722. OPCODE_INFO2 (0xf4001b20,
  9723. OPRND_SHIFT0 (0_4, AREG),
  9724. OPRND_SHIFT0 (16_20, FREG)),
  9725. CSKY_ISA_FLOAT_7E60),
  9726. OP32 ("fmfvrl",
  9727. OPCODE_INFO2 (0xf4001b20,
  9728. OPRND_SHIFT0 (0_4, AREG),
  9729. OPRND_SHIFT0 (16_20, FREG)),
  9730. CSKY_ISA_FLOAT_7E60),
  9731. OP32 ("fmtvr.16",
  9732. OPCODE_INFO2 (0xf4001fa0,
  9733. OPRND_SHIFT0 (0_4, FREG),
  9734. OPRND_SHIFT0 (16_20, AREG)),
  9735. CSKY_ISA_FLOAT_7E60),
  9736. OP32 ("fmfvr.16",
  9737. OPCODE_INFO2 (0xf4001f20,
  9738. OPRND_SHIFT0 (0_4, AREG),
  9739. OPRND_SHIFT0 (16_20, FREG)),
  9740. CSKY_ISA_FLOAT_7E60),
  9741. OP32 ("fmtvrh",
  9742. OPCODE_INFO2 (0xf4001b40,
  9743. OPRND_SHIFT0 (0_4, FREG),
  9744. OPRND_SHIFT0 (16_20, AREG)),
  9745. CSKY_ISA_FLOAT_7E60),
  9746. OP32 ("fmtvr.32.1",
  9747. OPCODE_INFO2 (0xf4001b60,
  9748. OPRND_SHIFT0 (0_4, FREG),
  9749. OPRND_SHIFT0 (16_20, AREG)),
  9750. CSKY_ISA_FLOAT_7E60),
  9751. OP32 ("fmtvrl",
  9752. OPCODE_INFO2 (0xf4001b60,
  9753. OPRND_SHIFT0 (0_4, FREG),
  9754. OPRND_SHIFT0 (16_20, AREG)),
  9755. CSKY_ISA_FLOAT_7E60),
  9756. OP32 ("fmtvr.64",
  9757. OPCODE_INFO3 (0xf4001f80,
  9758. OPRND_SHIFT0 (0_4, FREG),
  9759. OPRND_SHIFT0 (16_20, AREG),
  9760. OPRND_SHIFT0 (21_25, AREG)),
  9761. CSKY_ISA_FLOAT_7E60),
  9762. OP32 ("fmfvr.64",
  9763. OPCODE_INFO3 (0xf4001f00,
  9764. OPRND_SHIFT0 (0_4, AREG),
  9765. OPRND_SHIFT0 (21_25, AREG),
  9766. OPRND_SHIFT0 (16_20, FREG)),
  9767. CSKY_ISA_FLOAT_7E60),
  9768. OP32 ("fmtvr.32.2",
  9769. OPCODE_INFO3 (0xf4001fc0,
  9770. OPRND_SHIFT0 (0_4, FREG),
  9771. OPRND_SHIFT0 (16_20, AREG),
  9772. OPRND_SHIFT0 (21_25, AREG)),
  9773. CSKY_ISA_FLOAT_7E60),
  9774. OP32 ("fmfvr.32.2",
  9775. OPCODE_INFO3 (0xf4001f40,
  9776. OPRND_SHIFT0 (0_4, AREG),
  9777. OPRND_SHIFT0 (21_25, AREG),
  9778. OPRND_SHIFT0 (16_20, FREG)),
  9779. CSKY_ISA_FLOAT_7E60),
  9780. /* flsu. */
  9781. OP32 ("fld.16",
  9782. SOPCODE_INFO2 (0xf4002300,
  9783. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  9784. BRACKET_OPRND ((16_20,
  9785. AREG,
  9786. OPRND_SHIFT_0_BIT),
  9787. (4_7or21_24,
  9788. IMM_FLDST,
  9789. OPRND_SHIFT_1_BIT))),
  9790. CSKY_ISA_FLOAT_7E60),
  9791. OP32 ("fldh",
  9792. SOPCODE_INFO2 (0xf4002300,
  9793. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  9794. BRACKET_OPRND ((16_20,
  9795. AREG,
  9796. OPRND_SHIFT_0_BIT),
  9797. (4_7or21_24,
  9798. IMM_FLDST,
  9799. OPRND_SHIFT_1_BIT))),
  9800. CSKY_ISA_FLOAT_7E60),
  9801. OP32_WITH_WORK ("fst.16",
  9802. SOPCODE_INFO2 (0xf4002700,
  9803. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  9804. BRACKET_OPRND ((16_20,
  9805. AREG,
  9806. OPRND_SHIFT_0_BIT),
  9807. (4_7or21_24,
  9808. IMM_FLDST,
  9809. OPRND_SHIFT_1_BIT))),
  9810. CSKY_ISA_FLOAT_7E60,
  9811. float_work_fpuv3_fstore),
  9812. OP32_WITH_WORK ("fsth",
  9813. SOPCODE_INFO2 (0xf4002700,
  9814. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  9815. BRACKET_OPRND ((16_20,
  9816. AREG,
  9817. OPRND_SHIFT_0_BIT),
  9818. (4_7or21_24,
  9819. IMM_FLDST,
  9820. OPRND_SHIFT_1_BIT))),
  9821. CSKY_ISA_FLOAT_7E60,
  9822. float_work_fpuv3_fstore),
  9823. OP32 ("fldr16",
  9824. SOPCODE_INFO2 (0xf4002b00,
  9825. (0_4, FREG, OPRND_SHIFT_0_BIT),
  9826. BRACKET_OPRND ((16_20,
  9827. AREG,
  9828. OPRND_SHIFT_0_BIT),
  9829. (5_6or21_25,
  9830. AREG_WITH_LSHIFT_FPU,
  9831. OPRND_SHIFT_0_BIT))),
  9832. CSKY_ISA_FLOAT_7E60),
  9833. OP32 ("fldrh",
  9834. SOPCODE_INFO2 (0xf4002b00,
  9835. (0_4, FREG, OPRND_SHIFT_0_BIT),
  9836. BRACKET_OPRND ((16_20,
  9837. AREG,
  9838. OPRND_SHIFT_0_BIT),
  9839. (5_6or21_25,
  9840. AREG_WITH_LSHIFT_FPU,
  9841. OPRND_SHIFT_0_BIT))),
  9842. CSKY_ISA_FLOAT_7E60),
  9843. OP32_WITH_WORK ("fstr.16",
  9844. SOPCODE_INFO2 (0xf4002f00,
  9845. (0_4, FREG, OPRND_SHIFT_0_BIT),
  9846. BRACKET_OPRND ((16_20,
  9847. AREG,
  9848. OPRND_SHIFT_0_BIT),
  9849. (5_6or21_25,
  9850. AREG_WITH_LSHIFT_FPU,
  9851. OPRND_SHIFT_0_BIT))),
  9852. CSKY_ISA_FLOAT_7E60,
  9853. float_work_fpuv3_fstore),
  9854. OP32_WITH_WORK ("fstrh",
  9855. SOPCODE_INFO2 (0xf4002f00,
  9856. (0_4, FREG, OPRND_SHIFT_0_BIT),
  9857. BRACKET_OPRND ((16_20,
  9858. AREG,
  9859. OPRND_SHIFT_0_BIT),
  9860. (5_6or21_25,
  9861. AREG_WITH_LSHIFT_FPU,
  9862. OPRND_SHIFT_0_BIT))),
  9863. CSKY_ISA_FLOAT_7E60,
  9864. float_work_fpuv3_fstore),
  9865. OP32 ("fldm.16",
  9866. OPCODE_INFO2 (0xf4003300,
  9867. (0_4or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  9868. (16_20, AREG_WITH_BRACKET,OPRND_SHIFT_0_BIT)),
  9869. CSKY_ISA_FLOAT_7E60),
  9870. OP32 ("fldmh",
  9871. OPCODE_INFO2 (0xf4003300,
  9872. (0_4or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  9873. (16_20, AREG_WITH_BRACKET,OPRND_SHIFT_0_BIT)),
  9874. CSKY_ISA_FLOAT_7E60),
  9875. OP32_WITH_WORK ("fstm.16",
  9876. OPCODE_INFO2 (0xf4003700,
  9877. (0_4or21_24,
  9878. FREGLIST_DASH,
  9879. OPRND_SHIFT_0_BIT),
  9880. (16_20,
  9881. AREG_WITH_BRACKET,
  9882. OPRND_SHIFT_0_BIT)),
  9883. CSKY_ISA_FLOAT_7E60,
  9884. float_work_fpuv3_fstore),
  9885. OP32_WITH_WORK ("fstmh",
  9886. OPCODE_INFO2 (0xf4003700,
  9887. (0_4or21_24,
  9888. FREGLIST_DASH,
  9889. OPRND_SHIFT_0_BIT),
  9890. (16_20,
  9891. AREG_WITH_BRACKET,
  9892. OPRND_SHIFT_0_BIT)),
  9893. CSKY_ISA_FLOAT_7E60,
  9894. float_work_fpuv3_fstore),
  9895. OP32 ("fldmu.16",
  9896. OPCODE_INFO2 (0xf4003380,
  9897. OPRND_SHIFT0 (0_4or21_24, FREGLIST_DASH),
  9898. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  9899. CSKY_ISA_FLOAT_7E60),
  9900. OP32 ("fldmu.h",
  9901. OPCODE_INFO2 (0xf4003380,
  9902. OPRND_SHIFT0 (0_4or21_24, FREGLIST_DASH),
  9903. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  9904. CSKY_ISA_FLOAT_7E60),
  9905. OP32_WITH_WORK ("fstmu.16",
  9906. OPCODE_INFO2 (0xf4003780,
  9907. OPRND_SHIFT0 (0_4or21_24, FREGLIST_DASH),
  9908. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  9909. CSKY_ISA_FLOAT_7E60,
  9910. float_work_fpuv3_fstore),
  9911. OP32_WITH_WORK ("fstmu.h",
  9912. OPCODE_INFO2 (0xf4003780,
  9913. OPRND_SHIFT0 (0_4or21_24, FREGLIST_DASH),
  9914. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  9915. CSKY_ISA_FLOAT_7E60,
  9916. float_work_fpuv3_fstore),
  9917. OP32 ("fld.32",
  9918. SOPCODE_INFO2 (0xf4002000,
  9919. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  9920. BRACKET_OPRND ((16_20,
  9921. AREG,
  9922. OPRND_SHIFT_0_BIT),
  9923. (4_7or21_24,
  9924. IMM_FLDST,
  9925. OPRND_SHIFT_2_BIT))),
  9926. CSKY_ISA_FLOAT_7E60),
  9927. OP32 ("flds",
  9928. SOPCODE_INFO2 (0xf4002000,
  9929. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  9930. BRACKET_OPRND ((16_20,
  9931. AREG,
  9932. OPRND_SHIFT_0_BIT),
  9933. (4_7or21_24,
  9934. IMM_FLDST,
  9935. OPRND_SHIFT_2_BIT))),
  9936. CSKY_ISA_FLOAT_7E60),
  9937. OP32_WITH_WORK ("fst.32",
  9938. SOPCODE_INFO2 (0xf4002400,
  9939. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  9940. BRACKET_OPRND ((16_20,
  9941. AREG,
  9942. OPRND_SHIFT_0_BIT),
  9943. (4_7or21_24,
  9944. IMM_FLDST,
  9945. OPRND_SHIFT_2_BIT))),
  9946. CSKY_ISA_FLOAT_7E60,
  9947. float_work_fpuv3_fstore),
  9948. OP32_WITH_WORK ("fsts",
  9949. SOPCODE_INFO2 (0xf4002400,
  9950. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  9951. BRACKET_OPRND ((16_20,
  9952. AREG,
  9953. OPRND_SHIFT_0_BIT),
  9954. (4_7or21_24,
  9955. IMM_FLDST,
  9956. OPRND_SHIFT_2_BIT))),
  9957. CSKY_ISA_FLOAT_7E60,
  9958. float_work_fpuv3_fstore),
  9959. OP32 ("fldr.32",
  9960. SOPCODE_INFO2 (0xf4002800,
  9961. (0_4, FREG, OPRND_SHIFT_0_BIT),
  9962. BRACKET_OPRND ((16_20,
  9963. AREG,
  9964. OPRND_SHIFT_0_BIT),
  9965. (5_6or21_25,
  9966. AREG_WITH_LSHIFT_FPU,
  9967. OPRND_SHIFT_0_BIT))),
  9968. CSKY_ISA_FLOAT_7E60),
  9969. OP32 ("fldrs",
  9970. SOPCODE_INFO2 (0xf4002800,
  9971. (0_4, FREG, OPRND_SHIFT_0_BIT),
  9972. BRACKET_OPRND ((16_20,
  9973. AREG,
  9974. OPRND_SHIFT_0_BIT),
  9975. (5_6or21_25,
  9976. AREG_WITH_LSHIFT_FPU,
  9977. OPRND_SHIFT_0_BIT))),
  9978. CSKY_ISA_FLOAT_7E60),
  9979. OP32_WITH_WORK ("fstr.32",
  9980. SOPCODE_INFO2 (0xf4002c00,
  9981. (0_4, FREG, OPRND_SHIFT_0_BIT),
  9982. BRACKET_OPRND ((16_20,
  9983. AREG,
  9984. OPRND_SHIFT_0_BIT),
  9985. (5_6or21_25,
  9986. AREG_WITH_LSHIFT_FPU,
  9987. OPRND_SHIFT_0_BIT))),
  9988. CSKY_ISA_FLOAT_7E60,
  9989. float_work_fpuv3_fstore),
  9990. OP32_WITH_WORK ("fstrs",
  9991. SOPCODE_INFO2 (0xf4002c00,
  9992. (0_4, FREG, OPRND_SHIFT_0_BIT),
  9993. BRACKET_OPRND ((16_20,
  9994. AREG,
  9995. OPRND_SHIFT_0_BIT),
  9996. (5_6or21_25,
  9997. AREG_WITH_LSHIFT_FPU,
  9998. OPRND_SHIFT_0_BIT))),
  9999. CSKY_ISA_FLOAT_7E60,
  10000. float_work_fpuv3_fstore),
  10001. OP32 ("fldm.32",
  10002. OPCODE_INFO2 (0xf4003000,
  10003. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10004. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10005. CSKY_ISA_FLOAT_7E60),
  10006. OP32 ("fldms",
  10007. OPCODE_INFO2 (0xf4003000,
  10008. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10009. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10010. CSKY_ISA_FLOAT_7E60),
  10011. OP32_WITH_WORK ("fstm.32",
  10012. OPCODE_INFO2 (0xf4003400,
  10013. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10014. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10015. CSKY_ISA_FLOAT_7E60,
  10016. float_work_fpuv3_fstore),
  10017. OP32_WITH_WORK ("fstms",
  10018. OPCODE_INFO2 (0xf4003400,
  10019. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10020. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10021. CSKY_ISA_FLOAT_7E60,
  10022. float_work_fpuv3_fstore),
  10023. OP32 ("fldmu.32",
  10024. OPCODE_INFO2 (0xf4003080,
  10025. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10026. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10027. CSKY_ISA_FLOAT_7E60),
  10028. OP32 ("fldmu.s",
  10029. OPCODE_INFO2 (0xf4003080,
  10030. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10031. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10032. CSKY_ISA_FLOAT_7E60),
  10033. OP32_WITH_WORK ("fstmu.32",
  10034. OPCODE_INFO2 (0xf4003480,
  10035. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10036. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10037. CSKY_ISA_FLOAT_7E60,
  10038. float_work_fpuv3_fstore),
  10039. OP32_WITH_WORK ("fstmu.s",
  10040. OPCODE_INFO2 (0xf4003480,
  10041. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10042. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10043. CSKY_ISA_FLOAT_7E60,
  10044. float_work_fpuv3_fstore),
  10045. OP32 ("fld.64",
  10046. SOPCODE_INFO2 (0xf4002100,
  10047. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  10048. BRACKET_OPRND ((16_20,
  10049. AREG,
  10050. OPRND_SHIFT_0_BIT),
  10051. (4_7or21_24,
  10052. IMM_FLDST,
  10053. OPRND_SHIFT_2_BIT))),
  10054. CSKY_ISA_FLOAT_7E60),
  10055. OP32 ("fldd",
  10056. SOPCODE_INFO2 (0xf4002100,
  10057. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  10058. BRACKET_OPRND ((16_20,
  10059. AREG,
  10060. OPRND_SHIFT_0_BIT),
  10061. (4_7or21_24,
  10062. IMM_FLDST,
  10063. OPRND_SHIFT_2_BIT))),
  10064. CSKY_ISA_FLOAT_7E60),
  10065. OP32_WITH_WORK ("fst.64",
  10066. SOPCODE_INFO2 (0xf4002500,
  10067. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  10068. BRACKET_OPRND ((16_20,
  10069. AREG,
  10070. OPRND_SHIFT_0_BIT),
  10071. (4_7or21_24,
  10072. IMM_FLDST,
  10073. OPRND_SHIFT_2_BIT))),
  10074. CSKY_ISA_FLOAT_7E60,
  10075. float_work_fpuv3_fstore),
  10076. OP32_WITH_WORK ("fstd",
  10077. SOPCODE_INFO2 (0xf4002500,
  10078. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  10079. BRACKET_OPRND ((16_20,
  10080. AREG,
  10081. OPRND_SHIFT_0_BIT),
  10082. (4_7or21_24,
  10083. IMM_FLDST,
  10084. OPRND_SHIFT_2_BIT))),
  10085. CSKY_ISA_FLOAT_7E60,
  10086. float_work_fpuv3_fstore),
  10087. OP32 ("fldr.64",
  10088. SOPCODE_INFO2 (0xf4002900,
  10089. (0_4, FREG, OPRND_SHIFT_0_BIT),
  10090. BRACKET_OPRND ((16_20,
  10091. AREG,
  10092. OPRND_SHIFT_0_BIT),
  10093. (5_6or21_25,
  10094. AREG_WITH_LSHIFT_FPU,
  10095. OPRND_SHIFT_0_BIT))),
  10096. CSKY_ISA_FLOAT_7E60),
  10097. OP32 ("fldrd",
  10098. SOPCODE_INFO2 (0xf4002900,
  10099. (0_4, FREG, OPRND_SHIFT_0_BIT),
  10100. BRACKET_OPRND ((16_20,
  10101. AREG,
  10102. OPRND_SHIFT_0_BIT),
  10103. (5_6or21_25,
  10104. AREG_WITH_LSHIFT_FPU,
  10105. OPRND_SHIFT_0_BIT))),
  10106. CSKY_ISA_FLOAT_7E60),
  10107. OP32_WITH_WORK ("fstr.64",
  10108. SOPCODE_INFO2 (0xf4002d00,
  10109. (0_4, FREG, OPRND_SHIFT_0_BIT),
  10110. BRACKET_OPRND ((16_20,
  10111. AREG,
  10112. OPRND_SHIFT_0_BIT),
  10113. (5_6or21_25,
  10114. AREG_WITH_LSHIFT_FPU,
  10115. OPRND_SHIFT_0_BIT))),
  10116. CSKY_ISA_FLOAT_7E60,
  10117. float_work_fpuv3_fstore),
  10118. OP32_WITH_WORK ("fstrd",
  10119. SOPCODE_INFO2 (0xf4002d00,
  10120. (0_4, FREG, OPRND_SHIFT_0_BIT),
  10121. BRACKET_OPRND ((16_20,
  10122. AREG,
  10123. OPRND_SHIFT_0_BIT),
  10124. (5_6or21_25,
  10125. AREG_WITH_LSHIFT_FPU,
  10126. OPRND_SHIFT_0_BIT))),
  10127. CSKY_ISA_FLOAT_7E60,
  10128. float_work_fpuv3_fstore),
  10129. OP32 ("fldm.64",
  10130. OPCODE_INFO2 (0xf4003100,
  10131. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10132. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10133. CSKY_ISA_FLOAT_7E60),
  10134. OP32 ("fldmd",
  10135. OPCODE_INFO2 (0xf4003100,
  10136. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10137. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10138. CSKY_ISA_FLOAT_7E60),
  10139. OP32_WITH_WORK ("fstm.64",
  10140. OPCODE_INFO2 (0xf4003500,
  10141. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10142. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10143. CSKY_ISA_FLOAT_7E60,
  10144. float_work_fpuv3_fstore),
  10145. OP32_WITH_WORK ("fstmd",
  10146. OPCODE_INFO2 (0xf4003500,
  10147. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10148. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10149. CSKY_ISA_FLOAT_7E60,
  10150. float_work_fpuv3_fstore),
  10151. OP32 ("fldmu.64",
  10152. OPCODE_INFO2 (0xf4003180,
  10153. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10154. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10155. CSKY_ISA_FLOAT_7E60),
  10156. OP32 ("fldmu.d",
  10157. OPCODE_INFO2 (0xf4003180,
  10158. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10159. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10160. CSKY_ISA_FLOAT_7E60),
  10161. OP32_WITH_WORK ("fstmu.64",
  10162. OPCODE_INFO2 (0xf4003580,
  10163. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10164. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10165. CSKY_ISA_FLOAT_7E60,
  10166. float_work_fpuv3_fstore),
  10167. OP32_WITH_WORK ("fstmu.d",
  10168. OPCODE_INFO2 (0xf4003580,
  10169. OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
  10170. OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
  10171. CSKY_ISA_FLOAT_7E60,
  10172. float_work_fpuv3_fstore),
  10173. OP32 ("fldrm",
  10174. SOPCODE_INFO2 (0xf4002a00,
  10175. (0_4, FREG, OPRND_SHIFT_0_BIT),
  10176. BRACKET_OPRND ((16_20,
  10177. AREG,
  10178. OPRND_SHIFT_0_BIT),
  10179. (5_6or21_25,
  10180. AREG_WITH_LSHIFT_FPU,
  10181. OPRND_SHIFT_0_BIT))),
  10182. CSKY_ISA_FLOAT_7E60),
  10183. OP32_WITH_WORK ("fstrm",
  10184. SOPCODE_INFO2 (0xf4002e00,
  10185. (0_4, FREG, OPRND_SHIFT_0_BIT),
  10186. BRACKET_OPRND ((16_20,
  10187. AREG,
  10188. OPRND_SHIFT_0_BIT),
  10189. (5_6or21_25,
  10190. AREG_WITH_LSHIFT_FPU,
  10191. OPRND_SHIFT_0_BIT))),
  10192. CSKY_ISA_FLOAT_7E60,
  10193. float_work_fpuv3_fstore),
  10194. OP32 ("fldmm",
  10195. OPCODE_INFO2 (0xf4003200,
  10196. (0_4or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  10197. (16_20, AREG_WITH_BRACKET,OPRND_SHIFT_0_BIT)),
  10198. CSKY_ISA_FLOAT_7E60),
  10199. OP32_WITH_WORK ("fstmm",
  10200. OPCODE_INFO2 (0xf4003600,
  10201. (0_4or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
  10202. (16_20, AREG_WITH_BRACKET,OPRND_SHIFT_0_BIT)),
  10203. CSKY_ISA_FLOAT_7E60,
  10204. float_work_fpuv3_fstore),
  10205. OP32 ("fftox.f16.u16",
  10206. OPCODE_INFO2 (0xf4004000,
  10207. OPRND_SHIFT0 (0_4, FREG),
  10208. OPRND_SHIFT0 (16_20, FREG)),
  10209. CSKY_ISA_FLOAT_7E60),
  10210. OP32 ("fftox.f16.s16",
  10211. OPCODE_INFO2 (0xf4004020,
  10212. OPRND_SHIFT0 (0_4, FREG),
  10213. OPRND_SHIFT0 (16_20, FREG)),
  10214. CSKY_ISA_FLOAT_7E60),
  10215. OP32 ("fftox.f16.u32",
  10216. OPCODE_INFO2 (0xf4004100,
  10217. OPRND_SHIFT0 (0_4, FREG),
  10218. OPRND_SHIFT0 (16_20, FREG)),
  10219. CSKY_ISA_FLOAT_7E60),
  10220. OP32 ("fftox.f16.s32",
  10221. OPCODE_INFO2 (0xf4004120,
  10222. OPRND_SHIFT0 (0_4, FREG),
  10223. OPRND_SHIFT0 (16_20, FREG)),
  10224. CSKY_ISA_FLOAT_7E60),
  10225. OP32 ("fftox.f32.u32",
  10226. OPCODE_INFO2 (0xf4004140,
  10227. OPRND_SHIFT0 (0_4, FREG),
  10228. OPRND_SHIFT0 (16_20, FREG)),
  10229. CSKY_ISA_FLOAT_7E60),
  10230. OP32 ("fftox.f32.s32",
  10231. OPCODE_INFO2 (0xf4004160,
  10232. OPRND_SHIFT0 (0_4, FREG),
  10233. OPRND_SHIFT0 (16_20, FREG)),
  10234. CSKY_ISA_FLOAT_7E60),
  10235. OP32 ("fftox.f64.u32",
  10236. OPCODE_INFO2 (0xf4004180,
  10237. OPRND_SHIFT0 (0_4, FREG),
  10238. OPRND_SHIFT0 (16_20, FREG)),
  10239. CSKY_ISA_FLOAT_7E60),
  10240. OP32 ("fftox.f64.s32",
  10241. OPCODE_INFO2 (0xf40041a0,
  10242. OPRND_SHIFT0 (0_4, FREG),
  10243. OPRND_SHIFT0 (16_20, FREG)),
  10244. CSKY_ISA_FLOAT_7E60),
  10245. OP32 ("fxtof.u16.f16",
  10246. OPCODE_INFO2 (0xf4004800,
  10247. OPRND_SHIFT0 (0_4, FREG),
  10248. OPRND_SHIFT0 (16_20, FREG)),
  10249. CSKY_ISA_FLOAT_7E60),
  10250. OP32 ("fxtof.s16.f16",
  10251. OPCODE_INFO2 (0xf4004820,
  10252. OPRND_SHIFT0 (0_4, FREG),
  10253. OPRND_SHIFT0 (16_20, FREG)),
  10254. CSKY_ISA_FLOAT_7E60),
  10255. OP32 ("fxtof.u32.f16",
  10256. OPCODE_INFO2 (0xf4004900,
  10257. OPRND_SHIFT0 (0_4, FREG),
  10258. OPRND_SHIFT0 (16_20, FREG)),
  10259. CSKY_ISA_FLOAT_7E60),
  10260. OP32 ("fxtof.s32.f16",
  10261. OPCODE_INFO2 (0xf4004920,
  10262. OPRND_SHIFT0 (0_4, FREG),
  10263. OPRND_SHIFT0 (16_20, FREG)),
  10264. CSKY_ISA_FLOAT_7E60),
  10265. OP32 ("fxtof.u32.f32",
  10266. OPCODE_INFO2 (0xf4004940,
  10267. OPRND_SHIFT0 (0_4, FREG),
  10268. OPRND_SHIFT0 (16_20, FREG)),
  10269. CSKY_ISA_FLOAT_7E60),
  10270. OP32 ("fxtof.s32.f32",
  10271. OPCODE_INFO2 (0xf4004960,
  10272. OPRND_SHIFT0 (0_4, FREG),
  10273. OPRND_SHIFT0 (16_20, FREG)),
  10274. CSKY_ISA_FLOAT_7E60),
  10275. OP32 ("fxtof.u32.f64",
  10276. OPCODE_INFO2 (0xf4004980,
  10277. OPRND_SHIFT0 (0_4, FREG),
  10278. OPRND_SHIFT0 (16_20, FREG)),
  10279. CSKY_ISA_FLOAT_7E60),
  10280. OP32 ("fxtof.s32.f64",
  10281. OPCODE_INFO2 (0xf40049a0,
  10282. OPRND_SHIFT0 (0_4, FREG),
  10283. OPRND_SHIFT0 (16_20, FREG)),
  10284. CSKY_ISA_FLOAT_7E60),
  10285. OP32 ("fftoi.f16.s16",
  10286. OPCODE_INFO2 (0xf4004220,
  10287. OPRND_SHIFT0 (0_4, FREG),
  10288. OPRND_SHIFT0 (16_20, FREG)),
  10289. CSKY_ISA_FLOAT_7E60),
  10290. OP32 ("fftoi.f16.u16",
  10291. OPCODE_INFO2 (0xf4004200,
  10292. OPRND_SHIFT0 (0_4, FREG),
  10293. OPRND_SHIFT0 (16_20, FREG)),
  10294. CSKY_ISA_FLOAT_7E60),
  10295. OP32 ("fftoi.f16.s32",
  10296. OPCODE_INFO2 (0xf4004320,
  10297. OPRND_SHIFT0 (0_4, FREG),
  10298. OPRND_SHIFT0 (16_20, FREG)),
  10299. CSKY_ISA_FLOAT_7E60),
  10300. OP32 ("fftoi.f16.u32",
  10301. OPCODE_INFO2 (0xf4004300,
  10302. OPRND_SHIFT0 (0_4, FREG),
  10303. OPRND_SHIFT0 (16_20, FREG)),
  10304. CSKY_ISA_FLOAT_7E60),
  10305. OP32 ("fftoi.f32.s32",
  10306. OPCODE_INFO2 (0xf4004360,
  10307. OPRND_SHIFT0 (0_4, FREG),
  10308. OPRND_SHIFT0 (16_20, FREG)),
  10309. CSKY_ISA_FLOAT_7E60),
  10310. OP32 ("fftoi.f32.u32",
  10311. OPCODE_INFO2 (0xf4004340,
  10312. OPRND_SHIFT0 (0_4, FREG),
  10313. OPRND_SHIFT0 (16_20, FREG)),
  10314. CSKY_ISA_FLOAT_7E60),
  10315. OP32 ("fftoi.f64.s32",
  10316. OPCODE_INFO2 (0xf40043a0,
  10317. OPRND_SHIFT0 (0_4, FREG),
  10318. OPRND_SHIFT0 (16_20, FREG)),
  10319. CSKY_ISA_FLOAT_7E60),
  10320. OP32 ("fftoi.f64.u32",
  10321. OPCODE_INFO2 (0xf4004380,
  10322. OPRND_SHIFT0 (0_4, FREG),
  10323. OPRND_SHIFT0 (16_20, FREG)),
  10324. CSKY_ISA_FLOAT_7E60),
  10325. OP32 ("fitof.s16.f16",
  10326. OPCODE_INFO2 (0xf4004a20,
  10327. OPRND_SHIFT0 (0_4, FREG),
  10328. OPRND_SHIFT0 (16_20, FREG)),
  10329. CSKY_ISA_FLOAT_7E60),
  10330. OP32 ("fitof.u16.f16",
  10331. OPCODE_INFO2 (0xf4004a00,
  10332. OPRND_SHIFT0 (0_4, FREG),
  10333. OPRND_SHIFT0 (16_20, FREG)),
  10334. CSKY_ISA_FLOAT_7E60),
  10335. OP32 ("fitof.s32.f16",
  10336. OPCODE_INFO2 (0xf4004b20,
  10337. OPRND_SHIFT0 (0_4, FREG),
  10338. OPRND_SHIFT0 (16_20, FREG)),
  10339. CSKY_ISA_FLOAT_7E60),
  10340. OP32 ("fitof.u32.f16",
  10341. OPCODE_INFO2 (0xf4004b00,
  10342. OPRND_SHIFT0 (0_4, FREG),
  10343. OPRND_SHIFT0 (16_20, FREG)),
  10344. CSKY_ISA_FLOAT_7E60),
  10345. OP32 ("fitof.s32.f32",
  10346. OPCODE_INFO2 (0xf4004b60,
  10347. OPRND_SHIFT0 (0_4, FREG),
  10348. OPRND_SHIFT0 (16_20, FREG)),
  10349. CSKY_ISA_FLOAT_7E60),
  10350. OP32 ("fsitos",
  10351. OPCODE_INFO2 (0xf4004b60,
  10352. OPRND_SHIFT0 (0_4, FREG),
  10353. OPRND_SHIFT0 (16_20, FREG)),
  10354. CSKY_ISA_FLOAT_7E60),
  10355. OP32 ("fitof.u32.f32",
  10356. OPCODE_INFO2 (0xf4004b40,
  10357. OPRND_SHIFT0 (0_4, FREG),
  10358. OPRND_SHIFT0 (16_20, FREG)),
  10359. CSKY_ISA_FLOAT_7E60),
  10360. OP32 ("fuitos",
  10361. OPCODE_INFO2 (0xf4004b40,
  10362. OPRND_SHIFT0 (0_4, FREG),
  10363. OPRND_SHIFT0 (16_20, FREG)),
  10364. CSKY_ISA_FLOAT_7E60),
  10365. OP32 ("fitof.s32.f64",
  10366. OPCODE_INFO2 (0xf4004ba0,
  10367. OPRND_SHIFT0 (0_4, FREG),
  10368. OPRND_SHIFT0 (16_20, FREG)),
  10369. CSKY_ISA_FLOAT_7E60),
  10370. OP32 ("fsitod",
  10371. OPCODE_INFO2 (0xf4004ba0,
  10372. OPRND_SHIFT0 (0_4, FREG),
  10373. OPRND_SHIFT0 (16_20, FREG)),
  10374. CSKY_ISA_FLOAT_7E60),
  10375. OP32 ("fitof.u32.f64",
  10376. OPCODE_INFO2 (0xf4004b80,
  10377. OPRND_SHIFT0 (0_4, FREG),
  10378. OPRND_SHIFT0 (16_20, FREG)),
  10379. CSKY_ISA_FLOAT_7E60),
  10380. OP32 ("fuitod",
  10381. OPCODE_INFO2 (0xf4004b80,
  10382. OPRND_SHIFT0 (0_4, FREG),
  10383. OPRND_SHIFT0 (16_20, FREG)),
  10384. CSKY_ISA_FLOAT_7E60),
  10385. OP32 ("fftofi.f16.rn",
  10386. OPCODE_INFO2 (0xf4004400,
  10387. OPRND_SHIFT0 (0_4, FREG),
  10388. OPRND_SHIFT0 (16_20, FREG)),
  10389. CSKY_ISA_FLOAT_7E60),
  10390. OP32 ("fftofi.f16.rz",
  10391. OPCODE_INFO2 (0xf4004420,
  10392. OPRND_SHIFT0 (0_4, FREG),
  10393. OPRND_SHIFT0 (16_20, FREG)),
  10394. CSKY_ISA_FLOAT_7E60),
  10395. OP32 ("fftofi.f16.rpi",
  10396. OPCODE_INFO2 (0xf4004440,
  10397. OPRND_SHIFT0 (0_4, FREG),
  10398. OPRND_SHIFT0 (16_20, FREG)),
  10399. CSKY_ISA_FLOAT_7E60),
  10400. OP32 ("fftofi.f16.rni",
  10401. OPCODE_INFO2 (0xf4004460,
  10402. OPRND_SHIFT0 (0_4, FREG),
  10403. OPRND_SHIFT0 (16_20, FREG)),
  10404. CSKY_ISA_FLOAT_7E60),
  10405. OP32 ("fftofi.f32.rn",
  10406. OPCODE_INFO2 (0xf4004480,
  10407. OPRND_SHIFT0 (0_4, FREG),
  10408. OPRND_SHIFT0 (16_20, FREG)),
  10409. CSKY_ISA_FLOAT_7E60),
  10410. OP32 ("fftofi.f32.rz",
  10411. OPCODE_INFO2 (0xf40044a0,
  10412. OPRND_SHIFT0 (0_4, FREG),
  10413. OPRND_SHIFT0 (16_20, FREG)),
  10414. CSKY_ISA_FLOAT_7E60),
  10415. OP32 ("fftofi.f32.rpi",
  10416. OPCODE_INFO2 (0xf40044c0,
  10417. OPRND_SHIFT0 (0_4, FREG),
  10418. OPRND_SHIFT0 (16_20, FREG)),
  10419. CSKY_ISA_FLOAT_7E60),
  10420. OP32 ("fftofi.f32.rni",
  10421. OPCODE_INFO2 (0xf40044e0,
  10422. OPRND_SHIFT0 (0_4, FREG),
  10423. OPRND_SHIFT0 (16_20, FREG)),
  10424. CSKY_ISA_FLOAT_7E60),
  10425. OP32 ("fftofi.f64.rn",
  10426. OPCODE_INFO2 (0xf4004500,
  10427. OPRND_SHIFT0 (0_4, FREG),
  10428. OPRND_SHIFT0 (16_20, FREG)),
  10429. CSKY_ISA_FLOAT_7E60),
  10430. OP32 ("fftofi.f64.rz",
  10431. OPCODE_INFO2 (0xf4004520,
  10432. OPRND_SHIFT0 (0_4, FREG),
  10433. OPRND_SHIFT0 (16_20, FREG)),
  10434. CSKY_ISA_FLOAT_7E60),
  10435. OP32 ("fftofi.f64.rpi",
  10436. OPCODE_INFO2 (0xf4004540,
  10437. OPRND_SHIFT0 (0_4, FREG),
  10438. OPRND_SHIFT0 (16_20, FREG)),
  10439. CSKY_ISA_FLOAT_7E60),
  10440. OP32 ("fftofi.f64.rni",
  10441. OPCODE_INFO2 (0xf4004560,
  10442. OPRND_SHIFT0 (0_4, FREG),
  10443. OPRND_SHIFT0 (16_20, FREG)),
  10444. CSKY_ISA_FLOAT_7E60),
  10445. DOP32_WITH_WORK ("fmovi.16",
  10446. OPCODE_INFO2 (0xf400e400,
  10447. OPRND_SHIFT0 (0_4, FREG),
  10448. OPRND_SHIFT0 (5or8_9or16_25, HFLOAT_FMOVI)),
  10449. OPCODE_INFO3 (0xf400e400,
  10450. OPRND_SHIFT0 (0_4, FREG),
  10451. OPRND_SHIFT0 (5or8_9or20_25, IMM9b),
  10452. OPRND_SHIFT0 (16_19, IMM4b)),
  10453. CSKY_ISA_FLOAT_7E60,
  10454. float_work_fpuv3_fmovi),
  10455. DOP32_WITH_WORK ("fmovi.32",
  10456. OPCODE_INFO2 (0xf400e440,
  10457. OPRND_SHIFT0 (0_4, FREG),
  10458. OPRND_SHIFT0 (5or8_9or16_25, SFLOAT_FMOVI)),
  10459. OPCODE_INFO3 (0xf400e440,
  10460. OPRND_SHIFT0 (0_4, FREG),
  10461. OPRND_SHIFT0 (5or8_9or20_25, IMM9b),
  10462. OPRND_SHIFT0 (16_19, IMM4b)),
  10463. CSKY_ISA_FLOAT_7E60,
  10464. float_work_fpuv3_fmovi),
  10465. DOP32_WITH_WORK ("fmovi.64",
  10466. OPCODE_INFO2 (0xf400e480,
  10467. OPRND_SHIFT0 (0_4, FREG),
  10468. OPRND_SHIFT0 (5or8_9or16_25, DFLOAT_FMOVI)),
  10469. OPCODE_INFO3 (0xf400e480,
  10470. OPRND_SHIFT0 (0_4, FREG),
  10471. OPRND_SHIFT0 (5or8_9or20_25, IMM9b),
  10472. OPRND_SHIFT0 (16_19, IMM4b)),
  10473. CSKY_ISA_FLOAT_7E60,
  10474. float_work_fpuv3_fmovi),
  10475. #undef _RELOC32
  10476. #define _RELOC32 BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
  10477. OP32 ("flrw.32",
  10478. OPCODE_INFO2 (0xf4003800,
  10479. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  10480. (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
  10481. CSKY_ISA_FLOAT_7E60),
  10482. OP32 ("flrws",
  10483. OPCODE_INFO2 (0xf4003800,
  10484. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  10485. (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
  10486. CSKY_ISA_FLOAT_7E60),
  10487. OP32 ("flrw.64",
  10488. OPCODE_INFO2 (0xf4003900,
  10489. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  10490. (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
  10491. CSKY_ISA_FLOAT_7E60),
  10492. OP32 ("flrwd",
  10493. OPCODE_INFO2 (0xf4003900,
  10494. (0_3or25, FREG, OPRND_SHIFT_0_BIT),
  10495. (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
  10496. CSKY_ISA_FLOAT_7E60),
  10497. #undef _RELOC32
  10498. #define _RELOC32 0
  10499. /* The following are aliases for other instructions. */
  10500. /* setc -> cmphs r0, r0 */
  10501. OP16 ("setc",
  10502. OPCODE_INFO0 (0x6400),
  10503. CSKYV2_ISA_E1),
  10504. /* clrc -> cmpne r0, r0 */
  10505. OP16 ("clrc",
  10506. OPCODE_INFO0 (0x6402),
  10507. CSKYV2_ISA_E1),
  10508. /* tstlt rd -> btsti rd,31 */
  10509. OP32 ("tstlt",
  10510. OPCODE_INFO1 (0xc7e02880,
  10511. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10512. CSKYV2_ISA_1E2),
  10513. /* idly4 -> idly 4 */
  10514. OP32 ("idly4",
  10515. OPCODE_INFO0 (0xc0601c20),
  10516. CSKYV2_ISA_E1),
  10517. /* rsub rz, ry, rx -> subu rz, rx, ry */
  10518. DOP32 ("rsub",
  10519. OPCODE_INFO3 (0xc4000080,
  10520. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10521. (21_25, AREG, OPRND_SHIFT_0_BIT),
  10522. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10523. OPCODE_INFO2 (0xc4000080,
  10524. (0_4or21_25, DUP_AREG, OPRND_SHIFT_0_BIT),
  10525. (16_20, AREG, OPRND_SHIFT_0_BIT)), CSKYV2_ISA_1E2),
  10526. /* cmplei rd,X -> cmplti rd,X+1 */
  10527. OP16_OP32 ("cmplei",
  10528. OPCODE_INFO2 (0x3820,
  10529. (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
  10530. (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
  10531. CSKYV2_ISA_E1,
  10532. OPCODE_INFO2 (0xeb200000,
  10533. (16_20, AREG, OPRND_SHIFT_0_BIT),
  10534. (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
  10535. CSKYV2_ISA_1E2),
  10536. /* cmpls -> cmphs */
  10537. OP16_OP32 ("cmpls",
  10538. OPCODE_INFO2 (0x6400,
  10539. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  10540. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  10541. CSKYV2_ISA_E1,
  10542. OPCODE_INFO2 (0xc4000420,
  10543. (21_25, AREG, OPRND_SHIFT_0_BIT),
  10544. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10545. CSKYV2_ISA_2E3),
  10546. /* cmpgt -> cmplt */
  10547. OP16_OP32 ("cmpgt",
  10548. OPCODE_INFO2 (0x6401,
  10549. (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
  10550. (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
  10551. CSKYV2_ISA_E1,
  10552. OPCODE_INFO2 (0xc4000440,
  10553. (21_25, AREG, OPRND_SHIFT_0_BIT),
  10554. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10555. CSKYV2_ISA_2E3),
  10556. /* tstle rd -> cmplti rd,1 */
  10557. OP16_OP32 ("tstle",
  10558. OPCODE_INFO1 (0x3820,
  10559. (8_10, GREG0_7, OPRND_SHIFT_0_BIT)),
  10560. CSKYV2_ISA_E1,
  10561. OPCODE_INFO1 (0xeb200000,
  10562. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10563. CSKYV2_ISA_1E2),
  10564. /* tstne rd -> cmpnei rd,0 */
  10565. OP16_OP32 ("tstne",
  10566. OPCODE_INFO1 (0x3840,
  10567. (8_10, GREG0_7, OPRND_SHIFT_0_BIT)),
  10568. CSKYV2_ISA_E1,
  10569. OPCODE_INFO1 (0xeb400000,
  10570. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10571. CSKYV2_ISA_1E2),
  10572. /* rotri rz, rx, imm5 -> rotli rz, rx, 32-imm5 */
  10573. DOP32 ("rotri",
  10574. OPCODE_INFO3 (0xc4004900,
  10575. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10576. (16_20, AREG, OPRND_SHIFT_0_BIT),
  10577. (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
  10578. OPCODE_INFO2 (0xc4004900,
  10579. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  10580. (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
  10581. CSKYV2_ISA_2E3),
  10582. DOP32 ("rori",
  10583. OPCODE_INFO3 (0xc4004900,
  10584. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10585. (16_20, AREG, OPRND_SHIFT_0_BIT),
  10586. (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
  10587. OPCODE_INFO2 (0xc4004900,
  10588. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
  10589. (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
  10590. CSKYV2_ISA_2E3),
  10591. /* rotlc rd -> addc rd, rd/ addc rd, rd, rd */
  10592. OP16_OP32_WITH_WORK ("rotlc",
  10593. OPCODE_INFO2 (0x6001,
  10594. (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
  10595. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  10596. CSKYV2_ISA_E1,
  10597. OPCODE_INFO2 (0xc4000040,
  10598. (NONE, AREG, OPRND_SHIFT_0_BIT),
  10599. (NONE, CONST1, OPRND_SHIFT_0_BIT)),
  10600. CSKYV2_ISA_2E3,
  10601. v2_work_rotlc),
  10602. /* not rd -> nor rd, rd, not rz, rx -> nor rz, rx, rx */
  10603. OP16_OP32_WITH_WORK ("not",
  10604. OPCODE_INFO1 (0x6c02,
  10605. (NONE, AREG, OPRND_SHIFT_0_BIT)),
  10606. CSKYV2_ISA_E1,
  10607. OPCODE_INFO2 (0xc4002480,
  10608. (NONE, AREG, OPRND_SHIFT_0_BIT),
  10609. (NONE, AREG, OPRND_SHIFT_0_BIT)),
  10610. CSKYV2_ISA_E1, v2_work_not),
  10611. /* Special force 32 bits instruction. */
  10612. OP32 ("xtrb0.32",
  10613. OPCODE_INFO2 (0xc4007020,
  10614. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10615. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10616. CSKYV2_ISA_1E2),
  10617. OP32 ("xtrb1.32",
  10618. OPCODE_INFO2 (0xc4007040,
  10619. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10620. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10621. CSKYV2_ISA_1E2),
  10622. OP32 ("xtrb2.32",
  10623. OPCODE_INFO2 (0xc4007080,
  10624. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10625. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10626. CSKYV2_ISA_1E2),
  10627. OP32 ("xtrb3.32",
  10628. OPCODE_INFO2 (0xc4007100,
  10629. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10630. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10631. CSKYV2_ISA_1E2),
  10632. OP32 ("ff0.32",
  10633. OPCODE_INFO2 (0xc4007c20,
  10634. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10635. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10636. CSKYV2_ISA_1E2),
  10637. DOP32 ("ff1.32",
  10638. OPCODE_INFO2 (0xc4007c40,
  10639. (0_4, AREG, OPRND_SHIFT_0_BIT),
  10640. (16_20, AREG, OPRND_SHIFT_0_BIT)),
  10641. OPCODE_INFO1 (0xc4007c40,
  10642. (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
  10643. CSKYV2_ISA_1E2),
  10644. {NULL, 0, {}, {}, 0, 0, 0, 0, 0, NULL}
  10645. };