123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101 |
- /* Simulator instruction decoder for sh64_media.
- THIS FILE IS MACHINE GENERATED WITH CGEN.
- Copyright 1996-2015 Free Software Foundation, Inc.
- This file is part of the GNU simulators.
- This file is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
- It is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
- You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>.
- */
- #define WANT_CPU sh64
- #define WANT_CPU_SH64
- #include "sim-main.h"
- #include "sim-assert.h"
- /* The instruction descriptor array.
- This is computed at runtime. Space for it is not malloc'd to save a
- teensy bit of cpu in the decoder. Moving it to malloc space is trivial
- but won't be done until necessary (we don't currently support the runtime
- addition of instructions nor an SMP machine with different cpus). */
- static IDESC sh64_media_insn_data[SH64_MEDIA_INSN__MAX];
- /* Commas between elements are contained in the macros.
- Some of these are conditionally compiled out. */
- static const struct insn_sem sh64_media_insn_sem[] =
- {
- { VIRTUAL_INSN_X_INVALID, SH64_MEDIA_INSN_X_INVALID, SH64_MEDIA_SFMT_EMPTY },
- { VIRTUAL_INSN_X_AFTER, SH64_MEDIA_INSN_X_AFTER, SH64_MEDIA_SFMT_EMPTY },
- { VIRTUAL_INSN_X_BEFORE, SH64_MEDIA_INSN_X_BEFORE, SH64_MEDIA_SFMT_EMPTY },
- { VIRTUAL_INSN_X_CTI_CHAIN, SH64_MEDIA_INSN_X_CTI_CHAIN, SH64_MEDIA_SFMT_EMPTY },
- { VIRTUAL_INSN_X_CHAIN, SH64_MEDIA_INSN_X_CHAIN, SH64_MEDIA_SFMT_EMPTY },
- { VIRTUAL_INSN_X_BEGIN, SH64_MEDIA_INSN_X_BEGIN, SH64_MEDIA_SFMT_EMPTY },
- { SH_INSN_ADD, SH64_MEDIA_INSN_ADD, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_ADDL, SH64_MEDIA_INSN_ADDL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_ADDI, SH64_MEDIA_INSN_ADDI, SH64_MEDIA_SFMT_ADDI },
- { SH_INSN_ADDIL, SH64_MEDIA_INSN_ADDIL, SH64_MEDIA_SFMT_ADDI },
- { SH_INSN_ADDZL, SH64_MEDIA_INSN_ADDZL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_ALLOCO, SH64_MEDIA_INSN_ALLOCO, SH64_MEDIA_SFMT_ALLOCO },
- { SH_INSN_AND, SH64_MEDIA_INSN_AND, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_ANDC, SH64_MEDIA_INSN_ANDC, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_ANDI, SH64_MEDIA_INSN_ANDI, SH64_MEDIA_SFMT_ADDI },
- { SH_INSN_BEQ, SH64_MEDIA_INSN_BEQ, SH64_MEDIA_SFMT_BEQ },
- { SH_INSN_BEQI, SH64_MEDIA_INSN_BEQI, SH64_MEDIA_SFMT_BEQI },
- { SH_INSN_BGE, SH64_MEDIA_INSN_BGE, SH64_MEDIA_SFMT_BEQ },
- { SH_INSN_BGEU, SH64_MEDIA_INSN_BGEU, SH64_MEDIA_SFMT_BEQ },
- { SH_INSN_BGT, SH64_MEDIA_INSN_BGT, SH64_MEDIA_SFMT_BEQ },
- { SH_INSN_BGTU, SH64_MEDIA_INSN_BGTU, SH64_MEDIA_SFMT_BEQ },
- { SH_INSN_BLINK, SH64_MEDIA_INSN_BLINK, SH64_MEDIA_SFMT_BLINK },
- { SH_INSN_BNE, SH64_MEDIA_INSN_BNE, SH64_MEDIA_SFMT_BEQ },
- { SH_INSN_BNEI, SH64_MEDIA_INSN_BNEI, SH64_MEDIA_SFMT_BNEI },
- { SH_INSN_BRK, SH64_MEDIA_INSN_BRK, SH64_MEDIA_SFMT_BRK },
- { SH_INSN_BYTEREV, SH64_MEDIA_INSN_BYTEREV, SH64_MEDIA_SFMT_BYTEREV },
- { SH_INSN_CMPEQ, SH64_MEDIA_INSN_CMPEQ, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_CMPGT, SH64_MEDIA_INSN_CMPGT, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_CMPGTU, SH64_MEDIA_INSN_CMPGTU, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_CMVEQ, SH64_MEDIA_INSN_CMVEQ, SH64_MEDIA_SFMT_CMVEQ },
- { SH_INSN_CMVNE, SH64_MEDIA_INSN_CMVNE, SH64_MEDIA_SFMT_CMVEQ },
- { SH_INSN_FABSD, SH64_MEDIA_INSN_FABSD, SH64_MEDIA_SFMT_FABSD },
- { SH_INSN_FABSS, SH64_MEDIA_INSN_FABSS, SH64_MEDIA_SFMT_FABSS },
- { SH_INSN_FADDD, SH64_MEDIA_INSN_FADDD, SH64_MEDIA_SFMT_FADDD },
- { SH_INSN_FADDS, SH64_MEDIA_INSN_FADDS, SH64_MEDIA_SFMT_FADDS },
- { SH_INSN_FCMPEQD, SH64_MEDIA_INSN_FCMPEQD, SH64_MEDIA_SFMT_FCMPEQD },
- { SH_INSN_FCMPEQS, SH64_MEDIA_INSN_FCMPEQS, SH64_MEDIA_SFMT_FCMPEQS },
- { SH_INSN_FCMPGED, SH64_MEDIA_INSN_FCMPGED, SH64_MEDIA_SFMT_FCMPEQD },
- { SH_INSN_FCMPGES, SH64_MEDIA_INSN_FCMPGES, SH64_MEDIA_SFMT_FCMPEQS },
- { SH_INSN_FCMPGTD, SH64_MEDIA_INSN_FCMPGTD, SH64_MEDIA_SFMT_FCMPEQD },
- { SH_INSN_FCMPGTS, SH64_MEDIA_INSN_FCMPGTS, SH64_MEDIA_SFMT_FCMPEQS },
- { SH_INSN_FCMPUND, SH64_MEDIA_INSN_FCMPUND, SH64_MEDIA_SFMT_FCMPEQD },
- { SH_INSN_FCMPUNS, SH64_MEDIA_INSN_FCMPUNS, SH64_MEDIA_SFMT_FCMPEQS },
- { SH_INSN_FCNVDS, SH64_MEDIA_INSN_FCNVDS, SH64_MEDIA_SFMT_FCNVDS },
- { SH_INSN_FCNVSD, SH64_MEDIA_INSN_FCNVSD, SH64_MEDIA_SFMT_FCNVSD },
- { SH_INSN_FDIVD, SH64_MEDIA_INSN_FDIVD, SH64_MEDIA_SFMT_FADDD },
- { SH_INSN_FDIVS, SH64_MEDIA_INSN_FDIVS, SH64_MEDIA_SFMT_FADDS },
- { SH_INSN_FGETSCR, SH64_MEDIA_INSN_FGETSCR, SH64_MEDIA_SFMT_FGETSCR },
- { SH_INSN_FIPRS, SH64_MEDIA_INSN_FIPRS, SH64_MEDIA_SFMT_FIPRS },
- { SH_INSN_FLDD, SH64_MEDIA_INSN_FLDD, SH64_MEDIA_SFMT_FLDD },
- { SH_INSN_FLDP, SH64_MEDIA_INSN_FLDP, SH64_MEDIA_SFMT_FLDP },
- { SH_INSN_FLDS, SH64_MEDIA_INSN_FLDS, SH64_MEDIA_SFMT_FLDS },
- { SH_INSN_FLDXD, SH64_MEDIA_INSN_FLDXD, SH64_MEDIA_SFMT_FLDXD },
- { SH_INSN_FLDXP, SH64_MEDIA_INSN_FLDXP, SH64_MEDIA_SFMT_FLDXP },
- { SH_INSN_FLDXS, SH64_MEDIA_INSN_FLDXS, SH64_MEDIA_SFMT_FLDXS },
- { SH_INSN_FLOATLD, SH64_MEDIA_INSN_FLOATLD, SH64_MEDIA_SFMT_FCNVSD },
- { SH_INSN_FLOATLS, SH64_MEDIA_INSN_FLOATLS, SH64_MEDIA_SFMT_FABSS },
- { SH_INSN_FLOATQD, SH64_MEDIA_INSN_FLOATQD, SH64_MEDIA_SFMT_FABSD },
- { SH_INSN_FLOATQS, SH64_MEDIA_INSN_FLOATQS, SH64_MEDIA_SFMT_FCNVDS },
- { SH_INSN_FMACS, SH64_MEDIA_INSN_FMACS, SH64_MEDIA_SFMT_FMACS },
- { SH_INSN_FMOVD, SH64_MEDIA_INSN_FMOVD, SH64_MEDIA_SFMT_FABSD },
- { SH_INSN_FMOVDQ, SH64_MEDIA_INSN_FMOVDQ, SH64_MEDIA_SFMT_FMOVDQ },
- { SH_INSN_FMOVLS, SH64_MEDIA_INSN_FMOVLS, SH64_MEDIA_SFMT_FMOVLS },
- { SH_INSN_FMOVQD, SH64_MEDIA_INSN_FMOVQD, SH64_MEDIA_SFMT_FMOVQD },
- { SH_INSN_FMOVS, SH64_MEDIA_INSN_FMOVS, SH64_MEDIA_SFMT_FABSS },
- { SH_INSN_FMOVSL, SH64_MEDIA_INSN_FMOVSL, SH64_MEDIA_SFMT_FMOVSL },
- { SH_INSN_FMULD, SH64_MEDIA_INSN_FMULD, SH64_MEDIA_SFMT_FADDD },
- { SH_INSN_FMULS, SH64_MEDIA_INSN_FMULS, SH64_MEDIA_SFMT_FADDS },
- { SH_INSN_FNEGD, SH64_MEDIA_INSN_FNEGD, SH64_MEDIA_SFMT_FABSD },
- { SH_INSN_FNEGS, SH64_MEDIA_INSN_FNEGS, SH64_MEDIA_SFMT_FABSS },
- { SH_INSN_FPUTSCR, SH64_MEDIA_INSN_FPUTSCR, SH64_MEDIA_SFMT_FPUTSCR },
- { SH_INSN_FSQRTD, SH64_MEDIA_INSN_FSQRTD, SH64_MEDIA_SFMT_FABSD },
- { SH_INSN_FSQRTS, SH64_MEDIA_INSN_FSQRTS, SH64_MEDIA_SFMT_FABSS },
- { SH_INSN_FSTD, SH64_MEDIA_INSN_FSTD, SH64_MEDIA_SFMT_FSTD },
- { SH_INSN_FSTP, SH64_MEDIA_INSN_FSTP, SH64_MEDIA_SFMT_FLDP },
- { SH_INSN_FSTS, SH64_MEDIA_INSN_FSTS, SH64_MEDIA_SFMT_FSTS },
- { SH_INSN_FSTXD, SH64_MEDIA_INSN_FSTXD, SH64_MEDIA_SFMT_FSTXD },
- { SH_INSN_FSTXP, SH64_MEDIA_INSN_FSTXP, SH64_MEDIA_SFMT_FLDXP },
- { SH_INSN_FSTXS, SH64_MEDIA_INSN_FSTXS, SH64_MEDIA_SFMT_FSTXS },
- { SH_INSN_FSUBD, SH64_MEDIA_INSN_FSUBD, SH64_MEDIA_SFMT_FSUBD },
- { SH_INSN_FSUBS, SH64_MEDIA_INSN_FSUBS, SH64_MEDIA_SFMT_FADDS },
- { SH_INSN_FTRCDL, SH64_MEDIA_INSN_FTRCDL, SH64_MEDIA_SFMT_FCNVDS },
- { SH_INSN_FTRCSL, SH64_MEDIA_INSN_FTRCSL, SH64_MEDIA_SFMT_FABSS },
- { SH_INSN_FTRCDQ, SH64_MEDIA_INSN_FTRCDQ, SH64_MEDIA_SFMT_FTRCDQ },
- { SH_INSN_FTRCSQ, SH64_MEDIA_INSN_FTRCSQ, SH64_MEDIA_SFMT_FCNVSD },
- { SH_INSN_FTRVS, SH64_MEDIA_INSN_FTRVS, SH64_MEDIA_SFMT_FTRVS },
- { SH_INSN_GETCFG, SH64_MEDIA_INSN_GETCFG, SH64_MEDIA_SFMT_GETCFG },
- { SH_INSN_GETCON, SH64_MEDIA_INSN_GETCON, SH64_MEDIA_SFMT_GETCON },
- { SH_INSN_GETTR, SH64_MEDIA_INSN_GETTR, SH64_MEDIA_SFMT_GETTR },
- { SH_INSN_ICBI, SH64_MEDIA_INSN_ICBI, SH64_MEDIA_SFMT_ALLOCO },
- { SH_INSN_LDB, SH64_MEDIA_INSN_LDB, SH64_MEDIA_SFMT_LDB },
- { SH_INSN_LDL, SH64_MEDIA_INSN_LDL, SH64_MEDIA_SFMT_LDL },
- { SH_INSN_LDQ, SH64_MEDIA_INSN_LDQ, SH64_MEDIA_SFMT_LDQ },
- { SH_INSN_LDUB, SH64_MEDIA_INSN_LDUB, SH64_MEDIA_SFMT_LDB },
- { SH_INSN_LDUW, SH64_MEDIA_INSN_LDUW, SH64_MEDIA_SFMT_LDUW },
- { SH_INSN_LDW, SH64_MEDIA_INSN_LDW, SH64_MEDIA_SFMT_LDUW },
- { SH_INSN_LDHIL, SH64_MEDIA_INSN_LDHIL, SH64_MEDIA_SFMT_LDHIL },
- { SH_INSN_LDHIQ, SH64_MEDIA_INSN_LDHIQ, SH64_MEDIA_SFMT_LDHIQ },
- { SH_INSN_LDLOL, SH64_MEDIA_INSN_LDLOL, SH64_MEDIA_SFMT_LDLOL },
- { SH_INSN_LDLOQ, SH64_MEDIA_INSN_LDLOQ, SH64_MEDIA_SFMT_LDLOQ },
- { SH_INSN_LDXB, SH64_MEDIA_INSN_LDXB, SH64_MEDIA_SFMT_LDXB },
- { SH_INSN_LDXL, SH64_MEDIA_INSN_LDXL, SH64_MEDIA_SFMT_LDXL },
- { SH_INSN_LDXQ, SH64_MEDIA_INSN_LDXQ, SH64_MEDIA_SFMT_LDXQ },
- { SH_INSN_LDXUB, SH64_MEDIA_INSN_LDXUB, SH64_MEDIA_SFMT_LDXUB },
- { SH_INSN_LDXUW, SH64_MEDIA_INSN_LDXUW, SH64_MEDIA_SFMT_LDXUW },
- { SH_INSN_LDXW, SH64_MEDIA_INSN_LDXW, SH64_MEDIA_SFMT_LDXW },
- { SH_INSN_MABSL, SH64_MEDIA_INSN_MABSL, SH64_MEDIA_SFMT_BYTEREV },
- { SH_INSN_MABSW, SH64_MEDIA_INSN_MABSW, SH64_MEDIA_SFMT_BYTEREV },
- { SH_INSN_MADDL, SH64_MEDIA_INSN_MADDL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MADDW, SH64_MEDIA_INSN_MADDW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MADDSL, SH64_MEDIA_INSN_MADDSL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MADDSUB, SH64_MEDIA_INSN_MADDSUB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MADDSW, SH64_MEDIA_INSN_MADDSW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCMPEQB, SH64_MEDIA_INSN_MCMPEQB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCMPEQL, SH64_MEDIA_INSN_MCMPEQL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCMPEQW, SH64_MEDIA_INSN_MCMPEQW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCMPGTL, SH64_MEDIA_INSN_MCMPGTL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCMPGTUB, SH64_MEDIA_INSN_MCMPGTUB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCMPGTW, SH64_MEDIA_INSN_MCMPGTW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCMV, SH64_MEDIA_INSN_MCMV, SH64_MEDIA_SFMT_MCMV },
- { SH_INSN_MCNVSLW, SH64_MEDIA_INSN_MCNVSLW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCNVSWB, SH64_MEDIA_INSN_MCNVSWB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MCNVSWUB, SH64_MEDIA_INSN_MCNVSWUB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MEXTR1, SH64_MEDIA_INSN_MEXTR1, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MEXTR2, SH64_MEDIA_INSN_MEXTR2, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MEXTR3, SH64_MEDIA_INSN_MEXTR3, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MEXTR4, SH64_MEDIA_INSN_MEXTR4, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MEXTR5, SH64_MEDIA_INSN_MEXTR5, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MEXTR6, SH64_MEDIA_INSN_MEXTR6, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MEXTR7, SH64_MEDIA_INSN_MEXTR7, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MMACFXWL, SH64_MEDIA_INSN_MMACFXWL, SH64_MEDIA_SFMT_MCMV },
- { SH_INSN_MMACNFX_WL, SH64_MEDIA_INSN_MMACNFX_WL, SH64_MEDIA_SFMT_MMACNFX_WL },
- { SH_INSN_MMULL, SH64_MEDIA_INSN_MMULL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MMULW, SH64_MEDIA_INSN_MMULW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MMULFXL, SH64_MEDIA_INSN_MMULFXL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MMULFXW, SH64_MEDIA_INSN_MMULFXW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MMULFXRPW, SH64_MEDIA_INSN_MMULFXRPW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MMULHIWL, SH64_MEDIA_INSN_MMULHIWL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MMULLOWL, SH64_MEDIA_INSN_MMULLOWL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MMULSUMWQ, SH64_MEDIA_INSN_MMULSUMWQ, SH64_MEDIA_SFMT_MCMV },
- { SH_INSN_MOVI, SH64_MEDIA_INSN_MOVI, SH64_MEDIA_SFMT_MOVI },
- { SH_INSN_MPERMW, SH64_MEDIA_INSN_MPERMW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSADUBQ, SH64_MEDIA_INSN_MSADUBQ, SH64_MEDIA_SFMT_MCMV },
- { SH_INSN_MSHALDSL, SH64_MEDIA_INSN_MSHALDSL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHALDSW, SH64_MEDIA_INSN_MSHALDSW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHARDL, SH64_MEDIA_INSN_MSHARDL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHARDW, SH64_MEDIA_INSN_MSHARDW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHARDSQ, SH64_MEDIA_INSN_MSHARDSQ, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHFHIB, SH64_MEDIA_INSN_MSHFHIB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHFHIL, SH64_MEDIA_INSN_MSHFHIL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHFHIW, SH64_MEDIA_INSN_MSHFHIW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHFLOB, SH64_MEDIA_INSN_MSHFLOB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHFLOL, SH64_MEDIA_INSN_MSHFLOL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHFLOW, SH64_MEDIA_INSN_MSHFLOW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHLLDL, SH64_MEDIA_INSN_MSHLLDL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHLLDW, SH64_MEDIA_INSN_MSHLLDW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHLRDL, SH64_MEDIA_INSN_MSHLRDL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSHLRDW, SH64_MEDIA_INSN_MSHLRDW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSUBL, SH64_MEDIA_INSN_MSUBL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSUBW, SH64_MEDIA_INSN_MSUBW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSUBSL, SH64_MEDIA_INSN_MSUBSL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSUBSUB, SH64_MEDIA_INSN_MSUBSUB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MSUBSW, SH64_MEDIA_INSN_MSUBSW, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MULSL, SH64_MEDIA_INSN_MULSL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_MULUL, SH64_MEDIA_INSN_MULUL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_NOP, SH64_MEDIA_INSN_NOP, SH64_MEDIA_SFMT_NOP },
- { SH_INSN_NSB, SH64_MEDIA_INSN_NSB, SH64_MEDIA_SFMT_BYTEREV },
- { SH_INSN_OCBI, SH64_MEDIA_INSN_OCBI, SH64_MEDIA_SFMT_ALLOCO },
- { SH_INSN_OCBP, SH64_MEDIA_INSN_OCBP, SH64_MEDIA_SFMT_ALLOCO },
- { SH_INSN_OCBWB, SH64_MEDIA_INSN_OCBWB, SH64_MEDIA_SFMT_ALLOCO },
- { SH_INSN_OR, SH64_MEDIA_INSN_OR, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_ORI, SH64_MEDIA_INSN_ORI, SH64_MEDIA_SFMT_ORI },
- { SH_INSN_PREFI, SH64_MEDIA_INSN_PREFI, SH64_MEDIA_SFMT_PREFI },
- { SH_INSN_PTA, SH64_MEDIA_INSN_PTA, SH64_MEDIA_SFMT_PTA },
- { SH_INSN_PTABS, SH64_MEDIA_INSN_PTABS, SH64_MEDIA_SFMT_PTABS },
- { SH_INSN_PTB, SH64_MEDIA_INSN_PTB, SH64_MEDIA_SFMT_PTA },
- { SH_INSN_PTREL, SH64_MEDIA_INSN_PTREL, SH64_MEDIA_SFMT_PTREL },
- { SH_INSN_PUTCFG, SH64_MEDIA_INSN_PUTCFG, SH64_MEDIA_SFMT_PUTCFG },
- { SH_INSN_PUTCON, SH64_MEDIA_INSN_PUTCON, SH64_MEDIA_SFMT_PUTCON },
- { SH_INSN_RTE, SH64_MEDIA_INSN_RTE, SH64_MEDIA_SFMT_NOP },
- { SH_INSN_SHARD, SH64_MEDIA_INSN_SHARD, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_SHARDL, SH64_MEDIA_INSN_SHARDL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_SHARI, SH64_MEDIA_INSN_SHARI, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHARIL, SH64_MEDIA_INSN_SHARIL, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHLLD, SH64_MEDIA_INSN_SHLLD, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_SHLLDL, SH64_MEDIA_INSN_SHLLDL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_SHLLI, SH64_MEDIA_INSN_SHLLI, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHLLIL, SH64_MEDIA_INSN_SHLLIL, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHLRD, SH64_MEDIA_INSN_SHLRD, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_SHLRDL, SH64_MEDIA_INSN_SHLRDL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_SHLRI, SH64_MEDIA_INSN_SHLRI, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHLRIL, SH64_MEDIA_INSN_SHLRIL, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHORI, SH64_MEDIA_INSN_SHORI, SH64_MEDIA_SFMT_SHORI },
- { SH_INSN_SLEEP, SH64_MEDIA_INSN_SLEEP, SH64_MEDIA_SFMT_NOP },
- { SH_INSN_STB, SH64_MEDIA_INSN_STB, SH64_MEDIA_SFMT_STB },
- { SH_INSN_STL, SH64_MEDIA_INSN_STL, SH64_MEDIA_SFMT_STL },
- { SH_INSN_STQ, SH64_MEDIA_INSN_STQ, SH64_MEDIA_SFMT_STQ },
- { SH_INSN_STW, SH64_MEDIA_INSN_STW, SH64_MEDIA_SFMT_STW },
- { SH_INSN_STHIL, SH64_MEDIA_INSN_STHIL, SH64_MEDIA_SFMT_STHIL },
- { SH_INSN_STHIQ, SH64_MEDIA_INSN_STHIQ, SH64_MEDIA_SFMT_STHIQ },
- { SH_INSN_STLOL, SH64_MEDIA_INSN_STLOL, SH64_MEDIA_SFMT_STLOL },
- { SH_INSN_STLOQ, SH64_MEDIA_INSN_STLOQ, SH64_MEDIA_SFMT_STLOQ },
- { SH_INSN_STXB, SH64_MEDIA_INSN_STXB, SH64_MEDIA_SFMT_STXB },
- { SH_INSN_STXL, SH64_MEDIA_INSN_STXL, SH64_MEDIA_SFMT_STXL },
- { SH_INSN_STXQ, SH64_MEDIA_INSN_STXQ, SH64_MEDIA_SFMT_STXQ },
- { SH_INSN_STXW, SH64_MEDIA_INSN_STXW, SH64_MEDIA_SFMT_STXW },
- { SH_INSN_SUB, SH64_MEDIA_INSN_SUB, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_SUBL, SH64_MEDIA_INSN_SUBL, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_SWAPQ, SH64_MEDIA_INSN_SWAPQ, SH64_MEDIA_SFMT_SWAPQ },
- { SH_INSN_SYNCI, SH64_MEDIA_INSN_SYNCI, SH64_MEDIA_SFMT_NOP },
- { SH_INSN_SYNCO, SH64_MEDIA_INSN_SYNCO, SH64_MEDIA_SFMT_NOP },
- { SH_INSN_TRAPA, SH64_MEDIA_INSN_TRAPA, SH64_MEDIA_SFMT_TRAPA },
- { SH_INSN_XOR, SH64_MEDIA_INSN_XOR, SH64_MEDIA_SFMT_ADD },
- { SH_INSN_XORI, SH64_MEDIA_INSN_XORI, SH64_MEDIA_SFMT_XORI },
- };
- static const struct insn_sem sh64_media_insn_sem_invalid =
- {
- VIRTUAL_INSN_X_INVALID, SH64_MEDIA_INSN_X_INVALID, SH64_MEDIA_SFMT_EMPTY
- };
- /* Initialize an IDESC from the compile-time computable parts. */
- static INLINE void
- init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
- {
- const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
- id->num = t->index;
- id->sfmt = t->sfmt;
- if ((int) t->type <= 0)
- id->idata = & cgen_virtual_insn_table[- (int) t->type];
- else
- id->idata = & insn_table[t->type];
- id->attrs = CGEN_INSN_ATTRS (id->idata);
- /* Oh my god, a magic number. */
- id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
- #if WITH_PROFILE_MODEL_P
- id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
- {
- SIM_DESC sd = CPU_STATE (cpu);
- SIM_ASSERT (t->index == id->timing->num);
- }
- #endif
- /* Semantic pointers are initialized elsewhere. */
- }
- /* Initialize the instruction descriptor table. */
- void
- sh64_media_init_idesc_table (SIM_CPU *cpu)
- {
- IDESC *id,*tabend;
- const struct insn_sem *t,*tend;
- int tabsize = SH64_MEDIA_INSN__MAX;
- IDESC *table = sh64_media_insn_data;
- memset (table, 0, tabsize * sizeof (IDESC));
- /* First set all entries to the `invalid insn'. */
- t = & sh64_media_insn_sem_invalid;
- for (id = table, tabend = table + tabsize; id < tabend; ++id)
- init_idesc (cpu, id, t);
- /* Now fill in the values for the chosen cpu. */
- for (t = sh64_media_insn_sem, tend = t + sizeof (sh64_media_insn_sem) / sizeof (*t);
- t != tend; ++t)
- {
- init_idesc (cpu, & table[t->index], t);
- }
- /* Link the IDESC table into the cpu. */
- CPU_IDESC (cpu) = table;
- }
- /* Given an instruction, return a pointer to its IDESC entry. */
- const IDESC *
- sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
- CGEN_INSN_WORD base_insn, CGEN_INSN_WORD entire_insn,
- ARGBUF *abuf)
- {
- /* Result of decoder. */
- SH64_MEDIA_INSN_TYPE itype;
- {
- CGEN_INSN_WORD insn = base_insn;
- {
- unsigned int val = (((insn >> 22) & (63 << 4)) | ((insn >> 16) & (15 << 0)));
- switch (val)
- {
- case 1 :
- if ((entire_insn & 0xfc0f000f) == 0x10000)
- { itype = SH64_MEDIA_INSN_CMPEQ; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 3 :
- if ((entire_insn & 0xfc0f000f) == 0x30000)
- { itype = SH64_MEDIA_INSN_CMPGT; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 7 :
- if ((entire_insn & 0xfc0f000f) == 0x70000)
- { itype = SH64_MEDIA_INSN_CMPGTU; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 8 :
- if ((entire_insn & 0xfc0f000f) == 0x80000)
- { itype = SH64_MEDIA_INSN_ADDL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 9 :
- if ((entire_insn & 0xfc0f000f) == 0x90000)
- { itype = SH64_MEDIA_INSN_ADD; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 10 :
- if ((entire_insn & 0xfc0f000f) == 0xa0000)
- { itype = SH64_MEDIA_INSN_SUBL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 11 :
- if ((entire_insn & 0xfc0f000f) == 0xb0000)
- { itype = SH64_MEDIA_INSN_SUB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 12 :
- if ((entire_insn & 0xfc0f000f) == 0xc0000)
- { itype = SH64_MEDIA_INSN_ADDZL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 13 :
- if ((entire_insn & 0xfc0ffc0f) == 0xdfc00)
- { itype = SH64_MEDIA_INSN_NSB; goto extract_sfmt_byterev; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 14 :
- if ((entire_insn & 0xfc0f000f) == 0xe0000)
- { itype = SH64_MEDIA_INSN_MULUL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 15 :
- if ((entire_insn & 0xfc0ffc0f) == 0xffc00)
- { itype = SH64_MEDIA_INSN_BYTEREV; goto extract_sfmt_byterev; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 16 :
- if ((entire_insn & 0xfc0f000f) == 0x4000000)
- { itype = SH64_MEDIA_INSN_SHLLDL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 17 :
- if ((entire_insn & 0xfc0f000f) == 0x4010000)
- { itype = SH64_MEDIA_INSN_SHLLD; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 18 :
- if ((entire_insn & 0xfc0f000f) == 0x4020000)
- { itype = SH64_MEDIA_INSN_SHLRDL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 19 :
- if ((entire_insn & 0xfc0f000f) == 0x4030000)
- { itype = SH64_MEDIA_INSN_SHLRD; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 22 :
- if ((entire_insn & 0xfc0f000f) == 0x4060000)
- { itype = SH64_MEDIA_INSN_SHARDL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 23 :
- if ((entire_insn & 0xfc0f000f) == 0x4070000)
- { itype = SH64_MEDIA_INSN_SHARD; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 25 :
- if ((entire_insn & 0xfc0f000f) == 0x4090000)
- { itype = SH64_MEDIA_INSN_OR; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 27 :
- if ((entire_insn & 0xfc0f000f) == 0x40b0000)
- { itype = SH64_MEDIA_INSN_AND; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 29 :
- if ((entire_insn & 0xfc0f000f) == 0x40d0000)
- { itype = SH64_MEDIA_INSN_XOR; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 30 :
- if ((entire_insn & 0xfc0f000f) == 0x40e0000)
- { itype = SH64_MEDIA_INSN_MULSL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 31 :
- if ((entire_insn & 0xfc0f000f) == 0x40f0000)
- { itype = SH64_MEDIA_INSN_ANDC; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 33 :
- if ((entire_insn & 0xfc0f000f) == 0x8010000)
- { itype = SH64_MEDIA_INSN_MADDW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 34 :
- if ((entire_insn & 0xfc0f000f) == 0x8020000)
- { itype = SH64_MEDIA_INSN_MADDL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 36 :
- if ((entire_insn & 0xfc0f000f) == 0x8040000)
- { itype = SH64_MEDIA_INSN_MADDSUB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 37 :
- if ((entire_insn & 0xfc0f000f) == 0x8050000)
- { itype = SH64_MEDIA_INSN_MADDSW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 38 :
- if ((entire_insn & 0xfc0f000f) == 0x8060000)
- { itype = SH64_MEDIA_INSN_MADDSL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 41 :
- if ((entire_insn & 0xfc0f000f) == 0x8090000)
- { itype = SH64_MEDIA_INSN_MSUBW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 42 :
- if ((entire_insn & 0xfc0f000f) == 0x80a0000)
- { itype = SH64_MEDIA_INSN_MSUBL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 44 :
- if ((entire_insn & 0xfc0f000f) == 0x80c0000)
- { itype = SH64_MEDIA_INSN_MSUBSUB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 45 :
- if ((entire_insn & 0xfc0f000f) == 0x80d0000)
- { itype = SH64_MEDIA_INSN_MSUBSW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 46 :
- if ((entire_insn & 0xfc0f000f) == 0x80e0000)
- { itype = SH64_MEDIA_INSN_MSUBSL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 49 :
- if ((entire_insn & 0xfc0f000f) == 0xc010000)
- { itype = SH64_MEDIA_INSN_MSHLLDW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 50 :
- if ((entire_insn & 0xfc0f000f) == 0xc020000)
- { itype = SH64_MEDIA_INSN_MSHLLDL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 53 :
- if ((entire_insn & 0xfc0f000f) == 0xc050000)
- { itype = SH64_MEDIA_INSN_MSHALDSW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 54 :
- if ((entire_insn & 0xfc0f000f) == 0xc060000)
- { itype = SH64_MEDIA_INSN_MSHALDSL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 57 :
- if ((entire_insn & 0xfc0f000f) == 0xc090000)
- { itype = SH64_MEDIA_INSN_MSHARDW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 58 :
- if ((entire_insn & 0xfc0f000f) == 0xc0a0000)
- { itype = SH64_MEDIA_INSN_MSHARDL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 59 :
- if ((entire_insn & 0xfc0f000f) == 0xc0b0000)
- { itype = SH64_MEDIA_INSN_MSHARDSQ; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 61 :
- if ((entire_insn & 0xfc0f000f) == 0xc0d0000)
- { itype = SH64_MEDIA_INSN_MSHLRDW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 62 :
- if ((entire_insn & 0xfc0f000f) == 0xc0e0000)
- { itype = SH64_MEDIA_INSN_MSHLRDL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 86 :
- if ((entire_insn & 0xfc0f000f) == 0x14060000)
- { itype = SH64_MEDIA_INSN_FIPRS; goto extract_sfmt_fiprs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 94 :
- if ((entire_insn & 0xfc0f000f) == 0x140e0000)
- { itype = SH64_MEDIA_INSN_FTRVS; goto extract_sfmt_ftrvs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 96 :
- if ((entire_insn & 0xfc0f000f) == 0x18000000)
- { itype = SH64_MEDIA_INSN_FABSS; goto extract_sfmt_fabss; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 97 :
- if ((entire_insn & 0xfc0f000f) == 0x18010000)
- { itype = SH64_MEDIA_INSN_FABSD; goto extract_sfmt_fabsd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 98 :
- if ((entire_insn & 0xfc0f000f) == 0x18020000)
- { itype = SH64_MEDIA_INSN_FNEGS; goto extract_sfmt_fabss; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 99 :
- if ((entire_insn & 0xfc0f000f) == 0x18030000)
- { itype = SH64_MEDIA_INSN_FNEGD; goto extract_sfmt_fabsd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 112 :
- if ((entire_insn & 0xfc0ffc0f) == 0x1c00fc00)
- { itype = SH64_MEDIA_INSN_FMOVLS; goto extract_sfmt_fmovls; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 113 :
- if ((entire_insn & 0xfc0ffc0f) == 0x1c01fc00)
- { itype = SH64_MEDIA_INSN_FMOVQD; goto extract_sfmt_fmovqd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 114 :
- if ((entire_insn & 0xfffffc0f) == 0x1ff2fc00)
- { itype = SH64_MEDIA_INSN_FGETSCR; goto extract_sfmt_fgetscr; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 120 :
- if ((entire_insn & 0xfc0f000f) == 0x1c080000)
- { itype = SH64_MEDIA_INSN_FLDXS; goto extract_sfmt_fldxs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 121 :
- if ((entire_insn & 0xfc0f000f) == 0x1c090000)
- { itype = SH64_MEDIA_INSN_FLDXD; goto extract_sfmt_fldxd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 125 :
- if ((entire_insn & 0xfc0f000f) == 0x1c0d0000)
- { itype = SH64_MEDIA_INSN_FLDXP; goto extract_sfmt_fldxp; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 129 :
- if ((entire_insn & 0xfc0f000f) == 0x20010000)
- { itype = SH64_MEDIA_INSN_CMVEQ; goto extract_sfmt_cmveq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 131 :
- if ((entire_insn & 0xfc0f000f) == 0x20030000)
- { itype = SH64_MEDIA_INSN_SWAPQ; goto extract_sfmt_swapq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 133 :
- if ((entire_insn & 0xfc0f000f) == 0x20050000)
- { itype = SH64_MEDIA_INSN_CMVNE; goto extract_sfmt_cmveq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 159 :
- if ((entire_insn & 0xfc0ffc0f) == 0x240ffc00)
- { itype = SH64_MEDIA_INSN_GETCON; goto extract_sfmt_getcon; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 160 :
- if ((entire_insn & 0xfc0f000f) == 0x28000000)
- { itype = SH64_MEDIA_INSN_MCMPEQB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 161 :
- if ((entire_insn & 0xfc0f000f) == 0x28010000)
- { itype = SH64_MEDIA_INSN_MCMPEQW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 162 :
- if ((entire_insn & 0xfc0f000f) == 0x28020000)
- { itype = SH64_MEDIA_INSN_MCMPEQL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 164 :
- if ((entire_insn & 0xfc0f000f) == 0x28040000)
- { itype = SH64_MEDIA_INSN_MCMPGTUB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 165 :
- if ((entire_insn & 0xfc0f000f) == 0x28050000)
- { itype = SH64_MEDIA_INSN_MCMPGTW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 166 :
- if ((entire_insn & 0xfc0f000f) == 0x28060000)
- { itype = SH64_MEDIA_INSN_MCMPGTL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 167 :
- if ((entire_insn & 0xfc0f000f) == 0x28070000)
- { itype = SH64_MEDIA_INSN_MEXTR1; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 169 :
- if ((entire_insn & 0xfc0ffc0f) == 0x2809fc00)
- { itype = SH64_MEDIA_INSN_MABSW; goto extract_sfmt_byterev; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 170 :
- if ((entire_insn & 0xfc0ffc0f) == 0x280afc00)
- { itype = SH64_MEDIA_INSN_MABSL; goto extract_sfmt_byterev; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 171 :
- if ((entire_insn & 0xfc0f000f) == 0x280b0000)
- { itype = SH64_MEDIA_INSN_MEXTR2; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 173 :
- if ((entire_insn & 0xfc0f000f) == 0x280d0000)
- { itype = SH64_MEDIA_INSN_MPERMW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 175 :
- if ((entire_insn & 0xfc0f000f) == 0x280f0000)
- { itype = SH64_MEDIA_INSN_MEXTR3; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 176 :
- if ((entire_insn & 0xfc0f000f) == 0x2c000000)
- { itype = SH64_MEDIA_INSN_MSHFLOB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 177 :
- if ((entire_insn & 0xfc0f000f) == 0x2c010000)
- { itype = SH64_MEDIA_INSN_MSHFLOW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 178 :
- if ((entire_insn & 0xfc0f000f) == 0x2c020000)
- { itype = SH64_MEDIA_INSN_MSHFLOL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 179 :
- if ((entire_insn & 0xfc0f000f) == 0x2c030000)
- { itype = SH64_MEDIA_INSN_MEXTR4; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 180 :
- if ((entire_insn & 0xfc0f000f) == 0x2c040000)
- { itype = SH64_MEDIA_INSN_MSHFHIB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 181 :
- if ((entire_insn & 0xfc0f000f) == 0x2c050000)
- { itype = SH64_MEDIA_INSN_MSHFHIW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 182 :
- if ((entire_insn & 0xfc0f000f) == 0x2c060000)
- { itype = SH64_MEDIA_INSN_MSHFHIL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 183 :
- if ((entire_insn & 0xfc0f000f) == 0x2c070000)
- { itype = SH64_MEDIA_INSN_MEXTR5; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 187 :
- if ((entire_insn & 0xfc0f000f) == 0x2c0b0000)
- { itype = SH64_MEDIA_INSN_MEXTR6; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 191 :
- if ((entire_insn & 0xfc0f000f) == 0x2c0f0000)
- { itype = SH64_MEDIA_INSN_MEXTR7; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 192 :
- if ((entire_insn & 0xfc0f000f) == 0x30000000)
- { itype = SH64_MEDIA_INSN_FMOVSL; goto extract_sfmt_fmovsl; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 193 :
- if ((entire_insn & 0xfc0f000f) == 0x30010000)
- { itype = SH64_MEDIA_INSN_FMOVDQ; goto extract_sfmt_fmovdq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 194 :
- if ((entire_insn & 0xfc0f03ff) == 0x300203f0)
- { itype = SH64_MEDIA_INSN_FPUTSCR; goto extract_sfmt_fputscr; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 200 :
- if ((entire_insn & 0xfc0f000f) == 0x30080000)
- { itype = SH64_MEDIA_INSN_FCMPEQS; goto extract_sfmt_fcmpeqs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 201 :
- if ((entire_insn & 0xfc0f000f) == 0x30090000)
- { itype = SH64_MEDIA_INSN_FCMPEQD; goto extract_sfmt_fcmpeqd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 202 :
- if ((entire_insn & 0xfc0f000f) == 0x300a0000)
- { itype = SH64_MEDIA_INSN_FCMPUNS; goto extract_sfmt_fcmpeqs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 203 :
- if ((entire_insn & 0xfc0f000f) == 0x300b0000)
- { itype = SH64_MEDIA_INSN_FCMPUND; goto extract_sfmt_fcmpeqd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 204 :
- if ((entire_insn & 0xfc0f000f) == 0x300c0000)
- { itype = SH64_MEDIA_INSN_FCMPGTS; goto extract_sfmt_fcmpeqs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 205 :
- if ((entire_insn & 0xfc0f000f) == 0x300d0000)
- { itype = SH64_MEDIA_INSN_FCMPGTD; goto extract_sfmt_fcmpeqd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 206 :
- if ((entire_insn & 0xfc0f000f) == 0x300e0000)
- { itype = SH64_MEDIA_INSN_FCMPGES; goto extract_sfmt_fcmpeqs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 207 :
- if ((entire_insn & 0xfc0f000f) == 0x300f0000)
- { itype = SH64_MEDIA_INSN_FCMPGED; goto extract_sfmt_fcmpeqd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 208 :
- if ((entire_insn & 0xfc0f000f) == 0x34000000)
- { itype = SH64_MEDIA_INSN_FADDS; goto extract_sfmt_fadds; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 209 :
- if ((entire_insn & 0xfc0f000f) == 0x34010000)
- { itype = SH64_MEDIA_INSN_FADDD; goto extract_sfmt_faddd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 210 :
- if ((entire_insn & 0xfc0f000f) == 0x34020000)
- { itype = SH64_MEDIA_INSN_FSUBS; goto extract_sfmt_fadds; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 211 :
- if ((entire_insn & 0xfc0f000f) == 0x34030000)
- { itype = SH64_MEDIA_INSN_FSUBD; goto extract_sfmt_fsubd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 212 :
- if ((entire_insn & 0xfc0f000f) == 0x34040000)
- { itype = SH64_MEDIA_INSN_FDIVS; goto extract_sfmt_fadds; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 213 :
- if ((entire_insn & 0xfc0f000f) == 0x34050000)
- { itype = SH64_MEDIA_INSN_FDIVD; goto extract_sfmt_faddd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 214 :
- if ((entire_insn & 0xfc0f000f) == 0x34060000)
- { itype = SH64_MEDIA_INSN_FMULS; goto extract_sfmt_fadds; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 215 :
- if ((entire_insn & 0xfc0f000f) == 0x34070000)
- { itype = SH64_MEDIA_INSN_FMULD; goto extract_sfmt_faddd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 222 :
- if ((entire_insn & 0xfc0f000f) == 0x340e0000)
- { itype = SH64_MEDIA_INSN_FMACS; goto extract_sfmt_fmacs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 224 :
- if ((entire_insn & 0xfc0f000f) == 0x38000000)
- { itype = SH64_MEDIA_INSN_FMOVS; goto extract_sfmt_fabss; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 225 :
- if ((entire_insn & 0xfc0f000f) == 0x38010000)
- { itype = SH64_MEDIA_INSN_FMOVD; goto extract_sfmt_fabsd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 228 :
- if ((entire_insn & 0xfc0f000f) == 0x38040000)
- { itype = SH64_MEDIA_INSN_FSQRTS; goto extract_sfmt_fabss; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 229 :
- if ((entire_insn & 0xfc0f000f) == 0x38050000)
- { itype = SH64_MEDIA_INSN_FSQRTD; goto extract_sfmt_fabsd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 230 :
- if ((entire_insn & 0xfc0f000f) == 0x38060000)
- { itype = SH64_MEDIA_INSN_FCNVSD; goto extract_sfmt_fcnvsd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 231 :
- if ((entire_insn & 0xfc0f000f) == 0x38070000)
- { itype = SH64_MEDIA_INSN_FCNVDS; goto extract_sfmt_fcnvds; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 232 :
- if ((entire_insn & 0xfc0f000f) == 0x38080000)
- { itype = SH64_MEDIA_INSN_FTRCSL; goto extract_sfmt_fabss; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 233 :
- if ((entire_insn & 0xfc0f000f) == 0x38090000)
- { itype = SH64_MEDIA_INSN_FTRCDQ; goto extract_sfmt_ftrcdq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 234 :
- if ((entire_insn & 0xfc0f000f) == 0x380a0000)
- { itype = SH64_MEDIA_INSN_FTRCSQ; goto extract_sfmt_fcnvsd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 235 :
- if ((entire_insn & 0xfc0f000f) == 0x380b0000)
- { itype = SH64_MEDIA_INSN_FTRCDL; goto extract_sfmt_fcnvds; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 236 :
- if ((entire_insn & 0xfc0f000f) == 0x380c0000)
- { itype = SH64_MEDIA_INSN_FLOATLS; goto extract_sfmt_fabss; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 237 :
- if ((entire_insn & 0xfc0f000f) == 0x380d0000)
- { itype = SH64_MEDIA_INSN_FLOATQD; goto extract_sfmt_fabsd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 238 :
- if ((entire_insn & 0xfc0f000f) == 0x380e0000)
- { itype = SH64_MEDIA_INSN_FLOATLD; goto extract_sfmt_fcnvsd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 239 :
- if ((entire_insn & 0xfc0f000f) == 0x380f0000)
- { itype = SH64_MEDIA_INSN_FLOATQS; goto extract_sfmt_fcnvds; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 248 :
- if ((entire_insn & 0xfc0f000f) == 0x3c080000)
- { itype = SH64_MEDIA_INSN_FSTXS; goto extract_sfmt_fstxs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 249 :
- if ((entire_insn & 0xfc0f000f) == 0x3c090000)
- { itype = SH64_MEDIA_INSN_FSTXD; goto extract_sfmt_fstxd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 253 :
- if ((entire_insn & 0xfc0f000f) == 0x3c0d0000)
- { itype = SH64_MEDIA_INSN_FSTXP; goto extract_sfmt_fldxp; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 256 :
- if ((entire_insn & 0xfc0f000f) == 0x40000000)
- { itype = SH64_MEDIA_INSN_LDXB; goto extract_sfmt_ldxb; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 257 :
- if ((entire_insn & 0xfc0f000f) == 0x40010000)
- { itype = SH64_MEDIA_INSN_LDXW; goto extract_sfmt_ldxw; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 258 :
- if ((entire_insn & 0xfc0f000f) == 0x40020000)
- { itype = SH64_MEDIA_INSN_LDXL; goto extract_sfmt_ldxl; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 259 :
- if ((entire_insn & 0xfc0f000f) == 0x40030000)
- { itype = SH64_MEDIA_INSN_LDXQ; goto extract_sfmt_ldxq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 260 :
- if ((entire_insn & 0xfc0f000f) == 0x40040000)
- { itype = SH64_MEDIA_INSN_LDXUB; goto extract_sfmt_ldxub; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 261 :
- if ((entire_insn & 0xfc0f000f) == 0x40050000)
- { itype = SH64_MEDIA_INSN_LDXUW; goto extract_sfmt_ldxuw; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 273 :
- if ((entire_insn & 0xff8ffc0f) == 0x4401fc00)
- { itype = SH64_MEDIA_INSN_BLINK; goto extract_sfmt_blink; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 277 :
- if ((entire_insn & 0xff8ffc0f) == 0x4405fc00)
- { itype = SH64_MEDIA_INSN_GETTR; goto extract_sfmt_gettr; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 288 :
- if ((entire_insn & 0xfc0f000f) == 0x48000000)
- { itype = SH64_MEDIA_INSN_MSADUBQ; goto extract_sfmt_mcmv; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 289 :
- if ((entire_insn & 0xfc0f000f) == 0x48010000)
- { itype = SH64_MEDIA_INSN_MMACFXWL; goto extract_sfmt_mcmv; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 291 :
- if ((entire_insn & 0xfc0f000f) == 0x48030000)
- { itype = SH64_MEDIA_INSN_MCMV; goto extract_sfmt_mcmv; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 293 :
- if ((entire_insn & 0xfc0f000f) == 0x48050000)
- { itype = SH64_MEDIA_INSN_MMACNFX_WL; goto extract_sfmt_mmacnfx_wl; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 297 :
- if ((entire_insn & 0xfc0f000f) == 0x48090000)
- { itype = SH64_MEDIA_INSN_MMULSUMWQ; goto extract_sfmt_mcmv; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 305 :
- if ((entire_insn & 0xfc0f000f) == 0x4c010000)
- { itype = SH64_MEDIA_INSN_MMULW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 306 :
- if ((entire_insn & 0xfc0f000f) == 0x4c020000)
- { itype = SH64_MEDIA_INSN_MMULL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 309 :
- if ((entire_insn & 0xfc0f000f) == 0x4c050000)
- { itype = SH64_MEDIA_INSN_MMULFXW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 310 :
- if ((entire_insn & 0xfc0f000f) == 0x4c060000)
- { itype = SH64_MEDIA_INSN_MMULFXL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 312 :
- if ((entire_insn & 0xfc0f000f) == 0x4c080000)
- { itype = SH64_MEDIA_INSN_MCNVSWB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 313 :
- if ((entire_insn & 0xfc0f000f) == 0x4c090000)
- { itype = SH64_MEDIA_INSN_MMULFXRPW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 314 :
- if ((entire_insn & 0xfc0f000f) == 0x4c0a0000)
- { itype = SH64_MEDIA_INSN_MMULLOWL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 316 :
- if ((entire_insn & 0xfc0f000f) == 0x4c0c0000)
- { itype = SH64_MEDIA_INSN_MCNVSWUB; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 317 :
- if ((entire_insn & 0xfc0f000f) == 0x4c0d0000)
- { itype = SH64_MEDIA_INSN_MCNVSLW; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 318 :
- if ((entire_insn & 0xfc0f000f) == 0x4c0e0000)
- { itype = SH64_MEDIA_INSN_MMULHIWL; goto extract_sfmt_add; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 384 :
- if ((entire_insn & 0xfc0f000f) == 0x60000000)
- { itype = SH64_MEDIA_INSN_STXB; goto extract_sfmt_stxb; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 385 :
- if ((entire_insn & 0xfc0f000f) == 0x60010000)
- { itype = SH64_MEDIA_INSN_STXW; goto extract_sfmt_stxw; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 386 :
- if ((entire_insn & 0xfc0f000f) == 0x60020000)
- { itype = SH64_MEDIA_INSN_STXL; goto extract_sfmt_stxl; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 387 :
- if ((entire_insn & 0xfc0f000f) == 0x60030000)
- { itype = SH64_MEDIA_INSN_STXQ; goto extract_sfmt_stxq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 401 :
- if ((entire_insn & 0xfc0f018f) == 0x64010000)
- { itype = SH64_MEDIA_INSN_BEQ; goto extract_sfmt_beq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 403 :
- if ((entire_insn & 0xfc0f018f) == 0x64030000)
- { itype = SH64_MEDIA_INSN_BGE; goto extract_sfmt_beq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 405 :
- if ((entire_insn & 0xfc0f018f) == 0x64050000)
- { itype = SH64_MEDIA_INSN_BNE; goto extract_sfmt_beq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 407 :
- if ((entire_insn & 0xfc0f018f) == 0x64070000)
- { itype = SH64_MEDIA_INSN_BGT; goto extract_sfmt_beq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 411 :
- if ((entire_insn & 0xfc0f018f) == 0x640b0000)
- { itype = SH64_MEDIA_INSN_BGEU; goto extract_sfmt_beq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 415 :
- if ((entire_insn & 0xfc0f018f) == 0x640f0000)
- { itype = SH64_MEDIA_INSN_BGTU; goto extract_sfmt_beq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 417 :
- if ((entire_insn & 0xffff018f) == 0x6bf10000)
- { itype = SH64_MEDIA_INSN_PTABS; goto extract_sfmt_ptabs; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 421 :
- if ((entire_insn & 0xffff018f) == 0x6bf50000)
- { itype = SH64_MEDIA_INSN_PTREL; goto extract_sfmt_ptrel; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 432 :
- if ((entire_insn & 0xffffffff) == 0x6ff0fff0)
- { itype = SH64_MEDIA_INSN_NOP; goto extract_sfmt_nop; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 433 :
- if ((entire_insn & 0xfc0fffff) == 0x6c01fff0)
- { itype = SH64_MEDIA_INSN_TRAPA; goto extract_sfmt_trapa; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 434 :
- if ((entire_insn & 0xffffffff) == 0x6ff2fff0)
- { itype = SH64_MEDIA_INSN_SYNCI; goto extract_sfmt_nop; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 435 :
- if ((entire_insn & 0xffffffff) == 0x6ff3fff0)
- { itype = SH64_MEDIA_INSN_RTE; goto extract_sfmt_nop; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 437 :
- if ((entire_insn & 0xffffffff) == 0x6ff5fff0)
- { itype = SH64_MEDIA_INSN_BRK; goto extract_sfmt_brk; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 438 :
- if ((entire_insn & 0xffffffff) == 0x6ff6fff0)
- { itype = SH64_MEDIA_INSN_SYNCO; goto extract_sfmt_nop; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 439 :
- if ((entire_insn & 0xffffffff) == 0x6ff7fff0)
- { itype = SH64_MEDIA_INSN_SLEEP; goto extract_sfmt_nop; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 447 :
- if ((entire_insn & 0xfc0ffc0f) == 0x6c0ffc00)
- { itype = SH64_MEDIA_INSN_PUTCON; goto extract_sfmt_putcon; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 512 : /* fall through */
- case 513 : /* fall through */
- case 514 : /* fall through */
- case 515 : /* fall through */
- case 516 : /* fall through */
- case 517 : /* fall through */
- case 518 : /* fall through */
- case 519 : /* fall through */
- case 520 : /* fall through */
- case 521 : /* fall through */
- case 522 : /* fall through */
- case 523 : /* fall through */
- case 524 : /* fall through */
- case 525 : /* fall through */
- case 526 : /* fall through */
- case 527 :
- if ((entire_insn & 0xfc00000f) == 0x80000000)
- { itype = SH64_MEDIA_INSN_LDB; goto extract_sfmt_ldb; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 528 : /* fall through */
- case 529 : /* fall through */
- case 530 : /* fall through */
- case 531 : /* fall through */
- case 532 : /* fall through */
- case 533 : /* fall through */
- case 534 : /* fall through */
- case 535 : /* fall through */
- case 536 : /* fall through */
- case 537 : /* fall through */
- case 538 : /* fall through */
- case 539 : /* fall through */
- case 540 : /* fall through */
- case 541 : /* fall through */
- case 542 : /* fall through */
- case 543 :
- if ((entire_insn & 0xfc00000f) == 0x84000000)
- { itype = SH64_MEDIA_INSN_LDW; goto extract_sfmt_lduw; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 544 : /* fall through */
- case 545 : /* fall through */
- case 546 : /* fall through */
- case 547 : /* fall through */
- case 548 : /* fall through */
- case 549 : /* fall through */
- case 550 : /* fall through */
- case 551 : /* fall through */
- case 552 : /* fall through */
- case 553 : /* fall through */
- case 554 : /* fall through */
- case 555 : /* fall through */
- case 556 : /* fall through */
- case 557 : /* fall through */
- case 558 : /* fall through */
- case 559 :
- if ((entire_insn & 0xfc00000f) == 0x88000000)
- { itype = SH64_MEDIA_INSN_LDL; goto extract_sfmt_ldl; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 560 : /* fall through */
- case 561 : /* fall through */
- case 562 : /* fall through */
- case 563 : /* fall through */
- case 564 : /* fall through */
- case 565 : /* fall through */
- case 566 : /* fall through */
- case 567 : /* fall through */
- case 568 : /* fall through */
- case 569 : /* fall through */
- case 570 : /* fall through */
- case 571 : /* fall through */
- case 572 : /* fall through */
- case 573 : /* fall through */
- case 574 : /* fall through */
- case 575 :
- if ((entire_insn & 0xfc00000f) == 0x8c000000)
- { itype = SH64_MEDIA_INSN_LDQ; goto extract_sfmt_ldq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 576 : /* fall through */
- case 577 : /* fall through */
- case 578 : /* fall through */
- case 579 : /* fall through */
- case 580 : /* fall through */
- case 581 : /* fall through */
- case 582 : /* fall through */
- case 583 : /* fall through */
- case 584 : /* fall through */
- case 585 : /* fall through */
- case 586 : /* fall through */
- case 587 : /* fall through */
- case 588 : /* fall through */
- case 589 : /* fall through */
- case 590 : /* fall through */
- case 591 :
- if ((entire_insn & 0xfc00000f) == 0x90000000)
- { itype = SH64_MEDIA_INSN_LDUB; goto extract_sfmt_ldb; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 592 : /* fall through */
- case 593 : /* fall through */
- case 594 : /* fall through */
- case 595 : /* fall through */
- case 596 : /* fall through */
- case 597 : /* fall through */
- case 598 : /* fall through */
- case 599 : /* fall through */
- case 600 : /* fall through */
- case 601 : /* fall through */
- case 602 : /* fall through */
- case 603 : /* fall through */
- case 604 : /* fall through */
- case 605 : /* fall through */
- case 606 : /* fall through */
- case 607 :
- if ((entire_insn & 0xfc00000f) == 0x94000000)
- { itype = SH64_MEDIA_INSN_FLDS; goto extract_sfmt_flds; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 608 : /* fall through */
- case 609 : /* fall through */
- case 610 : /* fall through */
- case 611 : /* fall through */
- case 612 : /* fall through */
- case 613 : /* fall through */
- case 614 : /* fall through */
- case 615 : /* fall through */
- case 616 : /* fall through */
- case 617 : /* fall through */
- case 618 : /* fall through */
- case 619 : /* fall through */
- case 620 : /* fall through */
- case 621 : /* fall through */
- case 622 : /* fall through */
- case 623 :
- if ((entire_insn & 0xfc00000f) == 0x98000000)
- { itype = SH64_MEDIA_INSN_FLDP; goto extract_sfmt_fldp; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 624 : /* fall through */
- case 625 : /* fall through */
- case 626 : /* fall through */
- case 627 : /* fall through */
- case 628 : /* fall through */
- case 629 : /* fall through */
- case 630 : /* fall through */
- case 631 : /* fall through */
- case 632 : /* fall through */
- case 633 : /* fall through */
- case 634 : /* fall through */
- case 635 : /* fall through */
- case 636 : /* fall through */
- case 637 : /* fall through */
- case 638 : /* fall through */
- case 639 :
- if ((entire_insn & 0xfc00000f) == 0x9c000000)
- { itype = SH64_MEDIA_INSN_FLDD; goto extract_sfmt_fldd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 640 : /* fall through */
- case 641 : /* fall through */
- case 642 : /* fall through */
- case 643 : /* fall through */
- case 644 : /* fall through */
- case 645 : /* fall through */
- case 646 : /* fall through */
- case 647 : /* fall through */
- case 648 : /* fall through */
- case 649 : /* fall through */
- case 650 : /* fall through */
- case 651 : /* fall through */
- case 652 : /* fall through */
- case 653 : /* fall through */
- case 654 : /* fall through */
- case 655 :
- if ((entire_insn & 0xfc00000f) == 0xa0000000)
- { itype = SH64_MEDIA_INSN_STB; goto extract_sfmt_stb; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 656 : /* fall through */
- case 657 : /* fall through */
- case 658 : /* fall through */
- case 659 : /* fall through */
- case 660 : /* fall through */
- case 661 : /* fall through */
- case 662 : /* fall through */
- case 663 : /* fall through */
- case 664 : /* fall through */
- case 665 : /* fall through */
- case 666 : /* fall through */
- case 667 : /* fall through */
- case 668 : /* fall through */
- case 669 : /* fall through */
- case 670 : /* fall through */
- case 671 :
- if ((entire_insn & 0xfc00000f) == 0xa4000000)
- { itype = SH64_MEDIA_INSN_STW; goto extract_sfmt_stw; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 672 : /* fall through */
- case 673 : /* fall through */
- case 674 : /* fall through */
- case 675 : /* fall through */
- case 676 : /* fall through */
- case 677 : /* fall through */
- case 678 : /* fall through */
- case 679 : /* fall through */
- case 680 : /* fall through */
- case 681 : /* fall through */
- case 682 : /* fall through */
- case 683 : /* fall through */
- case 684 : /* fall through */
- case 685 : /* fall through */
- case 686 : /* fall through */
- case 687 :
- if ((entire_insn & 0xfc00000f) == 0xa8000000)
- { itype = SH64_MEDIA_INSN_STL; goto extract_sfmt_stl; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 688 : /* fall through */
- case 689 : /* fall through */
- case 690 : /* fall through */
- case 691 : /* fall through */
- case 692 : /* fall through */
- case 693 : /* fall through */
- case 694 : /* fall through */
- case 695 : /* fall through */
- case 696 : /* fall through */
- case 697 : /* fall through */
- case 698 : /* fall through */
- case 699 : /* fall through */
- case 700 : /* fall through */
- case 701 : /* fall through */
- case 702 : /* fall through */
- case 703 :
- if ((entire_insn & 0xfc00000f) == 0xac000000)
- { itype = SH64_MEDIA_INSN_STQ; goto extract_sfmt_stq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 704 : /* fall through */
- case 705 : /* fall through */
- case 706 : /* fall through */
- case 707 : /* fall through */
- case 708 : /* fall through */
- case 709 : /* fall through */
- case 710 : /* fall through */
- case 711 : /* fall through */
- case 712 : /* fall through */
- case 713 : /* fall through */
- case 714 : /* fall through */
- case 715 : /* fall through */
- case 716 : /* fall through */
- case 717 : /* fall through */
- case 718 : /* fall through */
- case 719 :
- if ((entire_insn & 0xfc00000f) == 0xb0000000)
- { itype = SH64_MEDIA_INSN_LDUW; goto extract_sfmt_lduw; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 720 : /* fall through */
- case 721 : /* fall through */
- case 722 : /* fall through */
- case 723 : /* fall through */
- case 724 : /* fall through */
- case 725 : /* fall through */
- case 726 : /* fall through */
- case 727 : /* fall through */
- case 728 : /* fall through */
- case 729 : /* fall through */
- case 730 : /* fall through */
- case 731 : /* fall through */
- case 732 : /* fall through */
- case 733 : /* fall through */
- case 734 : /* fall through */
- case 735 :
- if ((entire_insn & 0xfc00000f) == 0xb4000000)
- { itype = SH64_MEDIA_INSN_FSTS; goto extract_sfmt_fsts; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 736 : /* fall through */
- case 737 : /* fall through */
- case 738 : /* fall through */
- case 739 : /* fall through */
- case 740 : /* fall through */
- case 741 : /* fall through */
- case 742 : /* fall through */
- case 743 : /* fall through */
- case 744 : /* fall through */
- case 745 : /* fall through */
- case 746 : /* fall through */
- case 747 : /* fall through */
- case 748 : /* fall through */
- case 749 : /* fall through */
- case 750 : /* fall through */
- case 751 :
- if ((entire_insn & 0xfc00000f) == 0xb8000000)
- { itype = SH64_MEDIA_INSN_FSTP; goto extract_sfmt_fldp; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 752 : /* fall through */
- case 753 : /* fall through */
- case 754 : /* fall through */
- case 755 : /* fall through */
- case 756 : /* fall through */
- case 757 : /* fall through */
- case 758 : /* fall through */
- case 759 : /* fall through */
- case 760 : /* fall through */
- case 761 : /* fall through */
- case 762 : /* fall through */
- case 763 : /* fall through */
- case 764 : /* fall through */
- case 765 : /* fall through */
- case 766 : /* fall through */
- case 767 :
- if ((entire_insn & 0xfc00000f) == 0xbc000000)
- { itype = SH64_MEDIA_INSN_FSTD; goto extract_sfmt_fstd; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 770 :
- if ((entire_insn & 0xfc0f000f) == 0xc0020000)
- { itype = SH64_MEDIA_INSN_LDLOL; goto extract_sfmt_ldlol; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 771 :
- if ((entire_insn & 0xfc0f000f) == 0xc0030000)
- { itype = SH64_MEDIA_INSN_LDLOQ; goto extract_sfmt_ldloq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 774 :
- if ((entire_insn & 0xfc0f000f) == 0xc0060000)
- { itype = SH64_MEDIA_INSN_LDHIL; goto extract_sfmt_ldhil; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 775 :
- if ((entire_insn & 0xfc0f000f) == 0xc0070000)
- { itype = SH64_MEDIA_INSN_LDHIQ; goto extract_sfmt_ldhiq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 783 :
- if ((entire_insn & 0xfc0f000f) == 0xc00f0000)
- { itype = SH64_MEDIA_INSN_GETCFG; goto extract_sfmt_getcfg; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 784 :
- if ((entire_insn & 0xfc0f000f) == 0xc4000000)
- { itype = SH64_MEDIA_INSN_SHLLIL; goto extract_sfmt_shari; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 785 :
- if ((entire_insn & 0xfc0f000f) == 0xc4010000)
- { itype = SH64_MEDIA_INSN_SHLLI; goto extract_sfmt_shari; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 786 :
- if ((entire_insn & 0xfc0f000f) == 0xc4020000)
- { itype = SH64_MEDIA_INSN_SHLRIL; goto extract_sfmt_shari; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 787 :
- if ((entire_insn & 0xfc0f000f) == 0xc4030000)
- { itype = SH64_MEDIA_INSN_SHLRI; goto extract_sfmt_shari; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 790 :
- if ((entire_insn & 0xfc0f000f) == 0xc4060000)
- { itype = SH64_MEDIA_INSN_SHARIL; goto extract_sfmt_shari; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 791 :
- if ((entire_insn & 0xfc0f000f) == 0xc4070000)
- { itype = SH64_MEDIA_INSN_SHARI; goto extract_sfmt_shari; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 797 :
- if ((entire_insn & 0xfc0f000f) == 0xc40d0000)
- { itype = SH64_MEDIA_INSN_XORI; goto extract_sfmt_xori; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 800 : /* fall through */
- case 801 : /* fall through */
- case 802 : /* fall through */
- case 803 : /* fall through */
- case 804 : /* fall through */
- case 805 : /* fall through */
- case 806 : /* fall through */
- case 807 : /* fall through */
- case 808 : /* fall through */
- case 809 : /* fall through */
- case 810 : /* fall through */
- case 811 : /* fall through */
- case 812 : /* fall through */
- case 813 : /* fall through */
- case 814 : /* fall through */
- case 815 :
- if ((entire_insn & 0xfc00000f) == 0xc8000000)
- { itype = SH64_MEDIA_INSN_SHORI; goto extract_sfmt_shori; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 816 : /* fall through */
- case 817 : /* fall through */
- case 818 : /* fall through */
- case 819 : /* fall through */
- case 820 : /* fall through */
- case 821 : /* fall through */
- case 822 : /* fall through */
- case 823 : /* fall through */
- case 824 : /* fall through */
- case 825 : /* fall through */
- case 826 : /* fall through */
- case 827 : /* fall through */
- case 828 : /* fall through */
- case 829 : /* fall through */
- case 830 : /* fall through */
- case 831 :
- if ((entire_insn & 0xfc00000f) == 0xcc000000)
- { itype = SH64_MEDIA_INSN_MOVI; goto extract_sfmt_movi; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 832 : /* fall through */
- case 833 : /* fall through */
- case 834 : /* fall through */
- case 835 : /* fall through */
- case 836 : /* fall through */
- case 837 : /* fall through */
- case 838 : /* fall through */
- case 839 : /* fall through */
- case 840 : /* fall through */
- case 841 : /* fall through */
- case 842 : /* fall through */
- case 843 : /* fall through */
- case 844 : /* fall through */
- case 845 : /* fall through */
- case 846 : /* fall through */
- case 847 :
- if ((entire_insn & 0xfc00000f) == 0xd0000000)
- { itype = SH64_MEDIA_INSN_ADDI; goto extract_sfmt_addi; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 848 : /* fall through */
- case 849 : /* fall through */
- case 850 : /* fall through */
- case 851 : /* fall through */
- case 852 : /* fall through */
- case 853 : /* fall through */
- case 854 : /* fall through */
- case 855 : /* fall through */
- case 856 : /* fall through */
- case 857 : /* fall through */
- case 858 : /* fall through */
- case 859 : /* fall through */
- case 860 : /* fall through */
- case 861 : /* fall through */
- case 862 : /* fall through */
- case 863 :
- if ((entire_insn & 0xfc00000f) == 0xd4000000)
- { itype = SH64_MEDIA_INSN_ADDIL; goto extract_sfmt_addi; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 864 : /* fall through */
- case 865 : /* fall through */
- case 866 : /* fall through */
- case 867 : /* fall through */
- case 868 : /* fall through */
- case 869 : /* fall through */
- case 870 : /* fall through */
- case 871 : /* fall through */
- case 872 : /* fall through */
- case 873 : /* fall through */
- case 874 : /* fall through */
- case 875 : /* fall through */
- case 876 : /* fall through */
- case 877 : /* fall through */
- case 878 : /* fall through */
- case 879 :
- if ((entire_insn & 0xfc00000f) == 0xd8000000)
- { itype = SH64_MEDIA_INSN_ANDI; goto extract_sfmt_addi; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 880 : /* fall through */
- case 881 : /* fall through */
- case 882 : /* fall through */
- case 883 : /* fall through */
- case 884 : /* fall through */
- case 885 : /* fall through */
- case 886 : /* fall through */
- case 887 : /* fall through */
- case 888 : /* fall through */
- case 889 : /* fall through */
- case 890 : /* fall through */
- case 891 : /* fall through */
- case 892 : /* fall through */
- case 893 : /* fall through */
- case 894 : /* fall through */
- case 895 :
- if ((entire_insn & 0xfc00000f) == 0xdc000000)
- { itype = SH64_MEDIA_INSN_ORI; goto extract_sfmt_ori; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 897 :
- if ((entire_insn & 0xfc0ffc0f) == 0xe001fc00)
- { itype = SH64_MEDIA_INSN_PREFI; goto extract_sfmt_prefi; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 898 :
- if ((entire_insn & 0xfc0f000f) == 0xe0020000)
- { itype = SH64_MEDIA_INSN_STLOL; goto extract_sfmt_stlol; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 899 :
- if ((entire_insn & 0xfc0f000f) == 0xe0030000)
- { itype = SH64_MEDIA_INSN_STLOQ; goto extract_sfmt_stloq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 900 :
- if ((entire_insn & 0xfc0f03ff) == 0xe00403f0)
- { itype = SH64_MEDIA_INSN_ALLOCO; goto extract_sfmt_alloco; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 901 :
- if ((entire_insn & 0xfc0f03ff) == 0xe00503f0)
- { itype = SH64_MEDIA_INSN_ICBI; goto extract_sfmt_alloco; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 902 :
- if ((entire_insn & 0xfc0f000f) == 0xe0060000)
- { itype = SH64_MEDIA_INSN_STHIL; goto extract_sfmt_sthil; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 903 :
- if ((entire_insn & 0xfc0f000f) == 0xe0070000)
- { itype = SH64_MEDIA_INSN_STHIQ; goto extract_sfmt_sthiq; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 904 :
- if ((entire_insn & 0xfc0f03ff) == 0xe00803f0)
- { itype = SH64_MEDIA_INSN_OCBP; goto extract_sfmt_alloco; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 905 :
- if ((entire_insn & 0xfc0f03ff) == 0xe00903f0)
- { itype = SH64_MEDIA_INSN_OCBI; goto extract_sfmt_alloco; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 908 :
- if ((entire_insn & 0xfc0f03ff) == 0xe00c03f0)
- { itype = SH64_MEDIA_INSN_OCBWB; goto extract_sfmt_alloco; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 911 :
- if ((entire_insn & 0xfc0f000f) == 0xe00f0000)
- { itype = SH64_MEDIA_INSN_PUTCFG; goto extract_sfmt_putcfg; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 913 :
- if ((entire_insn & 0xfc0f018f) == 0xe4010000)
- { itype = SH64_MEDIA_INSN_BEQI; goto extract_sfmt_beqi; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 917 :
- if ((entire_insn & 0xfc0f018f) == 0xe4050000)
- { itype = SH64_MEDIA_INSN_BNEI; goto extract_sfmt_bnei; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 928 : /* fall through */
- case 929 : /* fall through */
- case 930 : /* fall through */
- case 931 : /* fall through */
- case 932 : /* fall through */
- case 933 : /* fall through */
- case 934 : /* fall through */
- case 935 : /* fall through */
- case 936 : /* fall through */
- case 937 : /* fall through */
- case 938 : /* fall through */
- case 939 : /* fall through */
- case 940 : /* fall through */
- case 941 : /* fall through */
- case 942 : /* fall through */
- case 943 :
- if ((entire_insn & 0xfc00018f) == 0xe8000000)
- { itype = SH64_MEDIA_INSN_PTA; goto extract_sfmt_pta; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- case 944 : /* fall through */
- case 945 : /* fall through */
- case 946 : /* fall through */
- case 947 : /* fall through */
- case 948 : /* fall through */
- case 949 : /* fall through */
- case 950 : /* fall through */
- case 951 : /* fall through */
- case 952 : /* fall through */
- case 953 : /* fall through */
- case 954 : /* fall through */
- case 955 : /* fall through */
- case 956 : /* fall through */
- case 957 : /* fall through */
- case 958 : /* fall through */
- case 959 :
- if ((entire_insn & 0xfc00018f) == 0xec000000)
- { itype = SH64_MEDIA_INSN_PTB; goto extract_sfmt_pta; }
- itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- default : itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
- }
- }
- }
- /* The instruction has been decoded, now extract the fields. */
- extract_sfmt_empty:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- #define FLD(f) abuf->fields.sfmt_empty.f
- /* Record the fields for the semantic handler. */
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
- #undef FLD
- return idesc;
- }
- extract_sfmt_add:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_addi:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_addi.f
- UINT f_left;
- INT f_disp10;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10) = f_disp10;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi", "f_disp10 0x%x", 'x', f_disp10, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_alloco:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_alloco", "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_beq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_beq.f
- UINT f_left;
- UINT f_right;
- UINT f_tra;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_tra) = f_tra;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beq", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_tra 0x%x", 'x', f_tra, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (in_tra) = f_tra;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_beqi:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_beqi.f
- UINT f_left;
- INT f_imm6;
- UINT f_tra;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_imm6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
- /* Record the fields for the semantic handler. */
- FLD (f_imm6) = f_imm6;
- FLD (f_left) = f_left;
- FLD (f_tra) = f_tra;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beqi", "f_imm6 0x%x", 'x', f_imm6, "f_left 0x%x", 'x', f_left, "f_tra 0x%x", 'x', f_tra, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_tra) = f_tra;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_blink:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_blink.f
- UINT f_trb;
- UINT f_dest;
- f_trb = EXTRACT_MSB0_UINT (insn, 32, 9, 3);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_trb) = f_trb;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_blink", "f_dest 0x%x", 'x', f_dest, "f_trb 0x%x", 'x', f_trb, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_trb) = f_trb;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_bnei:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_beqi.f
- UINT f_left;
- INT f_imm6;
- UINT f_tra;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_imm6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
- /* Record the fields for the semantic handler. */
- FLD (f_imm6) = f_imm6;
- FLD (f_left) = f_left;
- FLD (f_tra) = f_tra;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bnei", "f_imm6 0x%x", 'x', f_imm6, "f_left 0x%x", 'x', f_left, "f_tra 0x%x", 'x', f_tra, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_tra) = f_tra;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_brk:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- #define FLD(f) abuf->fields.sfmt_empty.f
- /* Record the fields for the semantic handler. */
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_brk", (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_byterev:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_byterev", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_cmveq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmveq", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fabsd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fabsd.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- UINT f_left_right;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- f_left_right = f_left;
- /* Record the fields for the semantic handler. */
- FLD (f_left_right) = f_left_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fabsd", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drgh) = f_left_right;
- FLD (out_drf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fabss:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fabsd.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- UINT f_left_right;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- f_left_right = f_left;
- /* Record the fields for the semantic handler. */
- FLD (f_left_right) = f_left_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fabss", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frgh) = f_left_right;
- FLD (out_frf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_faddd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_faddd", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drg) = f_left;
- FLD (in_drh) = f_right;
- FLD (out_drf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fadds:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fadds", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frg) = f_left;
- FLD (in_frh) = f_right;
- FLD (out_frf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fcmpeqd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcmpeqd", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drg) = f_left;
- FLD (in_drh) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fcmpeqs:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcmpeqs", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frg) = f_left;
- FLD (in_frh) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fcnvds:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fabsd.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- UINT f_left_right;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- f_left_right = f_left;
- /* Record the fields for the semantic handler. */
- FLD (f_left_right) = f_left_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcnvds", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drgh) = f_left_right;
- FLD (out_frf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fcnvsd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fabsd.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- UINT f_left_right;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- f_left_right = f_left;
- /* Record the fields for the semantic handler. */
- FLD (f_left_right) = f_left_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcnvsd", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frgh) = f_left_right;
- FLD (out_drf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fgetscr:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_shori.f
- UINT f_dest;
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fgetscr", "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (out_frf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fiprs:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fiprs", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_fvg) = f_left;
- FLD (in_fvh) = f_right;
- FLD (out_frf) = f_dest;
- FLD (out_fvg) = f_left;
- FLD (out_fvh) = f_right;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fldd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fldd.f
- UINT f_left;
- SI f_disp10x8;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x8) = f_disp10x8;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldd", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_drf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fldp:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fldd.f
- UINT f_left;
- SI f_disp10x8;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x8) = f_disp10x8;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldp", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_fpf) = f_dest;
- FLD (in_rm) = f_left;
- FLD (out_fpf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_flds:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_flds.f
- UINT f_left;
- SI f_disp10x4;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x4) = f_disp10x4;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_flds", "f_disp10x4 0x%x", 'x', f_disp10x4, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_frf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fldxd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldxd", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_drf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fldxp:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldxp", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_fpf) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_fpf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fldxs:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldxs", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_frf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fmacs:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmacs", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frf) = f_dest;
- FLD (in_frg) = f_left;
- FLD (in_frh) = f_right;
- FLD (out_frf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fmovdq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fabsd.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- UINT f_left_right;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- f_left_right = f_left;
- /* Record the fields for the semantic handler. */
- FLD (f_left_right) = f_left_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmovdq", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drgh) = f_left_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fmovls:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmovls", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_frf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fmovqd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmovqd", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_drf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fmovsl:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fabsd.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- UINT f_left_right;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- f_left_right = f_left;
- /* Record the fields for the semantic handler. */
- FLD (f_left_right) = f_left_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmovsl", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frgh) = f_left_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fputscr:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fabsd.f
- UINT f_left;
- UINT f_right;
- UINT f_left_right;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_left_right = f_left;
- /* Record the fields for the semantic handler. */
- FLD (f_left_right) = f_left_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fputscr", "f_left_right 0x%x", 'x', f_left_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frgh) = f_left_right;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fstd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fldd.f
- UINT f_left;
- SI f_disp10x8;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x8) = f_disp10x8;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fstd", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drf) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fsts:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_flds.f
- UINT f_left;
- SI f_disp10x4;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x4) = f_disp10x4;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fsts", "f_disp10x4 0x%x", 'x', f_disp10x4, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frf) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fstxd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fstxd", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drf) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fstxs:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fstxs", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_frf) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_fsubd:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fsubd", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drg) = f_left;
- FLD (in_drh) = f_right;
- FLD (out_drf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ftrcdq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fabsd.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- UINT f_left_right;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- f_left_right = f_left;
- /* Record the fields for the semantic handler. */
- FLD (f_left_right) = f_left_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ftrcdq", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_drgh) = f_left_right;
- FLD (out_drf) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ftrvs:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ftrvs", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_fvf) = f_dest;
- FLD (in_fvh) = f_right;
- FLD (in_mtrxg) = f_left;
- FLD (out_fvf) = f_dest;
- FLD (out_fvh) = f_right;
- FLD (out_mtrxg) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_getcfg:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_getcfg", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_getcon:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_getcon", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_gettr:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_blink.f
- UINT f_trb;
- UINT f_dest;
- f_trb = EXTRACT_MSB0_UINT (insn, 32, 9, 3);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_trb) = f_trb;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_gettr", "f_trb 0x%x", 'x', f_trb, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_trb) = f_trb;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldb:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_addi.f
- UINT f_left;
- INT f_disp10;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10) = f_disp10;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldb", "f_disp10 0x%x", 'x', f_disp10, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldl:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_flds.f
- UINT f_left;
- SI f_disp10x4;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x4) = f_disp10x4;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl", "f_disp10x4 0x%x", 'x', f_disp10x4, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fldd.f
- UINT f_left;
- SI f_disp10x8;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x8) = f_disp10x8;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_lduw:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_lduw.f
- UINT f_left;
- SI f_disp10x2;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x2 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (1));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x2) = f_disp10x2;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lduw", "f_disp10x2 0x%x", 'x', f_disp10x2, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldhil:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldhil", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldhiq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldhiq", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldlol:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldlol", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldloq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldloq", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldxb:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxb", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldxl:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxl", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldxq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxq", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldxub:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxub", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldxuw:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxuw", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ldxw:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxw", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_mcmv:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mcmv", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_mmacnfx_wl:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mmacnfx_wl", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_movi:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_movi.f
- INT f_imm16;
- UINT f_dest;
- f_imm16 = EXTRACT_MSB0_SINT (insn, 32, 6, 16);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_imm16) = f_imm16;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movi", "f_imm16 0x%x", 'x', f_imm16, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_nop:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- #define FLD(f) abuf->fields.sfmt_empty.f
- /* Record the fields for the semantic handler. */
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0));
- #undef FLD
- return idesc;
- }
- extract_sfmt_ori:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_ori.f
- UINT f_left;
- INT f_imm10;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_imm10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_imm10) = f_imm10;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ori", "f_imm10 0x%x", 'x', f_imm10, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_prefi:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_prefi", "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_pta:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_pta.f
- DI f_disp16;
- UINT f_tra;
- f_disp16 = ((((EXTRACT_MSB0_SINT (insn, 32, 6, 16)) << (2))) + (pc));
- f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
- /* Record the fields for the semantic handler. */
- FLD (f_disp16) = f_disp16;
- FLD (f_tra) = f_tra;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_pta", "f_disp16 0x%x", 'x', f_disp16, "f_tra 0x%x", 'x', f_tra, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (out_tra) = f_tra;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ptabs:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_beq.f
- UINT f_right;
- UINT f_tra;
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
- /* Record the fields for the semantic handler. */
- FLD (f_right) = f_right;
- FLD (f_tra) = f_tra;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ptabs", "f_right 0x%x", 'x', f_right, "f_tra 0x%x", 'x', f_tra, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rn) = f_right;
- FLD (out_tra) = f_tra;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_ptrel:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_beq.f
- UINT f_right;
- UINT f_tra;
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
- /* Record the fields for the semantic handler. */
- FLD (f_right) = f_right;
- FLD (f_tra) = f_tra;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ptrel", "f_right 0x%x", 'x', f_right, "f_tra 0x%x", 'x', f_tra, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rn) = f_right;
- FLD (out_tra) = f_tra;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_putcfg:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_putcfg", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_putcon:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_putcon", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_shari:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_shari.f
- UINT f_left;
- UINT f_uimm6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_uimm6 = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_uimm6) = f_uimm6;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shari", "f_left 0x%x", 'x', f_left, "f_uimm6 0x%x", 'x', f_uimm6, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_shori:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_shori.f
- UINT f_uimm16;
- UINT f_dest;
- f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 6, 16);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_uimm16) = f_uimm16;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shori", "f_dest 0x%x", 'x', f_dest, "f_uimm16 0x%x", 'x', f_uimm16, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stb:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_addi.f
- UINT f_left;
- INT f_disp10;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10) = f_disp10;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb", "f_disp10 0x%x", 'x', f_disp10, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stl:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_flds.f
- UINT f_left;
- SI f_disp10x4;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x4) = f_disp10x4;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl", "f_disp10x4 0x%x", 'x', f_disp10x4, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_fldd.f
- UINT f_left;
- SI f_disp10x8;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x8) = f_disp10x8;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stw:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_lduw.f
- UINT f_left;
- SI f_disp10x2;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x2 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (1));
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp10x2) = f_disp10x2;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stw", "f_disp10x2 0x%x", 'x', f_disp10x2, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_sthil:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sthil", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_sthiq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sthiq", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stlol:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stlol", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stloq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_getcfg.f
- UINT f_left;
- INT f_disp6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_disp6) = f_disp6;
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stloq", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stxb:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stxb", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stxl:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stxl", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stxq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stxq", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_stxw:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stxw", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_swapq:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_dest) = f_dest;
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_swapq", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rd) = f_dest;
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_trapa:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_trapa", "f_left 0x%x", 'x', f_left, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- }
- #endif
- #undef FLD
- return idesc;
- }
- extract_sfmt_xori:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_WORD insn = entire_insn;
- #define FLD(f) abuf->fields.sfmt_xori.f
- UINT f_left;
- INT f_imm6;
- UINT f_dest;
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_imm6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
- /* Record the fields for the semantic handler. */
- FLD (f_imm6) = f_imm6;
- FLD (f_left) = f_left;
- FLD (f_dest) = f_dest;
- CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_xori", "f_imm6 0x%x", 'x', f_imm6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
- #if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
- #endif
- #undef FLD
- return idesc;
- }
- }
|