epiphany-opc.c 119 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036
  1. /* Instruction opcode table for epiphany.
  2. THIS FILE IS MACHINE GENERATED WITH CGEN.
  3. Copyright (C) 1996-2015 Free Software Foundation, Inc.
  4. This file is part of the GNU Binutils and/or GDB, the GNU debugger.
  5. This file is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 3, or (at your option)
  8. any later version.
  9. It is distributed in the hope that it will be useful, but WITHOUT
  10. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  11. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
  12. License for more details.
  13. You should have received a copy of the GNU General Public License along
  14. with this program; if not, write to the Free Software Foundation, Inc.,
  15. 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
  16. */
  17. #include "sysdep.h"
  18. #include "ansidecl.h"
  19. #include "bfd.h"
  20. #include "symcat.h"
  21. #include "epiphany-desc.h"
  22. #include "epiphany-opc.h"
  23. #include "libiberty.h"
  24. /* -- opc.c */
  25. /* -- asm.c */
  26. /* The hash functions are recorded here to help keep assembler code out of
  27. the disassembler and vice versa. */
  28. static int asm_hash_insn_p (const CGEN_INSN *);
  29. static unsigned int asm_hash_insn (const char *);
  30. static int dis_hash_insn_p (const CGEN_INSN *);
  31. static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT);
  32. /* Instruction formats. */
  33. #define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
  34. static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
  35. 0, 0, 0x0, { { 0 } }
  36. };
  37. static const CGEN_IFMT ifmt_beq16 ATTRIBUTE_UNUSED = {
  38. 16, 16, 0xff, { { F (F_SIMM8) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
  39. };
  40. static const CGEN_IFMT ifmt_beq ATTRIBUTE_UNUSED = {
  41. 32, 32, 0xff, { { F (F_SIMM24) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
  42. };
  43. static const CGEN_IFMT ifmt_jr16 ATTRIBUTE_UNUSED = {
  44. 16, 16, 0xe3ff, { { F (F_DC_15_3) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  45. };
  46. static const CGEN_IFMT ifmt_rts ATTRIBUTE_UNUSED = {
  47. 32, 32, 0xffffffff, { { F (F_DC_31_3) }, { F (F_RN_X) }, { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_DC_15_3) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  48. };
  49. static const CGEN_IFMT ifmt_jr ATTRIBUTE_UNUSED = {
  50. 32, 32, 0xe3ffe3ff, { { F (F_DC_31_3) }, { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_DC_15_3) }, { F (F_RN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  51. };
  52. static const CGEN_IFMT ifmt_ldrbx16_s ATTRIBUTE_UNUSED = {
  53. 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
  54. };
  55. static const CGEN_IFMT ifmt_ldrbx_l ATTRIBUTE_UNUSED = {
  56. 32, 32, 0x6f007f, { { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_ADDSUBX) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
  57. };
  58. static const CGEN_IFMT ifmt_ldrbp_l ATTRIBUTE_UNUSED = {
  59. 32, 32, 0x6f007f, { { F (F_DC_22_2) }, { F (F_ADDSUBX) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
  60. };
  61. static const CGEN_IFMT ifmt_ldrbd16_s ATTRIBUTE_UNUSED = {
  62. 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
  63. };
  64. static const CGEN_IFMT ifmt_ldrbd_l ATTRIBUTE_UNUSED = {
  65. 32, 32, 0x200007f, { { F (F_PM) }, { F (F_SUBD) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_DISP11) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
  66. };
  67. static const CGEN_IFMT ifmt_cmov16EQ ATTRIBUTE_UNUSED = {
  68. 16, 16, 0x3ff, { { F (F_RD) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
  69. };
  70. static const CGEN_IFMT ifmt_cmovEQ ATTRIBUTE_UNUSED = {
  71. 32, 32, 0x3ff03ff, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
  72. };
  73. static const CGEN_IFMT ifmt_movts16 ATTRIBUTE_UNUSED = {
  74. 16, 16, 0x3ff, { { F (F_RD) }, { F (F_SN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  75. };
  76. static const CGEN_IFMT ifmt_movts6 ATTRIBUTE_UNUSED = {
  77. 32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
  78. };
  79. static const CGEN_IFMT ifmt_movtsdma ATTRIBUTE_UNUSED = {
  80. 32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
  81. };
  82. static const CGEN_IFMT ifmt_movtsmem ATTRIBUTE_UNUSED = {
  83. 32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
  84. };
  85. static const CGEN_IFMT ifmt_movtsmesh ATTRIBUTE_UNUSED = {
  86. 32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
  87. };
  88. static const CGEN_IFMT ifmt_nop ATTRIBUTE_UNUSED = {
  89. 16, 16, 0xffff, { { F (F_DC_15_7) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  90. };
  91. static const CGEN_IFMT ifmt_unimpl ATTRIBUTE_UNUSED = {
  92. 32, 32, 0xffffffff, { { F (F_OPC_31_32) }, { 0 } }
  93. };
  94. static const CGEN_IFMT ifmt_gien ATTRIBUTE_UNUSED = {
  95. 16, 16, 0xffff, { { F (F_DC_15_6) }, { F (F_GIEN_GIDIS_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  96. };
  97. static const CGEN_IFMT ifmt_swi_num ATTRIBUTE_UNUSED = {
  98. 16, 16, 0x3ff, { { F (F_TRAP_NUM) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  99. };
  100. static const CGEN_IFMT ifmt_swi ATTRIBUTE_UNUSED = {
  101. 16, 16, 0xffff, { { F (F_DC_15_6) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  102. };
  103. static const CGEN_IFMT ifmt_trap16 ATTRIBUTE_UNUSED = {
  104. 16, 16, 0x3ff, { { F (F_TRAP_NUM) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
  105. };
  106. static const CGEN_IFMT ifmt_add16 ATTRIBUTE_UNUSED = {
  107. 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  108. };
  109. static const CGEN_IFMT ifmt_add ATTRIBUTE_UNUSED = {
  110. 32, 32, 0x7f007f, { { F (F_DC_22_3) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  111. };
  112. static const CGEN_IFMT ifmt_addi16 ATTRIBUTE_UNUSED = {
  113. 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  114. };
  115. static const CGEN_IFMT ifmt_addi ATTRIBUTE_UNUSED = {
  116. 32, 32, 0x300007f, { { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  117. };
  118. static const CGEN_IFMT ifmt_lsri16 ATTRIBUTE_UNUSED = {
  119. 16, 16, 0x1f, { { F (F_RD) }, { F (F_RN) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
  120. };
  121. static const CGEN_IFMT ifmt_lsri32 ATTRIBUTE_UNUSED = {
  122. 32, 32, 0x3ff001f, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
  123. };
  124. static const CGEN_IFMT ifmt_bitr16 ATTRIBUTE_UNUSED = {
  125. 16, 16, 0x3ff, { { F (F_RD) }, { F (F_RN) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
  126. };
  127. static const CGEN_IFMT ifmt_bitr ATTRIBUTE_UNUSED = {
  128. 32, 32, 0x3ff03ff, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
  129. };
  130. static const CGEN_IFMT ifmt_fext ATTRIBUTE_UNUSED = {
  131. 32, 32, 0x7f007f, { { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  132. };
  133. static const CGEN_IFMT ifmt_mov8 ATTRIBUTE_UNUSED = {
  134. 16, 16, 0x1f, { { F (F_RD) }, { F (F_IMM8) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
  135. };
  136. static const CGEN_IFMT ifmt_mov16 ATTRIBUTE_UNUSED = {
  137. 32, 32, 0x100f001f, { { F (F_DC_28_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_IMM16) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
  138. };
  139. static const CGEN_IFMT ifmt_f_absf16 ATTRIBUTE_UNUSED = {
  140. 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RN) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  141. };
  142. static const CGEN_IFMT ifmt_f_absf32 ATTRIBUTE_UNUSED = {
  143. 32, 32, 0x7f007f, { { F (F_DC_22_3) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  144. };
  145. static const CGEN_IFMT ifmt_f_loatf16 ATTRIBUTE_UNUSED = {
  146. 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RN) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  147. };
  148. static const CGEN_IFMT ifmt_f_recipf32 ATTRIBUTE_UNUSED = {
  149. 32, 32, 0x7f007f, { { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
  150. };
  151. #undef F
  152. #define A(a) (1 << CGEN_INSN_##a)
  153. #define OPERAND(op) EPIPHANY_OPERAND_##op
  154. #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
  155. #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
  156. /* The instruction table. */
  157. static const CGEN_OPCODE epiphany_cgen_insn_opcode_table[MAX_INSNS] =
  158. {
  159. /* Special null first entry.
  160. A `num' value of zero is thus invalid.
  161. Also, the special `invalid' insn resides here. */
  162. { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
  163. /* beq.s $simm8 */
  164. {
  165. { 0, 0, 0, 0 },
  166. { { MNEM, ' ', OP (SIMM8), 0 } },
  167. & ifmt_beq16, { 0x0 }
  168. },
  169. /* beq.l $simm24 */
  170. {
  171. { 0, 0, 0, 0 },
  172. { { MNEM, ' ', OP (SIMM24), 0 } },
  173. & ifmt_beq, { 0x8 }
  174. },
  175. /* bne.s $simm8 */
  176. {
  177. { 0, 0, 0, 0 },
  178. { { MNEM, ' ', OP (SIMM8), 0 } },
  179. & ifmt_beq16, { 0x10 }
  180. },
  181. /* bne.l $simm24 */
  182. {
  183. { 0, 0, 0, 0 },
  184. { { MNEM, ' ', OP (SIMM24), 0 } },
  185. & ifmt_beq, { 0x18 }
  186. },
  187. /* bgtu.s $simm8 */
  188. {
  189. { 0, 0, 0, 0 },
  190. { { MNEM, ' ', OP (SIMM8), 0 } },
  191. & ifmt_beq16, { 0x20 }
  192. },
  193. /* bgtu.l $simm24 */
  194. {
  195. { 0, 0, 0, 0 },
  196. { { MNEM, ' ', OP (SIMM24), 0 } },
  197. & ifmt_beq, { 0x28 }
  198. },
  199. /* bgteu.s $simm8 */
  200. {
  201. { 0, 0, 0, 0 },
  202. { { MNEM, ' ', OP (SIMM8), 0 } },
  203. & ifmt_beq16, { 0x30 }
  204. },
  205. /* bgteu.l $simm24 */
  206. {
  207. { 0, 0, 0, 0 },
  208. { { MNEM, ' ', OP (SIMM24), 0 } },
  209. & ifmt_beq, { 0x38 }
  210. },
  211. /* blteu.s $simm8 */
  212. {
  213. { 0, 0, 0, 0 },
  214. { { MNEM, ' ', OP (SIMM8), 0 } },
  215. & ifmt_beq16, { 0x40 }
  216. },
  217. /* blteu.l $simm24 */
  218. {
  219. { 0, 0, 0, 0 },
  220. { { MNEM, ' ', OP (SIMM24), 0 } },
  221. & ifmt_beq, { 0x48 }
  222. },
  223. /* bltu.s $simm8 */
  224. {
  225. { 0, 0, 0, 0 },
  226. { { MNEM, ' ', OP (SIMM8), 0 } },
  227. & ifmt_beq16, { 0x50 }
  228. },
  229. /* bltu.l $simm24 */
  230. {
  231. { 0, 0, 0, 0 },
  232. { { MNEM, ' ', OP (SIMM24), 0 } },
  233. & ifmt_beq, { 0x58 }
  234. },
  235. /* bgt.s $simm8 */
  236. {
  237. { 0, 0, 0, 0 },
  238. { { MNEM, ' ', OP (SIMM8), 0 } },
  239. & ifmt_beq16, { 0x60 }
  240. },
  241. /* bgt.l $simm24 */
  242. {
  243. { 0, 0, 0, 0 },
  244. { { MNEM, ' ', OP (SIMM24), 0 } },
  245. & ifmt_beq, { 0x68 }
  246. },
  247. /* bgte.s $simm8 */
  248. {
  249. { 0, 0, 0, 0 },
  250. { { MNEM, ' ', OP (SIMM8), 0 } },
  251. & ifmt_beq16, { 0x70 }
  252. },
  253. /* bgte.l $simm24 */
  254. {
  255. { 0, 0, 0, 0 },
  256. { { MNEM, ' ', OP (SIMM24), 0 } },
  257. & ifmt_beq, { 0x78 }
  258. },
  259. /* blt.s $simm8 */
  260. {
  261. { 0, 0, 0, 0 },
  262. { { MNEM, ' ', OP (SIMM8), 0 } },
  263. & ifmt_beq16, { 0x80 }
  264. },
  265. /* blt.l $simm24 */
  266. {
  267. { 0, 0, 0, 0 },
  268. { { MNEM, ' ', OP (SIMM24), 0 } },
  269. & ifmt_beq, { 0x88 }
  270. },
  271. /* blte.s $simm8 */
  272. {
  273. { 0, 0, 0, 0 },
  274. { { MNEM, ' ', OP (SIMM8), 0 } },
  275. & ifmt_beq16, { 0x90 }
  276. },
  277. /* blte.l $simm24 */
  278. {
  279. { 0, 0, 0, 0 },
  280. { { MNEM, ' ', OP (SIMM24), 0 } },
  281. & ifmt_beq, { 0x98 }
  282. },
  283. /* bbeq.s $simm8 */
  284. {
  285. { 0, 0, 0, 0 },
  286. { { MNEM, ' ', OP (SIMM8), 0 } },
  287. & ifmt_beq16, { 0xa0 }
  288. },
  289. /* bbeq.l $simm24 */
  290. {
  291. { 0, 0, 0, 0 },
  292. { { MNEM, ' ', OP (SIMM24), 0 } },
  293. & ifmt_beq, { 0xa8 }
  294. },
  295. /* bbne.s $simm8 */
  296. {
  297. { 0, 0, 0, 0 },
  298. { { MNEM, ' ', OP (SIMM8), 0 } },
  299. & ifmt_beq16, { 0xb0 }
  300. },
  301. /* bbne.l $simm24 */
  302. {
  303. { 0, 0, 0, 0 },
  304. { { MNEM, ' ', OP (SIMM24), 0 } },
  305. & ifmt_beq, { 0xb8 }
  306. },
  307. /* bblt.s $simm8 */
  308. {
  309. { 0, 0, 0, 0 },
  310. { { MNEM, ' ', OP (SIMM8), 0 } },
  311. & ifmt_beq16, { 0xc0 }
  312. },
  313. /* bblt.l $simm24 */
  314. {
  315. { 0, 0, 0, 0 },
  316. { { MNEM, ' ', OP (SIMM24), 0 } },
  317. & ifmt_beq, { 0xc8 }
  318. },
  319. /* bblte.s $simm8 */
  320. {
  321. { 0, 0, 0, 0 },
  322. { { MNEM, ' ', OP (SIMM8), 0 } },
  323. & ifmt_beq16, { 0xd0 }
  324. },
  325. /* bblte.l $simm24 */
  326. {
  327. { 0, 0, 0, 0 },
  328. { { MNEM, ' ', OP (SIMM24), 0 } },
  329. & ifmt_beq, { 0xd8 }
  330. },
  331. /* b.s $simm8 */
  332. {
  333. { 0, 0, 0, 0 },
  334. { { MNEM, ' ', OP (SIMM8), 0 } },
  335. & ifmt_beq16, { 0xe0 }
  336. },
  337. /* b.l $simm24 */
  338. {
  339. { 0, 0, 0, 0 },
  340. { { MNEM, ' ', OP (SIMM24), 0 } },
  341. & ifmt_beq, { 0xe8 }
  342. },
  343. /* bl.s $simm8 */
  344. {
  345. { 0, 0, 0, 0 },
  346. { { MNEM, ' ', OP (SIMM8), 0 } },
  347. & ifmt_beq16, { 0xf0 }
  348. },
  349. /* bl.l $simm24 */
  350. {
  351. { 0, 0, 0, 0 },
  352. { { MNEM, ' ', OP (SIMM24), 0 } },
  353. & ifmt_beq, { 0xf8 }
  354. },
  355. /* jr $rn */
  356. {
  357. { 0, 0, 0, 0 },
  358. { { MNEM, ' ', OP (RN), 0 } },
  359. & ifmt_jr16, { 0x142 }
  360. },
  361. /* rts */
  362. {
  363. { 0, 0, 0, 0 },
  364. { { MNEM, 0 } },
  365. & ifmt_rts, { 0x402194f }
  366. },
  367. /* jr $rn6 */
  368. {
  369. { 0, 0, 0, 0 },
  370. { { MNEM, ' ', OP (RN6), 0 } },
  371. & ifmt_jr, { 0x2014f }
  372. },
  373. /* jalr $rn */
  374. {
  375. { 0, 0, 0, 0 },
  376. { { MNEM, ' ', OP (RN), 0 } },
  377. & ifmt_jr16, { 0x152 }
  378. },
  379. /* jalr $rn6 */
  380. {
  381. { 0, 0, 0, 0 },
  382. { { MNEM, ' ', OP (RN6), 0 } },
  383. & ifmt_jr, { 0x2015f }
  384. },
  385. /* ldrb $rd,[$rn,$rm] */
  386. {
  387. { 0, 0, 0, 0 },
  388. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
  389. & ifmt_ldrbx16_s, { 0x1 }
  390. },
  391. /* ldrb $rd,[$rn],$rm */
  392. {
  393. { 0, 0, 0, 0 },
  394. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
  395. & ifmt_ldrbx16_s, { 0x5 }
  396. },
  397. /* ldrb $rd6,[$rn6,$direction$rm6] */
  398. {
  399. { 0, 0, 0, 0 },
  400. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  401. & ifmt_ldrbx_l, { 0x9 }
  402. },
  403. /* ldrb $rd6,[$rn6],$direction$rm6 */
  404. {
  405. { 0, 0, 0, 0 },
  406. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  407. & ifmt_ldrbp_l, { 0xd }
  408. },
  409. /* ldrb $rd,[$rn,$disp3] */
  410. {
  411. { 0, 0, 0, 0 },
  412. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
  413. & ifmt_ldrbd16_s, { 0x4 }
  414. },
  415. /* ldrb $rd6,[$rn6,$dpmi$disp11] */
  416. {
  417. { 0, 0, 0, 0 },
  418. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  419. & ifmt_ldrbd_l, { 0xc }
  420. },
  421. /* ldrb $rd6,[$rn6],$dpmi$disp11 */
  422. {
  423. { 0, 0, 0, 0 },
  424. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  425. & ifmt_ldrbd_l, { 0x200000c }
  426. },
  427. /* ldrh $rd,[$rn,$rm] */
  428. {
  429. { 0, 0, 0, 0 },
  430. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
  431. & ifmt_ldrbx16_s, { 0x21 }
  432. },
  433. /* ldrh $rd,[$rn],$rm */
  434. {
  435. { 0, 0, 0, 0 },
  436. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
  437. & ifmt_ldrbx16_s, { 0x25 }
  438. },
  439. /* ldrh $rd6,[$rn6,$direction$rm6] */
  440. {
  441. { 0, 0, 0, 0 },
  442. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  443. & ifmt_ldrbx_l, { 0x29 }
  444. },
  445. /* ldrh $rd6,[$rn6],$direction$rm6 */
  446. {
  447. { 0, 0, 0, 0 },
  448. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  449. & ifmt_ldrbp_l, { 0x2d }
  450. },
  451. /* ldrh $rd,[$rn,$disp3] */
  452. {
  453. { 0, 0, 0, 0 },
  454. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
  455. & ifmt_ldrbd16_s, { 0x24 }
  456. },
  457. /* ldrh $rd6,[$rn6,$dpmi$disp11] */
  458. {
  459. { 0, 0, 0, 0 },
  460. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  461. & ifmt_ldrbd_l, { 0x2c }
  462. },
  463. /* ldrh $rd6,[$rn6],$dpmi$disp11 */
  464. {
  465. { 0, 0, 0, 0 },
  466. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  467. & ifmt_ldrbd_l, { 0x200002c }
  468. },
  469. /* ldr $rd,[$rn,$rm] */
  470. {
  471. { 0, 0, 0, 0 },
  472. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
  473. & ifmt_ldrbx16_s, { 0x41 }
  474. },
  475. /* ldr $rd,[$rn],$rm */
  476. {
  477. { 0, 0, 0, 0 },
  478. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
  479. & ifmt_ldrbx16_s, { 0x45 }
  480. },
  481. /* ldr $rd6,[$rn6,$direction$rm6] */
  482. {
  483. { 0, 0, 0, 0 },
  484. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  485. & ifmt_ldrbx_l, { 0x49 }
  486. },
  487. /* ldr $rd6,[$rn6],$direction$rm6 */
  488. {
  489. { 0, 0, 0, 0 },
  490. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  491. & ifmt_ldrbp_l, { 0x4d }
  492. },
  493. /* ldr $rd,[$rn,$disp3] */
  494. {
  495. { 0, 0, 0, 0 },
  496. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
  497. & ifmt_ldrbd16_s, { 0x44 }
  498. },
  499. /* ldr $rd6,[$rn6,$dpmi$disp11] */
  500. {
  501. { 0, 0, 0, 0 },
  502. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  503. & ifmt_ldrbd_l, { 0x4c }
  504. },
  505. /* ldr $rd6,[$rn6],$dpmi$disp11 */
  506. {
  507. { 0, 0, 0, 0 },
  508. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  509. & ifmt_ldrbd_l, { 0x200004c }
  510. },
  511. /* ldrd $rd,[$rn,$rm] */
  512. {
  513. { 0, 0, 0, 0 },
  514. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
  515. & ifmt_ldrbx16_s, { 0x61 }
  516. },
  517. /* ldrd $rd,[$rn],$rm */
  518. {
  519. { 0, 0, 0, 0 },
  520. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
  521. & ifmt_ldrbx16_s, { 0x65 }
  522. },
  523. /* ldrd $rd6,[$rn6,$direction$rm6] */
  524. {
  525. { 0, 0, 0, 0 },
  526. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  527. & ifmt_ldrbx_l, { 0x69 }
  528. },
  529. /* ldrd $rd6,[$rn6],$direction$rm6 */
  530. {
  531. { 0, 0, 0, 0 },
  532. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  533. & ifmt_ldrbp_l, { 0x6d }
  534. },
  535. /* ldrd $rd,[$rn,$disp3] */
  536. {
  537. { 0, 0, 0, 0 },
  538. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
  539. & ifmt_ldrbd16_s, { 0x64 }
  540. },
  541. /* ldrd $rd6,[$rn6,$dpmi$disp11] */
  542. {
  543. { 0, 0, 0, 0 },
  544. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  545. & ifmt_ldrbd_l, { 0x6c }
  546. },
  547. /* ldrd $rd6,[$rn6],$dpmi$disp11 */
  548. {
  549. { 0, 0, 0, 0 },
  550. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  551. & ifmt_ldrbd_l, { 0x200006c }
  552. },
  553. /* testsetb $rd6,[$rn6,$direction$rm6] */
  554. {
  555. { 0, 0, 0, 0 },
  556. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  557. & ifmt_ldrbx_l, { 0x200009 }
  558. },
  559. /* testseth $rd6,[$rn6,$direction$rm6] */
  560. {
  561. { 0, 0, 0, 0 },
  562. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  563. & ifmt_ldrbx_l, { 0x200029 }
  564. },
  565. /* testset $rd6,[$rn6,$direction$rm6] */
  566. {
  567. { 0, 0, 0, 0 },
  568. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  569. & ifmt_ldrbx_l, { 0x200049 }
  570. },
  571. /* strb $rd,[$rn,$rm] */
  572. {
  573. { 0, 0, 0, 0 },
  574. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
  575. & ifmt_ldrbx16_s, { 0x11 }
  576. },
  577. /* strb $rd6,[$rn6,$direction$rm6] */
  578. {
  579. { 0, 0, 0, 0 },
  580. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  581. & ifmt_ldrbx_l, { 0x19 }
  582. },
  583. /* strb $rd,[$rn],$rm */
  584. {
  585. { 0, 0, 0, 0 },
  586. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
  587. & ifmt_ldrbx16_s, { 0x15 }
  588. },
  589. /* strb $rd6,[$rn6],$direction$rm6 */
  590. {
  591. { 0, 0, 0, 0 },
  592. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  593. & ifmt_ldrbp_l, { 0x1d }
  594. },
  595. /* strb $rd,[$rn,$disp3] */
  596. {
  597. { 0, 0, 0, 0 },
  598. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
  599. & ifmt_ldrbd16_s, { 0x14 }
  600. },
  601. /* strb $rd6,[$rn6,$dpmi$disp11] */
  602. {
  603. { 0, 0, 0, 0 },
  604. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  605. & ifmt_ldrbd_l, { 0x1c }
  606. },
  607. /* strb $rd6,[$rn6],$dpmi$disp11 */
  608. {
  609. { 0, 0, 0, 0 },
  610. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  611. & ifmt_ldrbd_l, { 0x200001c }
  612. },
  613. /* strh $rd,[$rn,$rm] */
  614. {
  615. { 0, 0, 0, 0 },
  616. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
  617. & ifmt_ldrbx16_s, { 0x31 }
  618. },
  619. /* strh $rd6,[$rn6,$direction$rm6] */
  620. {
  621. { 0, 0, 0, 0 },
  622. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  623. & ifmt_ldrbx_l, { 0x39 }
  624. },
  625. /* strh $rd,[$rn],$rm */
  626. {
  627. { 0, 0, 0, 0 },
  628. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
  629. & ifmt_ldrbx16_s, { 0x35 }
  630. },
  631. /* strh $rd6,[$rn6],$direction$rm6 */
  632. {
  633. { 0, 0, 0, 0 },
  634. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  635. & ifmt_ldrbp_l, { 0x3d }
  636. },
  637. /* strh $rd,[$rn,$disp3] */
  638. {
  639. { 0, 0, 0, 0 },
  640. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
  641. & ifmt_ldrbd16_s, { 0x34 }
  642. },
  643. /* strh $rd6,[$rn6,$dpmi$disp11] */
  644. {
  645. { 0, 0, 0, 0 },
  646. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  647. & ifmt_ldrbd_l, { 0x3c }
  648. },
  649. /* strh $rd6,[$rn6],$dpmi$disp11 */
  650. {
  651. { 0, 0, 0, 0 },
  652. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  653. & ifmt_ldrbd_l, { 0x200003c }
  654. },
  655. /* str $rd,[$rn,$rm] */
  656. {
  657. { 0, 0, 0, 0 },
  658. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
  659. & ifmt_ldrbx16_s, { 0x51 }
  660. },
  661. /* str $rd6,[$rn6,$direction$rm6] */
  662. {
  663. { 0, 0, 0, 0 },
  664. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  665. & ifmt_ldrbx_l, { 0x59 }
  666. },
  667. /* str $rd,[$rn],$rm */
  668. {
  669. { 0, 0, 0, 0 },
  670. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
  671. & ifmt_ldrbx16_s, { 0x55 }
  672. },
  673. /* str $rd6,[$rn6],$direction$rm6 */
  674. {
  675. { 0, 0, 0, 0 },
  676. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  677. & ifmt_ldrbp_l, { 0x5d }
  678. },
  679. /* str $rd,[$rn,$disp3] */
  680. {
  681. { 0, 0, 0, 0 },
  682. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
  683. & ifmt_ldrbd16_s, { 0x54 }
  684. },
  685. /* str $rd6,[$rn6,$dpmi$disp11] */
  686. {
  687. { 0, 0, 0, 0 },
  688. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  689. & ifmt_ldrbd_l, { 0x5c }
  690. },
  691. /* str $rd6,[$rn6],$dpmi$disp11 */
  692. {
  693. { 0, 0, 0, 0 },
  694. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  695. & ifmt_ldrbd_l, { 0x200005c }
  696. },
  697. /* strd $rd,[$rn,$rm] */
  698. {
  699. { 0, 0, 0, 0 },
  700. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
  701. & ifmt_ldrbx16_s, { 0x71 }
  702. },
  703. /* strd $rd6,[$rn6,$direction$rm6] */
  704. {
  705. { 0, 0, 0, 0 },
  706. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  707. & ifmt_ldrbx_l, { 0x79 }
  708. },
  709. /* strd $rd,[$rn],$rm */
  710. {
  711. { 0, 0, 0, 0 },
  712. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
  713. & ifmt_ldrbx16_s, { 0x75 }
  714. },
  715. /* strd $rd6,[$rn6],$direction$rm6 */
  716. {
  717. { 0, 0, 0, 0 },
  718. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  719. & ifmt_ldrbp_l, { 0x7d }
  720. },
  721. /* strd $rd,[$rn,$disp3] */
  722. {
  723. { 0, 0, 0, 0 },
  724. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
  725. & ifmt_ldrbd16_s, { 0x74 }
  726. },
  727. /* strd $rd6,[$rn6,$dpmi$disp11] */
  728. {
  729. { 0, 0, 0, 0 },
  730. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  731. & ifmt_ldrbd_l, { 0x7c }
  732. },
  733. /* strd $rd6,[$rn6],$dpmi$disp11 */
  734. {
  735. { 0, 0, 0, 0 },
  736. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  737. & ifmt_ldrbd_l, { 0x200007c }
  738. },
  739. /* moveq $rd,$rn */
  740. {
  741. { 0, 0, 0, 0 },
  742. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  743. & ifmt_cmov16EQ, { 0x2 }
  744. },
  745. /* moveq $rd6,$rn6 */
  746. {
  747. { 0, 0, 0, 0 },
  748. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  749. & ifmt_cmovEQ, { 0x2000f }
  750. },
  751. /* movne $rd,$rn */
  752. {
  753. { 0, 0, 0, 0 },
  754. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  755. & ifmt_cmov16EQ, { 0x12 }
  756. },
  757. /* movne $rd6,$rn6 */
  758. {
  759. { 0, 0, 0, 0 },
  760. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  761. & ifmt_cmovEQ, { 0x2001f }
  762. },
  763. /* movgtu $rd,$rn */
  764. {
  765. { 0, 0, 0, 0 },
  766. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  767. & ifmt_cmov16EQ, { 0x22 }
  768. },
  769. /* movgtu $rd6,$rn6 */
  770. {
  771. { 0, 0, 0, 0 },
  772. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  773. & ifmt_cmovEQ, { 0x2002f }
  774. },
  775. /* movgteu $rd,$rn */
  776. {
  777. { 0, 0, 0, 0 },
  778. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  779. & ifmt_cmov16EQ, { 0x32 }
  780. },
  781. /* movgteu $rd6,$rn6 */
  782. {
  783. { 0, 0, 0, 0 },
  784. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  785. & ifmt_cmovEQ, { 0x2003f }
  786. },
  787. /* movlteu $rd,$rn */
  788. {
  789. { 0, 0, 0, 0 },
  790. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  791. & ifmt_cmov16EQ, { 0x42 }
  792. },
  793. /* movlteu $rd6,$rn6 */
  794. {
  795. { 0, 0, 0, 0 },
  796. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  797. & ifmt_cmovEQ, { 0x2004f }
  798. },
  799. /* movltu $rd,$rn */
  800. {
  801. { 0, 0, 0, 0 },
  802. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  803. & ifmt_cmov16EQ, { 0x52 }
  804. },
  805. /* movltu $rd6,$rn6 */
  806. {
  807. { 0, 0, 0, 0 },
  808. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  809. & ifmt_cmovEQ, { 0x2005f }
  810. },
  811. /* movgt $rd,$rn */
  812. {
  813. { 0, 0, 0, 0 },
  814. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  815. & ifmt_cmov16EQ, { 0x62 }
  816. },
  817. /* movgt $rd6,$rn6 */
  818. {
  819. { 0, 0, 0, 0 },
  820. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  821. & ifmt_cmovEQ, { 0x2006f }
  822. },
  823. /* movgte $rd,$rn */
  824. {
  825. { 0, 0, 0, 0 },
  826. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  827. & ifmt_cmov16EQ, { 0x72 }
  828. },
  829. /* movgte $rd6,$rn6 */
  830. {
  831. { 0, 0, 0, 0 },
  832. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  833. & ifmt_cmovEQ, { 0x2007f }
  834. },
  835. /* movlt $rd,$rn */
  836. {
  837. { 0, 0, 0, 0 },
  838. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  839. & ifmt_cmov16EQ, { 0x82 }
  840. },
  841. /* movlt $rd6,$rn6 */
  842. {
  843. { 0, 0, 0, 0 },
  844. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  845. & ifmt_cmovEQ, { 0x2008f }
  846. },
  847. /* movlte $rd,$rn */
  848. {
  849. { 0, 0, 0, 0 },
  850. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  851. & ifmt_cmov16EQ, { 0x92 }
  852. },
  853. /* movlte $rd6,$rn6 */
  854. {
  855. { 0, 0, 0, 0 },
  856. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  857. & ifmt_cmovEQ, { 0x2009f }
  858. },
  859. /* mov $rd,$rn */
  860. {
  861. { 0, 0, 0, 0 },
  862. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  863. & ifmt_cmov16EQ, { 0xe2 }
  864. },
  865. /* mov $rd6,$rn6 */
  866. {
  867. { 0, 0, 0, 0 },
  868. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  869. & ifmt_cmovEQ, { 0x200ef }
  870. },
  871. /* movbeq $rd,$rn */
  872. {
  873. { 0, 0, 0, 0 },
  874. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  875. & ifmt_cmov16EQ, { 0xa2 }
  876. },
  877. /* movbeq $rd6,$rn6 */
  878. {
  879. { 0, 0, 0, 0 },
  880. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  881. & ifmt_cmovEQ, { 0x200af }
  882. },
  883. /* movbne $rd,$rn */
  884. {
  885. { 0, 0, 0, 0 },
  886. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  887. & ifmt_cmov16EQ, { 0xb2 }
  888. },
  889. /* movbne $rd6,$rn6 */
  890. {
  891. { 0, 0, 0, 0 },
  892. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  893. & ifmt_cmovEQ, { 0x200bf }
  894. },
  895. /* movblt $rd,$rn */
  896. {
  897. { 0, 0, 0, 0 },
  898. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  899. & ifmt_cmov16EQ, { 0xc2 }
  900. },
  901. /* movblt $rd6,$rn6 */
  902. {
  903. { 0, 0, 0, 0 },
  904. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  905. & ifmt_cmovEQ, { 0x200cf }
  906. },
  907. /* movblte $rd,$rn */
  908. {
  909. { 0, 0, 0, 0 },
  910. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  911. & ifmt_cmov16EQ, { 0xd2 }
  912. },
  913. /* movblte $rd6,$rn6 */
  914. {
  915. { 0, 0, 0, 0 },
  916. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  917. & ifmt_cmovEQ, { 0x200df }
  918. },
  919. /* movts $sn,$rd */
  920. {
  921. { 0, 0, 0, 0 },
  922. { { MNEM, ' ', OP (SN), ',', OP (RD), 0 } },
  923. & ifmt_movts16, { 0x102 }
  924. },
  925. /* movts $sn6,$rd6 */
  926. {
  927. { 0, 0, 0, 0 },
  928. { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
  929. & ifmt_movts6, { 0x2010f }
  930. },
  931. /* movts $sndma,$rd6 */
  932. {
  933. { 0, 0, 0, 0 },
  934. { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
  935. & ifmt_movtsdma, { 0x12010f }
  936. },
  937. /* movts $snmem,$rd6 */
  938. {
  939. { 0, 0, 0, 0 },
  940. { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
  941. & ifmt_movtsmem, { 0x22010f }
  942. },
  943. /* movts $snmesh,$rd6 */
  944. {
  945. { 0, 0, 0, 0 },
  946. { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
  947. & ifmt_movtsmesh, { 0x32010f }
  948. },
  949. /* movfs $rd,$sn */
  950. {
  951. { 0, 0, 0, 0 },
  952. { { MNEM, ' ', OP (RD), ',', OP (SN), 0 } },
  953. & ifmt_movts16, { 0x112 }
  954. },
  955. /* movfs $rd6,$sn6 */
  956. {
  957. { 0, 0, 0, 0 },
  958. { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
  959. & ifmt_movts6, { 0x2011f }
  960. },
  961. /* movfs $rd6,$sndma */
  962. {
  963. { 0, 0, 0, 0 },
  964. { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
  965. & ifmt_movtsdma, { 0x12011f }
  966. },
  967. /* movfs $rd6,$snmem */
  968. {
  969. { 0, 0, 0, 0 },
  970. { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
  971. & ifmt_movtsmem, { 0x22011f }
  972. },
  973. /* movfs $rd6,$snmesh */
  974. {
  975. { 0, 0, 0, 0 },
  976. { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
  977. & ifmt_movtsmesh, { 0x32011f }
  978. },
  979. /* nop */
  980. {
  981. { 0, 0, 0, 0 },
  982. { { MNEM, 0 } },
  983. & ifmt_nop, { 0x1a2 }
  984. },
  985. /* snop */
  986. {
  987. { 0, 0, 0, 0 },
  988. { { MNEM, 0 } },
  989. & ifmt_nop, { 0x3a2 }
  990. },
  991. /* unimpl */
  992. {
  993. { 0, 0, 0, 0 },
  994. { { MNEM, 0 } },
  995. & ifmt_unimpl, { 0xf000f }
  996. },
  997. /* idle */
  998. {
  999. { 0, 0, 0, 0 },
  1000. { { MNEM, 0 } },
  1001. & ifmt_nop, { 0x1b2 }
  1002. },
  1003. /* bkpt */
  1004. {
  1005. { 0, 0, 0, 0 },
  1006. { { MNEM, 0 } },
  1007. & ifmt_nop, { 0x1c2 }
  1008. },
  1009. /* mbkpt */
  1010. {
  1011. { 0, 0, 0, 0 },
  1012. { { MNEM, 0 } },
  1013. & ifmt_nop, { 0x3c2 }
  1014. },
  1015. /* rti */
  1016. {
  1017. { 0, 0, 0, 0 },
  1018. { { MNEM, 0 } },
  1019. & ifmt_nop, { 0x1d2 }
  1020. },
  1021. /* wand */
  1022. {
  1023. { 0, 0, 0, 0 },
  1024. { { MNEM, 0 } },
  1025. & ifmt_nop, { 0x182 }
  1026. },
  1027. /* sync */
  1028. {
  1029. { 0, 0, 0, 0 },
  1030. { { MNEM, 0 } },
  1031. & ifmt_nop, { 0x1f2 }
  1032. },
  1033. /* gie */
  1034. {
  1035. { 0, 0, 0, 0 },
  1036. { { MNEM, 0 } },
  1037. & ifmt_gien, { 0x192 }
  1038. },
  1039. /* gid */
  1040. {
  1041. { 0, 0, 0, 0 },
  1042. { { MNEM, 0 } },
  1043. & ifmt_gien, { 0x392 }
  1044. },
  1045. /* swi $swi_num */
  1046. {
  1047. { 0, 0, 0, 0 },
  1048. { { MNEM, ' ', OP (SWI_NUM), 0 } },
  1049. & ifmt_swi_num, { 0x1e2 }
  1050. },
  1051. /* swi */
  1052. {
  1053. { 0, 0, 0, 0 },
  1054. { { MNEM, 0 } },
  1055. & ifmt_swi, { 0x1e2 }
  1056. },
  1057. /* trap $trapnum6 */
  1058. {
  1059. { 0, 0, 0, 0 },
  1060. { { MNEM, ' ', OP (TRAPNUM6), 0 } },
  1061. & ifmt_trap16, { 0x3e2 }
  1062. },
  1063. /* add $rd,$rn,$rm */
  1064. {
  1065. { 0, 0, 0, 0 },
  1066. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1067. & ifmt_add16, { 0x1a }
  1068. },
  1069. /* add $rd6,$rn6,$rm6 */
  1070. {
  1071. { 0, 0, 0, 0 },
  1072. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1073. & ifmt_add, { 0xa001f }
  1074. },
  1075. /* sub $rd,$rn,$rm */
  1076. {
  1077. { 0, 0, 0, 0 },
  1078. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1079. & ifmt_add16, { 0x3a }
  1080. },
  1081. /* sub $rd6,$rn6,$rm6 */
  1082. {
  1083. { 0, 0, 0, 0 },
  1084. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1085. & ifmt_add, { 0xa003f }
  1086. },
  1087. /* and $rd,$rn,$rm */
  1088. {
  1089. { 0, 0, 0, 0 },
  1090. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1091. & ifmt_add16, { 0x5a }
  1092. },
  1093. /* and $rd6,$rn6,$rm6 */
  1094. {
  1095. { 0, 0, 0, 0 },
  1096. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1097. & ifmt_add, { 0xa005f }
  1098. },
  1099. /* orr $rd,$rn,$rm */
  1100. {
  1101. { 0, 0, 0, 0 },
  1102. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1103. & ifmt_add16, { 0x7a }
  1104. },
  1105. /* orr $rd6,$rn6,$rm6 */
  1106. {
  1107. { 0, 0, 0, 0 },
  1108. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1109. & ifmt_add, { 0xa007f }
  1110. },
  1111. /* eor $rd,$rn,$rm */
  1112. {
  1113. { 0, 0, 0, 0 },
  1114. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1115. & ifmt_add16, { 0xa }
  1116. },
  1117. /* eor $rd6,$rn6,$rm6 */
  1118. {
  1119. { 0, 0, 0, 0 },
  1120. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1121. & ifmt_add, { 0xa000f }
  1122. },
  1123. /* add.s $rd,$rn,$simm3 */
  1124. {
  1125. { 0, 0, 0, 0 },
  1126. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
  1127. & ifmt_addi16, { 0x13 }
  1128. },
  1129. /* add.l $rd6,$rn6,$simm11 */
  1130. {
  1131. { 0, 0, 0, 0 },
  1132. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
  1133. & ifmt_addi, { 0x1b }
  1134. },
  1135. /* sub.s $rd,$rn,$simm3 */
  1136. {
  1137. { 0, 0, 0, 0 },
  1138. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
  1139. & ifmt_addi16, { 0x33 }
  1140. },
  1141. /* sub.l $rd6,$rn6,$simm11 */
  1142. {
  1143. { 0, 0, 0, 0 },
  1144. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
  1145. & ifmt_addi, { 0x3b }
  1146. },
  1147. /* asr $rd,$rn,$rm */
  1148. {
  1149. { 0, 0, 0, 0 },
  1150. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1151. & ifmt_add16, { 0x6a }
  1152. },
  1153. /* asr $rd6,$rn6,$rm6 */
  1154. {
  1155. { 0, 0, 0, 0 },
  1156. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1157. & ifmt_add, { 0xa006f }
  1158. },
  1159. /* lsr $rd,$rn,$rm */
  1160. {
  1161. { 0, 0, 0, 0 },
  1162. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1163. & ifmt_add16, { 0x4a }
  1164. },
  1165. /* lsr $rd6,$rn6,$rm6 */
  1166. {
  1167. { 0, 0, 0, 0 },
  1168. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1169. & ifmt_add, { 0xa004f }
  1170. },
  1171. /* lsl $rd,$rn,$rm */
  1172. {
  1173. { 0, 0, 0, 0 },
  1174. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1175. & ifmt_add16, { 0x2a }
  1176. },
  1177. /* lsl $rd6,$rn6,$rm6 */
  1178. {
  1179. { 0, 0, 0, 0 },
  1180. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1181. & ifmt_add, { 0xa002f }
  1182. },
  1183. /* lsr $rd,$rn,$shift */
  1184. {
  1185. { 0, 0, 0, 0 },
  1186. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
  1187. & ifmt_lsri16, { 0x6 }
  1188. },
  1189. /* lsr $rd6,$rn6,$shift */
  1190. {
  1191. { 0, 0, 0, 0 },
  1192. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
  1193. & ifmt_lsri32, { 0x6000f }
  1194. },
  1195. /* lsl $rd,$rn,$shift */
  1196. {
  1197. { 0, 0, 0, 0 },
  1198. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
  1199. & ifmt_lsri16, { 0x16 }
  1200. },
  1201. /* lsl $rd6,$rn6,$shift */
  1202. {
  1203. { 0, 0, 0, 0 },
  1204. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
  1205. & ifmt_lsri32, { 0x6001f }
  1206. },
  1207. /* asr $rd,$rn,$shift */
  1208. {
  1209. { 0, 0, 0, 0 },
  1210. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
  1211. & ifmt_lsri16, { 0xe }
  1212. },
  1213. /* asr $rd6,$rn6,$shift */
  1214. {
  1215. { 0, 0, 0, 0 },
  1216. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
  1217. & ifmt_lsri32, { 0xe000f }
  1218. },
  1219. /* bitr $rd,$rn */
  1220. {
  1221. { 0, 0, 0, 0 },
  1222. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  1223. & ifmt_bitr16, { 0x1e }
  1224. },
  1225. /* bitr $rd6,$rn6 */
  1226. {
  1227. { 0, 0, 0, 0 },
  1228. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  1229. & ifmt_bitr, { 0xe001f }
  1230. },
  1231. /* fext $rd6,$rn6,$rm6 */
  1232. {
  1233. { 0, 0, 0, 0 },
  1234. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1235. & ifmt_fext, { 0x1a000f }
  1236. },
  1237. /* fdep $rd6,$rn6,$rm6 */
  1238. {
  1239. { 0, 0, 0, 0 },
  1240. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1241. & ifmt_fext, { 0x1a001f }
  1242. },
  1243. /* lfsr $rd6,$rn6,$rm6 */
  1244. {
  1245. { 0, 0, 0, 0 },
  1246. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1247. & ifmt_fext, { 0x1a002f }
  1248. },
  1249. /* mov.b $rd,$imm8 */
  1250. {
  1251. { 0, 0, 0, 0 },
  1252. { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
  1253. & ifmt_mov8, { 0x3 }
  1254. },
  1255. /* mov.l $rd6,$imm16 */
  1256. {
  1257. { 0, 0, 0, 0 },
  1258. { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
  1259. & ifmt_mov16, { 0x2000b }
  1260. },
  1261. /* movt $rd6,$imm16 */
  1262. {
  1263. { 0, 0, 0, 0 },
  1264. { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
  1265. & ifmt_mov16, { 0x1002000b }
  1266. },
  1267. /* fadd $rd,$rn,$rm */
  1268. {
  1269. { 0, 0, 0, 0 },
  1270. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1271. & ifmt_add16, { 0x7 }
  1272. },
  1273. /* fadd $rd6,$rn6,$rm6 */
  1274. {
  1275. { 0, 0, 0, 0 },
  1276. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1277. & ifmt_add, { 0x7000f }
  1278. },
  1279. /* fsub $rd,$rn,$rm */
  1280. {
  1281. { 0, 0, 0, 0 },
  1282. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1283. & ifmt_add16, { 0x17 }
  1284. },
  1285. /* fsub $rd6,$rn6,$rm6 */
  1286. {
  1287. { 0, 0, 0, 0 },
  1288. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1289. & ifmt_add, { 0x7001f }
  1290. },
  1291. /* fmul $rd,$rn,$rm */
  1292. {
  1293. { 0, 0, 0, 0 },
  1294. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1295. & ifmt_add16, { 0x27 }
  1296. },
  1297. /* fmul $rd6,$rn6,$rm6 */
  1298. {
  1299. { 0, 0, 0, 0 },
  1300. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1301. & ifmt_add, { 0x7002f }
  1302. },
  1303. /* fmadd $rd,$rn,$rm */
  1304. {
  1305. { 0, 0, 0, 0 },
  1306. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1307. & ifmt_add16, { 0x37 }
  1308. },
  1309. /* fmadd $rd6,$rn6,$rm6 */
  1310. {
  1311. { 0, 0, 0, 0 },
  1312. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1313. & ifmt_add, { 0x7003f }
  1314. },
  1315. /* fmsub $rd,$rn,$rm */
  1316. {
  1317. { 0, 0, 0, 0 },
  1318. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  1319. & ifmt_add16, { 0x47 }
  1320. },
  1321. /* fmsub $rd6,$rn6,$rm6 */
  1322. {
  1323. { 0, 0, 0, 0 },
  1324. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  1325. & ifmt_add, { 0x7004f }
  1326. },
  1327. /* fabs rd,rn */
  1328. {
  1329. { 0, 0, 0, 0 },
  1330. { { MNEM, ' ', 'r', 'd', ',', 'r', 'n', 0 } },
  1331. & ifmt_f_absf16, { 0x77 }
  1332. },
  1333. /* fabs $rd6,$rn6 */
  1334. {
  1335. { 0, 0, 0, 0 },
  1336. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  1337. & ifmt_f_absf32, { 0x7007f }
  1338. },
  1339. /* float $rd,$rn */
  1340. {
  1341. { 0, 0, 0, 0 },
  1342. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  1343. & ifmt_f_loatf16, { 0x57 }
  1344. },
  1345. /* float $rd6,$rn6 */
  1346. {
  1347. { 0, 0, 0, 0 },
  1348. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  1349. & ifmt_f_absf32, { 0x7005f }
  1350. },
  1351. /* fix $rd,$rn */
  1352. {
  1353. { 0, 0, 0, 0 },
  1354. { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
  1355. & ifmt_f_absf16, { 0x67 }
  1356. },
  1357. /* fix $rd6,$rn6 */
  1358. {
  1359. { 0, 0, 0, 0 },
  1360. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  1361. & ifmt_f_absf32, { 0x7006f }
  1362. },
  1363. /* frecip $frd6,$frn6 */
  1364. {
  1365. { 0, 0, 0, 0 },
  1366. { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
  1367. & ifmt_f_recipf32, { 0x17000f }
  1368. },
  1369. /* fsqrt $frd6,$frn6 */
  1370. {
  1371. { 0, 0, 0, 0 },
  1372. { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
  1373. & ifmt_f_recipf32, { 0x17001f }
  1374. },
  1375. };
  1376. #undef A
  1377. #undef OPERAND
  1378. #undef MNEM
  1379. #undef OP
  1380. /* Formats for ALIAS macro-insns. */
  1381. #define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
  1382. static const CGEN_IFMT ifmt_beq16r ATTRIBUTE_UNUSED = {
  1383. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1384. };
  1385. static const CGEN_IFMT ifmt_beq32r ATTRIBUTE_UNUSED = {
  1386. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1387. };
  1388. static const CGEN_IFMT ifmt_bne16r ATTRIBUTE_UNUSED = {
  1389. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1390. };
  1391. static const CGEN_IFMT ifmt_bne32r ATTRIBUTE_UNUSED = {
  1392. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1393. };
  1394. static const CGEN_IFMT ifmt_bgtu16r ATTRIBUTE_UNUSED = {
  1395. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1396. };
  1397. static const CGEN_IFMT ifmt_bgtu32r ATTRIBUTE_UNUSED = {
  1398. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1399. };
  1400. static const CGEN_IFMT ifmt_bgteu16r ATTRIBUTE_UNUSED = {
  1401. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1402. };
  1403. static const CGEN_IFMT ifmt_bgteu32r ATTRIBUTE_UNUSED = {
  1404. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1405. };
  1406. static const CGEN_IFMT ifmt_blteu16r ATTRIBUTE_UNUSED = {
  1407. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1408. };
  1409. static const CGEN_IFMT ifmt_blteu32r ATTRIBUTE_UNUSED = {
  1410. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1411. };
  1412. static const CGEN_IFMT ifmt_bltu16r ATTRIBUTE_UNUSED = {
  1413. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1414. };
  1415. static const CGEN_IFMT ifmt_bltu32r ATTRIBUTE_UNUSED = {
  1416. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1417. };
  1418. static const CGEN_IFMT ifmt_bgt16r ATTRIBUTE_UNUSED = {
  1419. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1420. };
  1421. static const CGEN_IFMT ifmt_bgt32r ATTRIBUTE_UNUSED = {
  1422. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1423. };
  1424. static const CGEN_IFMT ifmt_bgte16r ATTRIBUTE_UNUSED = {
  1425. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1426. };
  1427. static const CGEN_IFMT ifmt_bgte32r ATTRIBUTE_UNUSED = {
  1428. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1429. };
  1430. static const CGEN_IFMT ifmt_blt16r ATTRIBUTE_UNUSED = {
  1431. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1432. };
  1433. static const CGEN_IFMT ifmt_blt32r ATTRIBUTE_UNUSED = {
  1434. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1435. };
  1436. static const CGEN_IFMT ifmt_blte16r ATTRIBUTE_UNUSED = {
  1437. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1438. };
  1439. static const CGEN_IFMT ifmt_blte32r ATTRIBUTE_UNUSED = {
  1440. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1441. };
  1442. static const CGEN_IFMT ifmt_bbeq16r ATTRIBUTE_UNUSED = {
  1443. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1444. };
  1445. static const CGEN_IFMT ifmt_bbeq32r ATTRIBUTE_UNUSED = {
  1446. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1447. };
  1448. static const CGEN_IFMT ifmt_bbne16r ATTRIBUTE_UNUSED = {
  1449. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1450. };
  1451. static const CGEN_IFMT ifmt_bbne32r ATTRIBUTE_UNUSED = {
  1452. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1453. };
  1454. static const CGEN_IFMT ifmt_bblt16r ATTRIBUTE_UNUSED = {
  1455. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1456. };
  1457. static const CGEN_IFMT ifmt_bblt32r ATTRIBUTE_UNUSED = {
  1458. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1459. };
  1460. static const CGEN_IFMT ifmt_bblte16r ATTRIBUTE_UNUSED = {
  1461. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1462. };
  1463. static const CGEN_IFMT ifmt_bblte32r ATTRIBUTE_UNUSED = {
  1464. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1465. };
  1466. static const CGEN_IFMT ifmt_b16r ATTRIBUTE_UNUSED = {
  1467. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1468. };
  1469. static const CGEN_IFMT ifmt_b32r ATTRIBUTE_UNUSED = {
  1470. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1471. };
  1472. static const CGEN_IFMT ifmt_bl16r ATTRIBUTE_UNUSED = {
  1473. 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
  1474. };
  1475. static const CGEN_IFMT ifmt_blr ATTRIBUTE_UNUSED = {
  1476. 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
  1477. };
  1478. static const CGEN_IFMT ifmt_ldrbx ATTRIBUTE_UNUSED = {
  1479. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1480. };
  1481. static const CGEN_IFMT ifmt_ldrbp ATTRIBUTE_UNUSED = {
  1482. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1483. };
  1484. static const CGEN_IFMT ifmt_ldrbd ATTRIBUTE_UNUSED = {
  1485. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1486. };
  1487. static const CGEN_IFMT ifmt_ldrbdpm ATTRIBUTE_UNUSED = {
  1488. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1489. };
  1490. static const CGEN_IFMT ifmt_ldrbds0 ATTRIBUTE_UNUSED = {
  1491. 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
  1492. };
  1493. static const CGEN_IFMT ifmt_ldrbdl0 ATTRIBUTE_UNUSED = {
  1494. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1495. };
  1496. static const CGEN_IFMT ifmt_ldrbdl0_l ATTRIBUTE_UNUSED = {
  1497. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1498. };
  1499. static const CGEN_IFMT ifmt_ldrhx ATTRIBUTE_UNUSED = {
  1500. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1501. };
  1502. static const CGEN_IFMT ifmt_ldrhp ATTRIBUTE_UNUSED = {
  1503. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1504. };
  1505. static const CGEN_IFMT ifmt_ldrhd ATTRIBUTE_UNUSED = {
  1506. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1507. };
  1508. static const CGEN_IFMT ifmt_ldrhdpm ATTRIBUTE_UNUSED = {
  1509. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1510. };
  1511. static const CGEN_IFMT ifmt_ldrhds0 ATTRIBUTE_UNUSED = {
  1512. 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
  1513. };
  1514. static const CGEN_IFMT ifmt_ldrhdl0 ATTRIBUTE_UNUSED = {
  1515. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1516. };
  1517. static const CGEN_IFMT ifmt_ldrhdl0_l ATTRIBUTE_UNUSED = {
  1518. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1519. };
  1520. static const CGEN_IFMT ifmt_ldrx ATTRIBUTE_UNUSED = {
  1521. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1522. };
  1523. static const CGEN_IFMT ifmt_ldrp ATTRIBUTE_UNUSED = {
  1524. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1525. };
  1526. static const CGEN_IFMT ifmt_ldrd ATTRIBUTE_UNUSED = {
  1527. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1528. };
  1529. static const CGEN_IFMT ifmt_ldrdpm ATTRIBUTE_UNUSED = {
  1530. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1531. };
  1532. static const CGEN_IFMT ifmt_ldrds0 ATTRIBUTE_UNUSED = {
  1533. 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
  1534. };
  1535. static const CGEN_IFMT ifmt_ldrdl0 ATTRIBUTE_UNUSED = {
  1536. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1537. };
  1538. static const CGEN_IFMT ifmt_ldrdl0_l ATTRIBUTE_UNUSED = {
  1539. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1540. };
  1541. static const CGEN_IFMT ifmt_ldrdx ATTRIBUTE_UNUSED = {
  1542. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1543. };
  1544. static const CGEN_IFMT ifmt_ldrdp ATTRIBUTE_UNUSED = {
  1545. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1546. };
  1547. static const CGEN_IFMT ifmt_ldrdd ATTRIBUTE_UNUSED = {
  1548. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1549. };
  1550. static const CGEN_IFMT ifmt_ldrddpm ATTRIBUTE_UNUSED = {
  1551. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1552. };
  1553. static const CGEN_IFMT ifmt_ldrdds0 ATTRIBUTE_UNUSED = {
  1554. 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
  1555. };
  1556. static const CGEN_IFMT ifmt_ldrddl0 ATTRIBUTE_UNUSED = {
  1557. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1558. };
  1559. static const CGEN_IFMT ifmt_ldrddl0_l ATTRIBUTE_UNUSED = {
  1560. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1561. };
  1562. static const CGEN_IFMT ifmt_testsetbt_l ATTRIBUTE_UNUSED = {
  1563. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1564. };
  1565. static const CGEN_IFMT ifmt_testsetht_l ATTRIBUTE_UNUSED = {
  1566. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1567. };
  1568. static const CGEN_IFMT ifmt_testsett_l ATTRIBUTE_UNUSED = {
  1569. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1570. };
  1571. static const CGEN_IFMT ifmt_strbx_l ATTRIBUTE_UNUSED = {
  1572. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1573. };
  1574. static const CGEN_IFMT ifmt_strbp_l ATTRIBUTE_UNUSED = {
  1575. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1576. };
  1577. static const CGEN_IFMT ifmt_strbd_l ATTRIBUTE_UNUSED = {
  1578. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1579. };
  1580. static const CGEN_IFMT ifmt_strbdpm_l ATTRIBUTE_UNUSED = {
  1581. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1582. };
  1583. static const CGEN_IFMT ifmt_strbds0 ATTRIBUTE_UNUSED = {
  1584. 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
  1585. };
  1586. static const CGEN_IFMT ifmt_strbdl0 ATTRIBUTE_UNUSED = {
  1587. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1588. };
  1589. static const CGEN_IFMT ifmt_strbdl0_l ATTRIBUTE_UNUSED = {
  1590. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1591. };
  1592. static const CGEN_IFMT ifmt_strhx_l ATTRIBUTE_UNUSED = {
  1593. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1594. };
  1595. static const CGEN_IFMT ifmt_strhp_l ATTRIBUTE_UNUSED = {
  1596. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1597. };
  1598. static const CGEN_IFMT ifmt_strhd_l ATTRIBUTE_UNUSED = {
  1599. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1600. };
  1601. static const CGEN_IFMT ifmt_strhdpm_l ATTRIBUTE_UNUSED = {
  1602. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1603. };
  1604. static const CGEN_IFMT ifmt_strhds0 ATTRIBUTE_UNUSED = {
  1605. 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
  1606. };
  1607. static const CGEN_IFMT ifmt_strhdl0 ATTRIBUTE_UNUSED = {
  1608. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1609. };
  1610. static const CGEN_IFMT ifmt_strhdl0_l ATTRIBUTE_UNUSED = {
  1611. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1612. };
  1613. static const CGEN_IFMT ifmt_strx_l ATTRIBUTE_UNUSED = {
  1614. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1615. };
  1616. static const CGEN_IFMT ifmt_strp_l ATTRIBUTE_UNUSED = {
  1617. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1618. };
  1619. static const CGEN_IFMT ifmt_strd_l ATTRIBUTE_UNUSED = {
  1620. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1621. };
  1622. static const CGEN_IFMT ifmt_strdpm_l ATTRIBUTE_UNUSED = {
  1623. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1624. };
  1625. static const CGEN_IFMT ifmt_strds0 ATTRIBUTE_UNUSED = {
  1626. 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
  1627. };
  1628. static const CGEN_IFMT ifmt_strdl0 ATTRIBUTE_UNUSED = {
  1629. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1630. };
  1631. static const CGEN_IFMT ifmt_strdl0_l ATTRIBUTE_UNUSED = {
  1632. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1633. };
  1634. static const CGEN_IFMT ifmt_strdx_l ATTRIBUTE_UNUSED = {
  1635. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1636. };
  1637. static const CGEN_IFMT ifmt_strdp_l ATTRIBUTE_UNUSED = {
  1638. 32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
  1639. };
  1640. static const CGEN_IFMT ifmt_strdd_l ATTRIBUTE_UNUSED = {
  1641. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1642. };
  1643. static const CGEN_IFMT ifmt_strddpm_l ATTRIBUTE_UNUSED = {
  1644. 32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1645. };
  1646. static const CGEN_IFMT ifmt_strdds0 ATTRIBUTE_UNUSED = {
  1647. 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
  1648. };
  1649. static const CGEN_IFMT ifmt_strddl0 ATTRIBUTE_UNUSED = {
  1650. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1651. };
  1652. static const CGEN_IFMT ifmt_strddl0_l ATTRIBUTE_UNUSED = {
  1653. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
  1654. };
  1655. static const CGEN_IFMT ifmt_cmov_lEQ ATTRIBUTE_UNUSED = {
  1656. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1657. };
  1658. static const CGEN_IFMT ifmt_cmov_lNE ATTRIBUTE_UNUSED = {
  1659. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1660. };
  1661. static const CGEN_IFMT ifmt_cmov_lGTU ATTRIBUTE_UNUSED = {
  1662. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1663. };
  1664. static const CGEN_IFMT ifmt_cmov_lGTEU ATTRIBUTE_UNUSED = {
  1665. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1666. };
  1667. static const CGEN_IFMT ifmt_cmov_lLTEU ATTRIBUTE_UNUSED = {
  1668. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1669. };
  1670. static const CGEN_IFMT ifmt_cmov_lLTU ATTRIBUTE_UNUSED = {
  1671. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1672. };
  1673. static const CGEN_IFMT ifmt_cmov_lGT ATTRIBUTE_UNUSED = {
  1674. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1675. };
  1676. static const CGEN_IFMT ifmt_cmov_lGTE ATTRIBUTE_UNUSED = {
  1677. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1678. };
  1679. static const CGEN_IFMT ifmt_cmov_lLT ATTRIBUTE_UNUSED = {
  1680. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1681. };
  1682. static const CGEN_IFMT ifmt_cmov_lLTE ATTRIBUTE_UNUSED = {
  1683. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1684. };
  1685. static const CGEN_IFMT ifmt_cmov_lB ATTRIBUTE_UNUSED = {
  1686. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1687. };
  1688. static const CGEN_IFMT ifmt_cmov_lBEQ ATTRIBUTE_UNUSED = {
  1689. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1690. };
  1691. static const CGEN_IFMT ifmt_cmov_lBNE ATTRIBUTE_UNUSED = {
  1692. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1693. };
  1694. static const CGEN_IFMT ifmt_cmov_lBLT ATTRIBUTE_UNUSED = {
  1695. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1696. };
  1697. static const CGEN_IFMT ifmt_cmov_lBLTE ATTRIBUTE_UNUSED = {
  1698. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
  1699. };
  1700. static const CGEN_IFMT ifmt_movts_l6 ATTRIBUTE_UNUSED = {
  1701. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
  1702. };
  1703. static const CGEN_IFMT ifmt_movts_ldma ATTRIBUTE_UNUSED = {
  1704. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
  1705. };
  1706. static const CGEN_IFMT ifmt_movts_lmem ATTRIBUTE_UNUSED = {
  1707. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
  1708. };
  1709. static const CGEN_IFMT ifmt_movts_lmesh ATTRIBUTE_UNUSED = {
  1710. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
  1711. };
  1712. static const CGEN_IFMT ifmt_movfs_l6 ATTRIBUTE_UNUSED = {
  1713. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
  1714. };
  1715. static const CGEN_IFMT ifmt_movfs_ldma ATTRIBUTE_UNUSED = {
  1716. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
  1717. };
  1718. static const CGEN_IFMT ifmt_movfs_lmem ATTRIBUTE_UNUSED = {
  1719. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
  1720. };
  1721. static const CGEN_IFMT ifmt_movfs_lmesh ATTRIBUTE_UNUSED = {
  1722. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
  1723. };
  1724. static const CGEN_IFMT ifmt_add_l ATTRIBUTE_UNUSED = {
  1725. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1726. };
  1727. static const CGEN_IFMT ifmt_sub_l ATTRIBUTE_UNUSED = {
  1728. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1729. };
  1730. static const CGEN_IFMT ifmt_and_l ATTRIBUTE_UNUSED = {
  1731. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1732. };
  1733. static const CGEN_IFMT ifmt_orr_l ATTRIBUTE_UNUSED = {
  1734. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1735. };
  1736. static const CGEN_IFMT ifmt_eor_l ATTRIBUTE_UNUSED = {
  1737. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1738. };
  1739. static const CGEN_IFMT ifmt_addir ATTRIBUTE_UNUSED = {
  1740. 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { 0 } }
  1741. };
  1742. static const CGEN_IFMT ifmt_addi32r ATTRIBUTE_UNUSED = {
  1743. 32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
  1744. };
  1745. static const CGEN_IFMT ifmt_addi32m ATTRIBUTE_UNUSED = {
  1746. 32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
  1747. };
  1748. static const CGEN_IFMT ifmt_subir ATTRIBUTE_UNUSED = {
  1749. 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { 0 } }
  1750. };
  1751. static const CGEN_IFMT ifmt_subi32r ATTRIBUTE_UNUSED = {
  1752. 32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
  1753. };
  1754. static const CGEN_IFMT ifmt_subi32m ATTRIBUTE_UNUSED = {
  1755. 32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
  1756. };
  1757. static const CGEN_IFMT ifmt_asr_l ATTRIBUTE_UNUSED = {
  1758. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1759. };
  1760. static const CGEN_IFMT ifmt_lsr_l ATTRIBUTE_UNUSED = {
  1761. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1762. };
  1763. static const CGEN_IFMT ifmt_lsl_l ATTRIBUTE_UNUSED = {
  1764. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1765. };
  1766. static const CGEN_IFMT ifmt_lsri32_l ATTRIBUTE_UNUSED = {
  1767. 32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
  1768. };
  1769. static const CGEN_IFMT ifmt_lsli32_l ATTRIBUTE_UNUSED = {
  1770. 32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
  1771. };
  1772. static const CGEN_IFMT ifmt_asri32_l ATTRIBUTE_UNUSED = {
  1773. 32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
  1774. };
  1775. static const CGEN_IFMT ifmt_bitrl ATTRIBUTE_UNUSED = {
  1776. 32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
  1777. };
  1778. static const CGEN_IFMT ifmt_fext_l ATTRIBUTE_UNUSED = {
  1779. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1780. };
  1781. static const CGEN_IFMT ifmt_fdep_l ATTRIBUTE_UNUSED = {
  1782. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1783. };
  1784. static const CGEN_IFMT ifmt_lfsr_l ATTRIBUTE_UNUSED = {
  1785. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1786. };
  1787. static const CGEN_IFMT ifmt_mov8r ATTRIBUTE_UNUSED = {
  1788. 16, 16, 0x1f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_RD) }, { F (F_IMM8) }, { 0 } }
  1789. };
  1790. static const CGEN_IFMT ifmt_mov16r ATTRIBUTE_UNUSED = {
  1791. 32, 32, 0x100f001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_28_1) }, { F (F_RD6) }, { F (F_IMM16) }, { 0 } }
  1792. };
  1793. static const CGEN_IFMT ifmt_movtl ATTRIBUTE_UNUSED = {
  1794. 32, 32, 0x100f001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_28_1) }, { F (F_RD6) }, { F (F_IMM16) }, { 0 } }
  1795. };
  1796. static const CGEN_IFMT ifmt_i_addf16 ATTRIBUTE_UNUSED = {
  1797. 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
  1798. };
  1799. static const CGEN_IFMT ifmt_f_addf32_l ATTRIBUTE_UNUSED = {
  1800. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1801. };
  1802. static const CGEN_IFMT ifmt_i_addf32 ATTRIBUTE_UNUSED = {
  1803. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1804. };
  1805. static const CGEN_IFMT ifmt_i_addf32_l ATTRIBUTE_UNUSED = {
  1806. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1807. };
  1808. static const CGEN_IFMT ifmt_i_subf16 ATTRIBUTE_UNUSED = {
  1809. 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
  1810. };
  1811. static const CGEN_IFMT ifmt_f_subf32_l ATTRIBUTE_UNUSED = {
  1812. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1813. };
  1814. static const CGEN_IFMT ifmt_i_subf32 ATTRIBUTE_UNUSED = {
  1815. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1816. };
  1817. static const CGEN_IFMT ifmt_i_subf32_l ATTRIBUTE_UNUSED = {
  1818. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1819. };
  1820. static const CGEN_IFMT ifmt_i_mulf16 ATTRIBUTE_UNUSED = {
  1821. 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
  1822. };
  1823. static const CGEN_IFMT ifmt_f_mulf32_l ATTRIBUTE_UNUSED = {
  1824. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1825. };
  1826. static const CGEN_IFMT ifmt_i_mulf32 ATTRIBUTE_UNUSED = {
  1827. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1828. };
  1829. static const CGEN_IFMT ifmt_i_mulf32_l ATTRIBUTE_UNUSED = {
  1830. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1831. };
  1832. static const CGEN_IFMT ifmt_i_maddf16 ATTRIBUTE_UNUSED = {
  1833. 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
  1834. };
  1835. static const CGEN_IFMT ifmt_f_maddf32_l ATTRIBUTE_UNUSED = {
  1836. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1837. };
  1838. static const CGEN_IFMT ifmt_i_maddf32 ATTRIBUTE_UNUSED = {
  1839. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1840. };
  1841. static const CGEN_IFMT ifmt_i_maddf32_l ATTRIBUTE_UNUSED = {
  1842. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1843. };
  1844. static const CGEN_IFMT ifmt_i_msubf16 ATTRIBUTE_UNUSED = {
  1845. 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
  1846. };
  1847. static const CGEN_IFMT ifmt_f_msubf32_l ATTRIBUTE_UNUSED = {
  1848. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1849. };
  1850. static const CGEN_IFMT ifmt_i_msubf32 ATTRIBUTE_UNUSED = {
  1851. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1852. };
  1853. static const CGEN_IFMT ifmt_i_msubf32_l ATTRIBUTE_UNUSED = {
  1854. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
  1855. };
  1856. static const CGEN_IFMT ifmt_f_absf32_l ATTRIBUTE_UNUSED = {
  1857. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
  1858. };
  1859. static const CGEN_IFMT ifmt_f_loatf32_l ATTRIBUTE_UNUSED = {
  1860. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
  1861. };
  1862. static const CGEN_IFMT ifmt_f_ixf32_l ATTRIBUTE_UNUSED = {
  1863. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
  1864. };
  1865. static const CGEN_IFMT ifmt_f_recipf32_l ATTRIBUTE_UNUSED = {
  1866. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
  1867. };
  1868. static const CGEN_IFMT ifmt_f_sqrtf32_l ATTRIBUTE_UNUSED = {
  1869. 32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
  1870. };
  1871. #undef F
  1872. /* Each non-simple macro entry points to an array of expansion possibilities. */
  1873. #define A(a) (1 << CGEN_INSN_##a)
  1874. #define OPERAND(op) EPIPHANY_OPERAND_##op
  1875. #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
  1876. #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
  1877. /* The macro instruction table. */
  1878. static const CGEN_IBASE epiphany_cgen_macro_insn_table[] =
  1879. {
  1880. /* beq $simm8 */
  1881. {
  1882. -1, "beq16r", "beq", 16,
  1883. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1884. },
  1885. /* beq $simm24 */
  1886. {
  1887. -1, "beq32r", "beq", 32,
  1888. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1889. },
  1890. /* bne $simm8 */
  1891. {
  1892. -1, "bne16r", "bne", 16,
  1893. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1894. },
  1895. /* bne $simm24 */
  1896. {
  1897. -1, "bne32r", "bne", 32,
  1898. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1899. },
  1900. /* bgtu $simm8 */
  1901. {
  1902. -1, "bgtu16r", "bgtu", 16,
  1903. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1904. },
  1905. /* bgtu $simm24 */
  1906. {
  1907. -1, "bgtu32r", "bgtu", 32,
  1908. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1909. },
  1910. /* bgteu $simm8 */
  1911. {
  1912. -1, "bgteu16r", "bgteu", 16,
  1913. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1914. },
  1915. /* bgteu $simm24 */
  1916. {
  1917. -1, "bgteu32r", "bgteu", 32,
  1918. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1919. },
  1920. /* blteu $simm8 */
  1921. {
  1922. -1, "blteu16r", "blteu", 16,
  1923. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1924. },
  1925. /* blteu $simm24 */
  1926. {
  1927. -1, "blteu32r", "blteu", 32,
  1928. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1929. },
  1930. /* bltu $simm8 */
  1931. {
  1932. -1, "bltu16r", "bltu", 16,
  1933. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1934. },
  1935. /* bltu $simm24 */
  1936. {
  1937. -1, "bltu32r", "bltu", 32,
  1938. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1939. },
  1940. /* bgt $simm8 */
  1941. {
  1942. -1, "bgt16r", "bgt", 16,
  1943. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1944. },
  1945. /* bgt $simm24 */
  1946. {
  1947. -1, "bgt32r", "bgt", 32,
  1948. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1949. },
  1950. /* bgte $simm8 */
  1951. {
  1952. -1, "bgte16r", "bgte", 16,
  1953. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1954. },
  1955. /* bgte $simm24 */
  1956. {
  1957. -1, "bgte32r", "bgte", 32,
  1958. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1959. },
  1960. /* blt $simm8 */
  1961. {
  1962. -1, "blt16r", "blt", 16,
  1963. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1964. },
  1965. /* blt $simm24 */
  1966. {
  1967. -1, "blt32r", "blt", 32,
  1968. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1969. },
  1970. /* blte $simm8 */
  1971. {
  1972. -1, "blte16r", "blte", 16,
  1973. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1974. },
  1975. /* blte $simm24 */
  1976. {
  1977. -1, "blte32r", "blte", 32,
  1978. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1979. },
  1980. /* bbeq $simm8 */
  1981. {
  1982. -1, "bbeq16r", "bbeq", 16,
  1983. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1984. },
  1985. /* bbeq $simm24 */
  1986. {
  1987. -1, "bbeq32r", "bbeq", 32,
  1988. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1989. },
  1990. /* bbne $simm8 */
  1991. {
  1992. -1, "bbne16r", "bbne", 16,
  1993. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1994. },
  1995. /* bbne $simm24 */
  1996. {
  1997. -1, "bbne32r", "bbne", 32,
  1998. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  1999. },
  2000. /* bblt $simm8 */
  2001. {
  2002. -1, "bblt16r", "bblt", 16,
  2003. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2004. },
  2005. /* bblt $simm24 */
  2006. {
  2007. -1, "bblt32r", "bblt", 32,
  2008. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2009. },
  2010. /* bblte $simm8 */
  2011. {
  2012. -1, "bblte16r", "bblte", 16,
  2013. { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2014. },
  2015. /* bblte $simm24 */
  2016. {
  2017. -1, "bblte32r", "bblte", 32,
  2018. { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2019. },
  2020. /* b $simm8 */
  2021. {
  2022. -1, "b16r", "b", 16,
  2023. { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2024. },
  2025. /* b $simm24 */
  2026. {
  2027. -1, "b32r", "b", 32,
  2028. { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2029. },
  2030. /* bl $simm8 */
  2031. {
  2032. -1, "bl16r", "bl", 16,
  2033. { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2034. },
  2035. /* bl $simm24 */
  2036. {
  2037. -1, "blr", "bl", 32,
  2038. { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2039. },
  2040. /* ldrb.l $rd6,[$rn6,$direction$rm6] */
  2041. {
  2042. -1, "ldrbx", "ldrb.l", 32,
  2043. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2044. },
  2045. /* ldrb.l $rd6,[$rn6],$direction$rm6 */
  2046. {
  2047. -1, "ldrbp", "ldrb.l", 32,
  2048. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2049. },
  2050. /* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
  2051. {
  2052. -1, "ldrbd", "ldrb.l", 32,
  2053. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2054. },
  2055. /* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
  2056. {
  2057. -1, "ldrbdpm", "ldrb.l", 32,
  2058. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2059. },
  2060. /* ldrb $rd,[$rn] */
  2061. {
  2062. -1, "ldrbds0", "ldrb", 16,
  2063. { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2064. },
  2065. /* ldrb $rd6,[$rn6] */
  2066. {
  2067. -1, "ldrbdl0", "ldrb", 32,
  2068. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2069. },
  2070. /* ldrb.l $rd6,[$rn6] */
  2071. {
  2072. -1, "ldrbdl0.l", "ldrb.l", 32,
  2073. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2074. },
  2075. /* ldrh.l $rd6,[$rn6,$direction$rm6] */
  2076. {
  2077. -1, "ldrhx", "ldrh.l", 32,
  2078. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2079. },
  2080. /* ldrh.l $rd6,[$rn6],$direction$rm6 */
  2081. {
  2082. -1, "ldrhp", "ldrh.l", 32,
  2083. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2084. },
  2085. /* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
  2086. {
  2087. -1, "ldrhd", "ldrh.l", 32,
  2088. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2089. },
  2090. /* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
  2091. {
  2092. -1, "ldrhdpm", "ldrh.l", 32,
  2093. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2094. },
  2095. /* ldrh $rd,[$rn] */
  2096. {
  2097. -1, "ldrhds0", "ldrh", 16,
  2098. { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2099. },
  2100. /* ldrh $rd6,[$rn6] */
  2101. {
  2102. -1, "ldrhdl0", "ldrh", 32,
  2103. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2104. },
  2105. /* ldrh.l $rd6,[$rn6] */
  2106. {
  2107. -1, "ldrhdl0.l", "ldrh.l", 32,
  2108. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2109. },
  2110. /* ldr.l $rd6,[$rn6,$direction$rm6] */
  2111. {
  2112. -1, "ldrx", "ldr.l", 32,
  2113. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2114. },
  2115. /* ldr.l $rd6,[$rn6],$direction$rm6 */
  2116. {
  2117. -1, "ldrp", "ldr.l", 32,
  2118. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2119. },
  2120. /* ldr.l $rd6,[$rn6,$dpmi$disp11] */
  2121. {
  2122. -1, "ldrd", "ldr.l", 32,
  2123. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2124. },
  2125. /* ldr.l $rd6,[$rn6],$dpmi$disp11 */
  2126. {
  2127. -1, "ldrdpm", "ldr.l", 32,
  2128. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2129. },
  2130. /* ldr $rd,[$rn] */
  2131. {
  2132. -1, "ldrds0", "ldr", 16,
  2133. { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2134. },
  2135. /* ldr $rd6,[$rn6] */
  2136. {
  2137. -1, "ldrdl0", "ldr", 32,
  2138. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2139. },
  2140. /* ldr.l $rd6,[$rn6] */
  2141. {
  2142. -1, "ldrdl0.l", "ldr.l", 32,
  2143. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2144. },
  2145. /* ldrd.l $rd6,[$rn6,$direction$rm6] */
  2146. {
  2147. -1, "ldrdx", "ldrd.l", 32,
  2148. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2149. },
  2150. /* ldrd.l $rd6,[$rn6],$direction$rm6 */
  2151. {
  2152. -1, "ldrdp", "ldrd.l", 32,
  2153. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2154. },
  2155. /* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
  2156. {
  2157. -1, "ldrdd", "ldrd.l", 32,
  2158. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2159. },
  2160. /* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
  2161. {
  2162. -1, "ldrddpm", "ldrd.l", 32,
  2163. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2164. },
  2165. /* ldrd $rd,[$rn] */
  2166. {
  2167. -1, "ldrdds0", "ldrd", 16,
  2168. { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2169. },
  2170. /* ldrd $rd6,[$rn6] */
  2171. {
  2172. -1, "ldrddl0", "ldrd", 32,
  2173. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2174. },
  2175. /* ldrd.l $rd6,[$rn6] */
  2176. {
  2177. -1, "ldrddl0.l", "ldrd.l", 32,
  2178. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2179. },
  2180. /* testsetb.l $rd6,[$rn6,$direction$rm6] */
  2181. {
  2182. -1, "testsetbt.l", "testsetb.l", 32,
  2183. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2184. },
  2185. /* testseth.l $rd6,[$rn6,$direction$rm6] */
  2186. {
  2187. -1, "testsetht.l", "testseth.l", 32,
  2188. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2189. },
  2190. /* testset.l $rd6,[$rn6,$direction$rm6] */
  2191. {
  2192. -1, "testsett.l", "testset.l", 32,
  2193. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2194. },
  2195. /* strb.l $rd6,[$rn6,$direction$rm6] */
  2196. {
  2197. -1, "strbx.l", "strb.l", 32,
  2198. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2199. },
  2200. /* strb.l $rd6,[$rn6],$direction$rm6 */
  2201. {
  2202. -1, "strbp.l", "strb.l", 32,
  2203. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2204. },
  2205. /* strb.l $rd6,[$rn6,$dpmi$disp11] */
  2206. {
  2207. -1, "strbd.l", "strb.l", 32,
  2208. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2209. },
  2210. /* strb.l $rd6,[$rn6],$dpmi$disp11 */
  2211. {
  2212. -1, "strbdpm.l", "strb.l", 32,
  2213. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2214. },
  2215. /* strb $rd,[$rn] */
  2216. {
  2217. -1, "strbds0", "strb", 16,
  2218. { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2219. },
  2220. /* strb $rd6,[$rn6] */
  2221. {
  2222. -1, "strbdl0", "strb", 32,
  2223. { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2224. },
  2225. /* strb.l $rd6,[$rn6] */
  2226. {
  2227. -1, "strbdl0.l", "strb.l", 32,
  2228. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2229. },
  2230. /* strh.l $rd6,[$rn6,$direction$rm6] */
  2231. {
  2232. -1, "strhx.l", "strh.l", 32,
  2233. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2234. },
  2235. /* strh.l $rd6,[$rn6],$direction$rm6 */
  2236. {
  2237. -1, "strhp.l", "strh.l", 32,
  2238. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2239. },
  2240. /* strh.l $rd6,[$rn6,$dpmi$disp11] */
  2241. {
  2242. -1, "strhd.l", "strh.l", 32,
  2243. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2244. },
  2245. /* strh.l $rd6,[$rn6],$dpmi$disp11 */
  2246. {
  2247. -1, "strhdpm.l", "strh.l", 32,
  2248. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2249. },
  2250. /* strh $rd,[$rn] */
  2251. {
  2252. -1, "strhds0", "strh", 16,
  2253. { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2254. },
  2255. /* strh $rd6,[$rn6] */
  2256. {
  2257. -1, "strhdl0", "strh", 32,
  2258. { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2259. },
  2260. /* strh.l $rd6,[$rn6] */
  2261. {
  2262. -1, "strhdl0.l", "strh.l", 32,
  2263. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2264. },
  2265. /* str.l $rd6,[$rn6,$direction$rm6] */
  2266. {
  2267. -1, "strx.l", "str.l", 32,
  2268. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2269. },
  2270. /* str.l $rd6,[$rn6],$direction$rm6 */
  2271. {
  2272. -1, "strp.l", "str.l", 32,
  2273. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2274. },
  2275. /* str.l $rd6,[$rn6,$dpmi$disp11] */
  2276. {
  2277. -1, "strd.l", "str.l", 32,
  2278. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2279. },
  2280. /* str.l $rd6,[$rn6],$dpmi$disp11 */
  2281. {
  2282. -1, "strdpm.l", "str.l", 32,
  2283. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2284. },
  2285. /* str $rd,[$rn] */
  2286. {
  2287. -1, "strds0", "str", 16,
  2288. { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2289. },
  2290. /* str $rd6,[$rn6] */
  2291. {
  2292. -1, "strdl0", "str", 32,
  2293. { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2294. },
  2295. /* str.l $rd6,[$rn6] */
  2296. {
  2297. -1, "strdl0.l", "str.l", 32,
  2298. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2299. },
  2300. /* strd.l $rd6,[$rn6,$direction$rm6] */
  2301. {
  2302. -1, "strdx.l", "strd.l", 32,
  2303. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2304. },
  2305. /* strd.l $rd6,[$rn6],$direction$rm6 */
  2306. {
  2307. -1, "strdp.l", "strd.l", 32,
  2308. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2309. },
  2310. /* strd.l $rd6,[$rn6,$dpmi$disp11] */
  2311. {
  2312. -1, "strdd.l", "strd.l", 32,
  2313. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2314. },
  2315. /* strd.l $rd6,[$rn6],$dpmi$disp11 */
  2316. {
  2317. -1, "strddpm.l", "strd.l", 32,
  2318. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2319. },
  2320. /* strd $rd,[$rn] */
  2321. {
  2322. -1, "strdds0", "strd", 16,
  2323. { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2324. },
  2325. /* strd $rd6,[$rn6] */
  2326. {
  2327. -1, "strddl0", "strd", 32,
  2328. { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2329. },
  2330. /* strd.l $rd6,[$rn6] */
  2331. {
  2332. -1, "strddl0.l", "strd.l", 32,
  2333. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2334. },
  2335. /* moveq.l $rd6,$rn6 */
  2336. {
  2337. -1, "cmov.lEQ", "moveq.l", 32,
  2338. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2339. },
  2340. /* movne.l $rd6,$rn6 */
  2341. {
  2342. -1, "cmov.lNE", "movne.l", 32,
  2343. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2344. },
  2345. /* movgtu.l $rd6,$rn6 */
  2346. {
  2347. -1, "cmov.lGTU", "movgtu.l", 32,
  2348. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2349. },
  2350. /* movgteu.l $rd6,$rn6 */
  2351. {
  2352. -1, "cmov.lGTEU", "movgteu.l", 32,
  2353. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2354. },
  2355. /* movlteu.l $rd6,$rn6 */
  2356. {
  2357. -1, "cmov.lLTEU", "movlteu.l", 32,
  2358. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2359. },
  2360. /* movltu.l $rd6,$rn6 */
  2361. {
  2362. -1, "cmov.lLTU", "movltu.l", 32,
  2363. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2364. },
  2365. /* movgt.l $rd6,$rn6 */
  2366. {
  2367. -1, "cmov.lGT", "movgt.l", 32,
  2368. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2369. },
  2370. /* movgte.l $rd6,$rn6 */
  2371. {
  2372. -1, "cmov.lGTE", "movgte.l", 32,
  2373. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2374. },
  2375. /* movlt.l $rd6,$rn6 */
  2376. {
  2377. -1, "cmov.lLT", "movlt.l", 32,
  2378. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2379. },
  2380. /* movlte.l $rd6,$rn6 */
  2381. {
  2382. -1, "cmov.lLTE", "movlte.l", 32,
  2383. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2384. },
  2385. /* mov.l $rd6,$rn6 */
  2386. {
  2387. -1, "cmov.lB", "mov.l", 32,
  2388. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2389. },
  2390. /* movbeq.l $rd6,$rn6 */
  2391. {
  2392. -1, "cmov.lBEQ", "movbeq.l", 32,
  2393. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2394. },
  2395. /* movbne.l $rd6,$rn6 */
  2396. {
  2397. -1, "cmov.lBNE", "movbne.l", 32,
  2398. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2399. },
  2400. /* movblt.l $rd6,$rn6 */
  2401. {
  2402. -1, "cmov.lBLT", "movblt.l", 32,
  2403. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2404. },
  2405. /* movblte.l $rd6,$rn6 */
  2406. {
  2407. -1, "cmov.lBLTE", "movblte.l", 32,
  2408. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2409. },
  2410. /* movts.l $sn6,$rd6 */
  2411. {
  2412. -1, "movts.l6", "movts.l", 32,
  2413. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2414. },
  2415. /* movts.l $sndma,$rd6 */
  2416. {
  2417. -1, "movts.ldma", "movts.l", 32,
  2418. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2419. },
  2420. /* movts.l $snmem,$rd6 */
  2421. {
  2422. -1, "movts.lmem", "movts.l", 32,
  2423. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2424. },
  2425. /* movts.l $snmesh,$rd6 */
  2426. {
  2427. -1, "movts.lmesh", "movts.l", 32,
  2428. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2429. },
  2430. /* movfs.l $rd6,$sn6 */
  2431. {
  2432. -1, "movfs.l6", "movfs.l", 32,
  2433. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2434. },
  2435. /* movfs.l $rd6,$sndma */
  2436. {
  2437. -1, "movfs.ldma", "movfs.l", 32,
  2438. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2439. },
  2440. /* movfs.l $rd6,$snmem */
  2441. {
  2442. -1, "movfs.lmem", "movfs.l", 32,
  2443. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2444. },
  2445. /* movfs.l $rd6,$snmesh */
  2446. {
  2447. -1, "movfs.lmesh", "movfs.l", 32,
  2448. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2449. },
  2450. /* add.l $rd6,$rn6,$rm6 */
  2451. {
  2452. -1, "add.l", "add.l", 32,
  2453. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2454. },
  2455. /* sub.l $rd6,$rn6,$rm6 */
  2456. {
  2457. -1, "sub.l", "sub.l", 32,
  2458. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2459. },
  2460. /* and.l $rd6,$rn6,$rm6 */
  2461. {
  2462. -1, "and.l", "and.l", 32,
  2463. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2464. },
  2465. /* orr.l $rd6,$rn6,$rm6 */
  2466. {
  2467. -1, "orr.l", "orr.l", 32,
  2468. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2469. },
  2470. /* eor.l $rd6,$rn6,$rm6 */
  2471. {
  2472. -1, "eor.l", "eor.l", 32,
  2473. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2474. },
  2475. /* add $rd,$rn,$simm3 */
  2476. {
  2477. -1, "addir", "add", 16,
  2478. { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2479. },
  2480. /* add $rd6,$rn6,$simm11 */
  2481. {
  2482. -1, "addi32r", "add", 32,
  2483. { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2484. },
  2485. /* add $rd6,$rn6,$simm11 */
  2486. {
  2487. -1, "addi32m", "add", 32,
  2488. { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2489. },
  2490. /* sub $rd,$rn,$simm3 */
  2491. {
  2492. -1, "subir", "sub", 16,
  2493. { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2494. },
  2495. /* sub $rd6,$rn6,$simm11 */
  2496. {
  2497. -1, "subi32r", "sub", 32,
  2498. { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2499. },
  2500. /* sub $rd6,$rn6,$simm11 */
  2501. {
  2502. -1, "subi32m", "sub", 32,
  2503. { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2504. },
  2505. /* asr.l $rd6,$rn6,$rm6 */
  2506. {
  2507. -1, "asr.l", "asr.l", 32,
  2508. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2509. },
  2510. /* lsr.l $rd6,$rn6,$rm6 */
  2511. {
  2512. -1, "lsr.l", "lsr.l", 32,
  2513. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2514. },
  2515. /* lsl.l $rd6,$rn6,$rm6 */
  2516. {
  2517. -1, "lsl.l", "lsl.l", 32,
  2518. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2519. },
  2520. /* lsr.l $rd6,$rn6,$shift */
  2521. {
  2522. -1, "lsri32.l", "lsr.l", 32,
  2523. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2524. },
  2525. /* lsl.l $rd6,$rn6,$shift */
  2526. {
  2527. -1, "lsli32.l", "lsl.l", 32,
  2528. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2529. },
  2530. /* asr.l $rd6,$rn6,$shift */
  2531. {
  2532. -1, "asri32.l", "asr.l", 32,
  2533. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2534. },
  2535. /* bitr.l $rd6,$rn6 */
  2536. {
  2537. -1, "bitrl", "bitr.l", 32,
  2538. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2539. },
  2540. /* fext.l $rd6,$rn6,$rm6 */
  2541. {
  2542. -1, "fext.l", "fext.l", 32,
  2543. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2544. },
  2545. /* fdep.l $rd6,$rn6,$rm6 */
  2546. {
  2547. -1, "fdep.l", "fdep.l", 32,
  2548. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2549. },
  2550. /* lfsr.l $rd6,$rn6,$rm6 */
  2551. {
  2552. -1, "lfsr.l", "lfsr.l", 32,
  2553. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2554. },
  2555. /* mov $rd,$imm8 */
  2556. {
  2557. -1, "mov8r", "mov", 16,
  2558. { 0|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2559. },
  2560. /* mov $rd6,$imm16 */
  2561. {
  2562. -1, "mov16r", "mov", 32,
  2563. { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2564. },
  2565. /* movt.l $rd6,$imm16 */
  2566. {
  2567. -1, "movtl", "movt.l", 32,
  2568. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2569. },
  2570. /* iadd $rd,$rn,$rm */
  2571. {
  2572. -1, "i_addf16", "iadd", 16,
  2573. { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2574. },
  2575. /* fadd.l $rd6,$rn6,$rm6 */
  2576. {
  2577. -1, "f_addf32.l", "fadd.l", 32,
  2578. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2579. },
  2580. /* iadd $rd6,$rn6,$rm6 */
  2581. {
  2582. -1, "i_addf32", "iadd", 32,
  2583. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2584. },
  2585. /* iadd.l $rd6,$rn6,$rm6 */
  2586. {
  2587. -1, "i_addf32.l", "iadd.l", 32,
  2588. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2589. },
  2590. /* isub $rd,$rn,$rm */
  2591. {
  2592. -1, "i_subf16", "isub", 16,
  2593. { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2594. },
  2595. /* fsub.l $rd6,$rn6,$rm6 */
  2596. {
  2597. -1, "f_subf32.l", "fsub.l", 32,
  2598. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2599. },
  2600. /* isub $rd6,$rn6,$rm6 */
  2601. {
  2602. -1, "i_subf32", "isub", 32,
  2603. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2604. },
  2605. /* isub.l $rd6,$rn6,$rm6 */
  2606. {
  2607. -1, "i_subf32.l", "isub.l", 32,
  2608. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2609. },
  2610. /* imul $rd,$rn,$rm */
  2611. {
  2612. -1, "i_mulf16", "imul", 16,
  2613. { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2614. },
  2615. /* fmul.l $rd6,$rn6,$rm6 */
  2616. {
  2617. -1, "f_mulf32.l", "fmul.l", 32,
  2618. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2619. },
  2620. /* imul $rd6,$rn6,$rm6 */
  2621. {
  2622. -1, "i_mulf32", "imul", 32,
  2623. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2624. },
  2625. /* imul.l $rd6,$rn6,$rm6 */
  2626. {
  2627. -1, "i_mulf32.l", "imul.l", 32,
  2628. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2629. },
  2630. /* imadd $rd,$rn,$rm */
  2631. {
  2632. -1, "i_maddf16", "imadd", 16,
  2633. { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2634. },
  2635. /* fmadd.l $rd6,$rn6,$rm6 */
  2636. {
  2637. -1, "f_maddf32.l", "fmadd.l", 32,
  2638. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2639. },
  2640. /* imadd $rd6,$rn6,$rm6 */
  2641. {
  2642. -1, "i_maddf32", "imadd", 32,
  2643. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2644. },
  2645. /* imadd.l $rd6,$rn6,$rm6 */
  2646. {
  2647. -1, "i_maddf32.l", "imadd.l", 32,
  2648. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2649. },
  2650. /* imsub $rd,$rn,$rm */
  2651. {
  2652. -1, "i_msubf16", "imsub", 16,
  2653. { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2654. },
  2655. /* fmsub.l $rd6,$rn6,$rm6 */
  2656. {
  2657. -1, "f_msubf32.l", "fmsub.l", 32,
  2658. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2659. },
  2660. /* imsub $rd6,$rn6,$rm6 */
  2661. {
  2662. -1, "i_msubf32", "imsub", 32,
  2663. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2664. },
  2665. /* imsub.l $rd6,$rn6,$rm6 */
  2666. {
  2667. -1, "i_msubf32.l", "imsub.l", 32,
  2668. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2669. },
  2670. /* fabs.l $rd6,$rn6 */
  2671. {
  2672. -1, "f_absf32.l", "fabs.l", 32,
  2673. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2674. },
  2675. /* float.l $rd6,$rn6 */
  2676. {
  2677. -1, "f_loatf32.l", "float.l", 32,
  2678. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2679. },
  2680. /* fix.l $rd6,$rn6 */
  2681. {
  2682. -1, "f_ixf32.l", "fix.l", 32,
  2683. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2684. },
  2685. /* frecip.l $frd6,$frn6 */
  2686. {
  2687. -1, "f_recipf32.l", "frecip.l", 32,
  2688. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2689. },
  2690. /* fsqrt.l $frd6,$frn6 */
  2691. {
  2692. -1, "f_sqrtf32.l", "fsqrt.l", 32,
  2693. { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  2694. },
  2695. };
  2696. /* The macro instruction opcode table. */
  2697. static const CGEN_OPCODE epiphany_cgen_macro_insn_opcode_table[] =
  2698. {
  2699. /* beq $simm8 */
  2700. {
  2701. { 0, 0, 0, 0 },
  2702. { { MNEM, ' ', OP (SIMM8), 0 } },
  2703. & ifmt_beq16r, { 0x0 }
  2704. },
  2705. /* beq $simm24 */
  2706. {
  2707. { 0, 0, 0, 0 },
  2708. { { MNEM, ' ', OP (SIMM24), 0 } },
  2709. & ifmt_beq32r, { 0x8 }
  2710. },
  2711. /* bne $simm8 */
  2712. {
  2713. { 0, 0, 0, 0 },
  2714. { { MNEM, ' ', OP (SIMM8), 0 } },
  2715. & ifmt_bne16r, { 0x10 }
  2716. },
  2717. /* bne $simm24 */
  2718. {
  2719. { 0, 0, 0, 0 },
  2720. { { MNEM, ' ', OP (SIMM24), 0 } },
  2721. & ifmt_bne32r, { 0x18 }
  2722. },
  2723. /* bgtu $simm8 */
  2724. {
  2725. { 0, 0, 0, 0 },
  2726. { { MNEM, ' ', OP (SIMM8), 0 } },
  2727. & ifmt_bgtu16r, { 0x20 }
  2728. },
  2729. /* bgtu $simm24 */
  2730. {
  2731. { 0, 0, 0, 0 },
  2732. { { MNEM, ' ', OP (SIMM24), 0 } },
  2733. & ifmt_bgtu32r, { 0x28 }
  2734. },
  2735. /* bgteu $simm8 */
  2736. {
  2737. { 0, 0, 0, 0 },
  2738. { { MNEM, ' ', OP (SIMM8), 0 } },
  2739. & ifmt_bgteu16r, { 0x30 }
  2740. },
  2741. /* bgteu $simm24 */
  2742. {
  2743. { 0, 0, 0, 0 },
  2744. { { MNEM, ' ', OP (SIMM24), 0 } },
  2745. & ifmt_bgteu32r, { 0x38 }
  2746. },
  2747. /* blteu $simm8 */
  2748. {
  2749. { 0, 0, 0, 0 },
  2750. { { MNEM, ' ', OP (SIMM8), 0 } },
  2751. & ifmt_blteu16r, { 0x40 }
  2752. },
  2753. /* blteu $simm24 */
  2754. {
  2755. { 0, 0, 0, 0 },
  2756. { { MNEM, ' ', OP (SIMM24), 0 } },
  2757. & ifmt_blteu32r, { 0x48 }
  2758. },
  2759. /* bltu $simm8 */
  2760. {
  2761. { 0, 0, 0, 0 },
  2762. { { MNEM, ' ', OP (SIMM8), 0 } },
  2763. & ifmt_bltu16r, { 0x50 }
  2764. },
  2765. /* bltu $simm24 */
  2766. {
  2767. { 0, 0, 0, 0 },
  2768. { { MNEM, ' ', OP (SIMM24), 0 } },
  2769. & ifmt_bltu32r, { 0x58 }
  2770. },
  2771. /* bgt $simm8 */
  2772. {
  2773. { 0, 0, 0, 0 },
  2774. { { MNEM, ' ', OP (SIMM8), 0 } },
  2775. & ifmt_bgt16r, { 0x60 }
  2776. },
  2777. /* bgt $simm24 */
  2778. {
  2779. { 0, 0, 0, 0 },
  2780. { { MNEM, ' ', OP (SIMM24), 0 } },
  2781. & ifmt_bgt32r, { 0x68 }
  2782. },
  2783. /* bgte $simm8 */
  2784. {
  2785. { 0, 0, 0, 0 },
  2786. { { MNEM, ' ', OP (SIMM8), 0 } },
  2787. & ifmt_bgte16r, { 0x70 }
  2788. },
  2789. /* bgte $simm24 */
  2790. {
  2791. { 0, 0, 0, 0 },
  2792. { { MNEM, ' ', OP (SIMM24), 0 } },
  2793. & ifmt_bgte32r, { 0x78 }
  2794. },
  2795. /* blt $simm8 */
  2796. {
  2797. { 0, 0, 0, 0 },
  2798. { { MNEM, ' ', OP (SIMM8), 0 } },
  2799. & ifmt_blt16r, { 0x80 }
  2800. },
  2801. /* blt $simm24 */
  2802. {
  2803. { 0, 0, 0, 0 },
  2804. { { MNEM, ' ', OP (SIMM24), 0 } },
  2805. & ifmt_blt32r, { 0x88 }
  2806. },
  2807. /* blte $simm8 */
  2808. {
  2809. { 0, 0, 0, 0 },
  2810. { { MNEM, ' ', OP (SIMM8), 0 } },
  2811. & ifmt_blte16r, { 0x90 }
  2812. },
  2813. /* blte $simm24 */
  2814. {
  2815. { 0, 0, 0, 0 },
  2816. { { MNEM, ' ', OP (SIMM24), 0 } },
  2817. & ifmt_blte32r, { 0x98 }
  2818. },
  2819. /* bbeq $simm8 */
  2820. {
  2821. { 0, 0, 0, 0 },
  2822. { { MNEM, ' ', OP (SIMM8), 0 } },
  2823. & ifmt_bbeq16r, { 0xa0 }
  2824. },
  2825. /* bbeq $simm24 */
  2826. {
  2827. { 0, 0, 0, 0 },
  2828. { { MNEM, ' ', OP (SIMM24), 0 } },
  2829. & ifmt_bbeq32r, { 0xa8 }
  2830. },
  2831. /* bbne $simm8 */
  2832. {
  2833. { 0, 0, 0, 0 },
  2834. { { MNEM, ' ', OP (SIMM8), 0 } },
  2835. & ifmt_bbne16r, { 0xb0 }
  2836. },
  2837. /* bbne $simm24 */
  2838. {
  2839. { 0, 0, 0, 0 },
  2840. { { MNEM, ' ', OP (SIMM24), 0 } },
  2841. & ifmt_bbne32r, { 0xb8 }
  2842. },
  2843. /* bblt $simm8 */
  2844. {
  2845. { 0, 0, 0, 0 },
  2846. { { MNEM, ' ', OP (SIMM8), 0 } },
  2847. & ifmt_bblt16r, { 0xc0 }
  2848. },
  2849. /* bblt $simm24 */
  2850. {
  2851. { 0, 0, 0, 0 },
  2852. { { MNEM, ' ', OP (SIMM24), 0 } },
  2853. & ifmt_bblt32r, { 0xc8 }
  2854. },
  2855. /* bblte $simm8 */
  2856. {
  2857. { 0, 0, 0, 0 },
  2858. { { MNEM, ' ', OP (SIMM8), 0 } },
  2859. & ifmt_bblte16r, { 0xd0 }
  2860. },
  2861. /* bblte $simm24 */
  2862. {
  2863. { 0, 0, 0, 0 },
  2864. { { MNEM, ' ', OP (SIMM24), 0 } },
  2865. & ifmt_bblte32r, { 0xd8 }
  2866. },
  2867. /* b $simm8 */
  2868. {
  2869. { 0, 0, 0, 0 },
  2870. { { MNEM, ' ', OP (SIMM8), 0 } },
  2871. & ifmt_b16r, { 0xe0 }
  2872. },
  2873. /* b $simm24 */
  2874. {
  2875. { 0, 0, 0, 0 },
  2876. { { MNEM, ' ', OP (SIMM24), 0 } },
  2877. & ifmt_b32r, { 0xe8 }
  2878. },
  2879. /* bl $simm8 */
  2880. {
  2881. { 0, 0, 0, 0 },
  2882. { { MNEM, ' ', OP (SIMM8), 0 } },
  2883. & ifmt_bl16r, { 0xf0 }
  2884. },
  2885. /* bl $simm24 */
  2886. {
  2887. { 0, 0, 0, 0 },
  2888. { { MNEM, ' ', OP (SIMM24), 0 } },
  2889. & ifmt_blr, { 0xf8 }
  2890. },
  2891. /* ldrb.l $rd6,[$rn6,$direction$rm6] */
  2892. {
  2893. { 0, 0, 0, 0 },
  2894. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  2895. & ifmt_ldrbx, { 0x9 }
  2896. },
  2897. /* ldrb.l $rd6,[$rn6],$direction$rm6 */
  2898. {
  2899. { 0, 0, 0, 0 },
  2900. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  2901. & ifmt_ldrbp, { 0xd }
  2902. },
  2903. /* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
  2904. {
  2905. { 0, 0, 0, 0 },
  2906. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  2907. & ifmt_ldrbd, { 0xc }
  2908. },
  2909. /* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
  2910. {
  2911. { 0, 0, 0, 0 },
  2912. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  2913. & ifmt_ldrbdpm, { 0x200000c }
  2914. },
  2915. /* ldrb $rd,[$rn] */
  2916. {
  2917. { 0, 0, 0, 0 },
  2918. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
  2919. & ifmt_ldrbds0, { 0x4 }
  2920. },
  2921. /* ldrb $rd6,[$rn6] */
  2922. {
  2923. { 0, 0, 0, 0 },
  2924. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  2925. & ifmt_ldrbdl0, { 0xc }
  2926. },
  2927. /* ldrb.l $rd6,[$rn6] */
  2928. {
  2929. { 0, 0, 0, 0 },
  2930. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  2931. & ifmt_ldrbdl0_l, { 0xc }
  2932. },
  2933. /* ldrh.l $rd6,[$rn6,$direction$rm6] */
  2934. {
  2935. { 0, 0, 0, 0 },
  2936. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  2937. & ifmt_ldrhx, { 0x29 }
  2938. },
  2939. /* ldrh.l $rd6,[$rn6],$direction$rm6 */
  2940. {
  2941. { 0, 0, 0, 0 },
  2942. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  2943. & ifmt_ldrhp, { 0x2d }
  2944. },
  2945. /* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
  2946. {
  2947. { 0, 0, 0, 0 },
  2948. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  2949. & ifmt_ldrhd, { 0x2c }
  2950. },
  2951. /* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
  2952. {
  2953. { 0, 0, 0, 0 },
  2954. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  2955. & ifmt_ldrhdpm, { 0x200002c }
  2956. },
  2957. /* ldrh $rd,[$rn] */
  2958. {
  2959. { 0, 0, 0, 0 },
  2960. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
  2961. & ifmt_ldrhds0, { 0x24 }
  2962. },
  2963. /* ldrh $rd6,[$rn6] */
  2964. {
  2965. { 0, 0, 0, 0 },
  2966. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  2967. & ifmt_ldrhdl0, { 0x2c }
  2968. },
  2969. /* ldrh.l $rd6,[$rn6] */
  2970. {
  2971. { 0, 0, 0, 0 },
  2972. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  2973. & ifmt_ldrhdl0_l, { 0x2c }
  2974. },
  2975. /* ldr.l $rd6,[$rn6,$direction$rm6] */
  2976. {
  2977. { 0, 0, 0, 0 },
  2978. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  2979. & ifmt_ldrx, { 0x49 }
  2980. },
  2981. /* ldr.l $rd6,[$rn6],$direction$rm6 */
  2982. {
  2983. { 0, 0, 0, 0 },
  2984. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  2985. & ifmt_ldrp, { 0x4d }
  2986. },
  2987. /* ldr.l $rd6,[$rn6,$dpmi$disp11] */
  2988. {
  2989. { 0, 0, 0, 0 },
  2990. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  2991. & ifmt_ldrd, { 0x4c }
  2992. },
  2993. /* ldr.l $rd6,[$rn6],$dpmi$disp11 */
  2994. {
  2995. { 0, 0, 0, 0 },
  2996. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  2997. & ifmt_ldrdpm, { 0x200004c }
  2998. },
  2999. /* ldr $rd,[$rn] */
  3000. {
  3001. { 0, 0, 0, 0 },
  3002. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
  3003. & ifmt_ldrds0, { 0x44 }
  3004. },
  3005. /* ldr $rd6,[$rn6] */
  3006. {
  3007. { 0, 0, 0, 0 },
  3008. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3009. & ifmt_ldrdl0, { 0x4c }
  3010. },
  3011. /* ldr.l $rd6,[$rn6] */
  3012. {
  3013. { 0, 0, 0, 0 },
  3014. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3015. & ifmt_ldrdl0_l, { 0x4c }
  3016. },
  3017. /* ldrd.l $rd6,[$rn6,$direction$rm6] */
  3018. {
  3019. { 0, 0, 0, 0 },
  3020. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  3021. & ifmt_ldrdx, { 0x69 }
  3022. },
  3023. /* ldrd.l $rd6,[$rn6],$direction$rm6 */
  3024. {
  3025. { 0, 0, 0, 0 },
  3026. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  3027. & ifmt_ldrdp, { 0x6d }
  3028. },
  3029. /* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
  3030. {
  3031. { 0, 0, 0, 0 },
  3032. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  3033. & ifmt_ldrdd, { 0x6c }
  3034. },
  3035. /* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
  3036. {
  3037. { 0, 0, 0, 0 },
  3038. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  3039. & ifmt_ldrddpm, { 0x200006c }
  3040. },
  3041. /* ldrd $rd,[$rn] */
  3042. {
  3043. { 0, 0, 0, 0 },
  3044. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
  3045. & ifmt_ldrdds0, { 0x64 }
  3046. },
  3047. /* ldrd $rd6,[$rn6] */
  3048. {
  3049. { 0, 0, 0, 0 },
  3050. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3051. & ifmt_ldrddl0, { 0x6c }
  3052. },
  3053. /* ldrd.l $rd6,[$rn6] */
  3054. {
  3055. { 0, 0, 0, 0 },
  3056. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3057. & ifmt_ldrddl0_l, { 0x6c }
  3058. },
  3059. /* testsetb.l $rd6,[$rn6,$direction$rm6] */
  3060. {
  3061. { 0, 0, 0, 0 },
  3062. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  3063. & ifmt_testsetbt_l, { 0x200009 }
  3064. },
  3065. /* testseth.l $rd6,[$rn6,$direction$rm6] */
  3066. {
  3067. { 0, 0, 0, 0 },
  3068. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  3069. & ifmt_testsetht_l, { 0x200029 }
  3070. },
  3071. /* testset.l $rd6,[$rn6,$direction$rm6] */
  3072. {
  3073. { 0, 0, 0, 0 },
  3074. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  3075. & ifmt_testsett_l, { 0x200049 }
  3076. },
  3077. /* strb.l $rd6,[$rn6,$direction$rm6] */
  3078. {
  3079. { 0, 0, 0, 0 },
  3080. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  3081. & ifmt_strbx_l, { 0x19 }
  3082. },
  3083. /* strb.l $rd6,[$rn6],$direction$rm6 */
  3084. {
  3085. { 0, 0, 0, 0 },
  3086. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  3087. & ifmt_strbp_l, { 0x1d }
  3088. },
  3089. /* strb.l $rd6,[$rn6,$dpmi$disp11] */
  3090. {
  3091. { 0, 0, 0, 0 },
  3092. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  3093. & ifmt_strbd_l, { 0x1c }
  3094. },
  3095. /* strb.l $rd6,[$rn6],$dpmi$disp11 */
  3096. {
  3097. { 0, 0, 0, 0 },
  3098. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  3099. & ifmt_strbdpm_l, { 0x200001c }
  3100. },
  3101. /* strb $rd,[$rn] */
  3102. {
  3103. { 0, 0, 0, 0 },
  3104. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
  3105. & ifmt_strbds0, { 0x14 }
  3106. },
  3107. /* strb $rd6,[$rn6] */
  3108. {
  3109. { 0, 0, 0, 0 },
  3110. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3111. & ifmt_strbdl0, { 0x1c }
  3112. },
  3113. /* strb.l $rd6,[$rn6] */
  3114. {
  3115. { 0, 0, 0, 0 },
  3116. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3117. & ifmt_strbdl0_l, { 0x1c }
  3118. },
  3119. /* strh.l $rd6,[$rn6,$direction$rm6] */
  3120. {
  3121. { 0, 0, 0, 0 },
  3122. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  3123. & ifmt_strhx_l, { 0x39 }
  3124. },
  3125. /* strh.l $rd6,[$rn6],$direction$rm6 */
  3126. {
  3127. { 0, 0, 0, 0 },
  3128. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  3129. & ifmt_strhp_l, { 0x3d }
  3130. },
  3131. /* strh.l $rd6,[$rn6,$dpmi$disp11] */
  3132. {
  3133. { 0, 0, 0, 0 },
  3134. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  3135. & ifmt_strhd_l, { 0x3c }
  3136. },
  3137. /* strh.l $rd6,[$rn6],$dpmi$disp11 */
  3138. {
  3139. { 0, 0, 0, 0 },
  3140. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  3141. & ifmt_strhdpm_l, { 0x200003c }
  3142. },
  3143. /* strh $rd,[$rn] */
  3144. {
  3145. { 0, 0, 0, 0 },
  3146. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
  3147. & ifmt_strhds0, { 0x34 }
  3148. },
  3149. /* strh $rd6,[$rn6] */
  3150. {
  3151. { 0, 0, 0, 0 },
  3152. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3153. & ifmt_strhdl0, { 0x3c }
  3154. },
  3155. /* strh.l $rd6,[$rn6] */
  3156. {
  3157. { 0, 0, 0, 0 },
  3158. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3159. & ifmt_strhdl0_l, { 0x3c }
  3160. },
  3161. /* str.l $rd6,[$rn6,$direction$rm6] */
  3162. {
  3163. { 0, 0, 0, 0 },
  3164. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  3165. & ifmt_strx_l, { 0x59 }
  3166. },
  3167. /* str.l $rd6,[$rn6],$direction$rm6 */
  3168. {
  3169. { 0, 0, 0, 0 },
  3170. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  3171. & ifmt_strp_l, { 0x5d }
  3172. },
  3173. /* str.l $rd6,[$rn6,$dpmi$disp11] */
  3174. {
  3175. { 0, 0, 0, 0 },
  3176. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  3177. & ifmt_strd_l, { 0x5c }
  3178. },
  3179. /* str.l $rd6,[$rn6],$dpmi$disp11 */
  3180. {
  3181. { 0, 0, 0, 0 },
  3182. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  3183. & ifmt_strdpm_l, { 0x200005c }
  3184. },
  3185. /* str $rd,[$rn] */
  3186. {
  3187. { 0, 0, 0, 0 },
  3188. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
  3189. & ifmt_strds0, { 0x54 }
  3190. },
  3191. /* str $rd6,[$rn6] */
  3192. {
  3193. { 0, 0, 0, 0 },
  3194. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3195. & ifmt_strdl0, { 0x5c }
  3196. },
  3197. /* str.l $rd6,[$rn6] */
  3198. {
  3199. { 0, 0, 0, 0 },
  3200. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3201. & ifmt_strdl0_l, { 0x5c }
  3202. },
  3203. /* strd.l $rd6,[$rn6,$direction$rm6] */
  3204. {
  3205. { 0, 0, 0, 0 },
  3206. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
  3207. & ifmt_strdx_l, { 0x79 }
  3208. },
  3209. /* strd.l $rd6,[$rn6],$direction$rm6 */
  3210. {
  3211. { 0, 0, 0, 0 },
  3212. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
  3213. & ifmt_strdp_l, { 0x7d }
  3214. },
  3215. /* strd.l $rd6,[$rn6,$dpmi$disp11] */
  3216. {
  3217. { 0, 0, 0, 0 },
  3218. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
  3219. & ifmt_strdd_l, { 0x7c }
  3220. },
  3221. /* strd.l $rd6,[$rn6],$dpmi$disp11 */
  3222. {
  3223. { 0, 0, 0, 0 },
  3224. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
  3225. & ifmt_strddpm_l, { 0x200007c }
  3226. },
  3227. /* strd $rd,[$rn] */
  3228. {
  3229. { 0, 0, 0, 0 },
  3230. { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
  3231. & ifmt_strdds0, { 0x74 }
  3232. },
  3233. /* strd $rd6,[$rn6] */
  3234. {
  3235. { 0, 0, 0, 0 },
  3236. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3237. & ifmt_strddl0, { 0x7c }
  3238. },
  3239. /* strd.l $rd6,[$rn6] */
  3240. {
  3241. { 0, 0, 0, 0 },
  3242. { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
  3243. & ifmt_strddl0_l, { 0x7c }
  3244. },
  3245. /* moveq.l $rd6,$rn6 */
  3246. {
  3247. { 0, 0, 0, 0 },
  3248. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3249. & ifmt_cmov_lEQ, { 0x2000f }
  3250. },
  3251. /* movne.l $rd6,$rn6 */
  3252. {
  3253. { 0, 0, 0, 0 },
  3254. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3255. & ifmt_cmov_lNE, { 0x2001f }
  3256. },
  3257. /* movgtu.l $rd6,$rn6 */
  3258. {
  3259. { 0, 0, 0, 0 },
  3260. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3261. & ifmt_cmov_lGTU, { 0x2002f }
  3262. },
  3263. /* movgteu.l $rd6,$rn6 */
  3264. {
  3265. { 0, 0, 0, 0 },
  3266. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3267. & ifmt_cmov_lGTEU, { 0x2003f }
  3268. },
  3269. /* movlteu.l $rd6,$rn6 */
  3270. {
  3271. { 0, 0, 0, 0 },
  3272. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3273. & ifmt_cmov_lLTEU, { 0x2004f }
  3274. },
  3275. /* movltu.l $rd6,$rn6 */
  3276. {
  3277. { 0, 0, 0, 0 },
  3278. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3279. & ifmt_cmov_lLTU, { 0x2005f }
  3280. },
  3281. /* movgt.l $rd6,$rn6 */
  3282. {
  3283. { 0, 0, 0, 0 },
  3284. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3285. & ifmt_cmov_lGT, { 0x2006f }
  3286. },
  3287. /* movgte.l $rd6,$rn6 */
  3288. {
  3289. { 0, 0, 0, 0 },
  3290. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3291. & ifmt_cmov_lGTE, { 0x2007f }
  3292. },
  3293. /* movlt.l $rd6,$rn6 */
  3294. {
  3295. { 0, 0, 0, 0 },
  3296. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3297. & ifmt_cmov_lLT, { 0x2008f }
  3298. },
  3299. /* movlte.l $rd6,$rn6 */
  3300. {
  3301. { 0, 0, 0, 0 },
  3302. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3303. & ifmt_cmov_lLTE, { 0x2009f }
  3304. },
  3305. /* mov.l $rd6,$rn6 */
  3306. {
  3307. { 0, 0, 0, 0 },
  3308. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3309. & ifmt_cmov_lB, { 0x200ef }
  3310. },
  3311. /* movbeq.l $rd6,$rn6 */
  3312. {
  3313. { 0, 0, 0, 0 },
  3314. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3315. & ifmt_cmov_lBEQ, { 0x200af }
  3316. },
  3317. /* movbne.l $rd6,$rn6 */
  3318. {
  3319. { 0, 0, 0, 0 },
  3320. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3321. & ifmt_cmov_lBNE, { 0x200bf }
  3322. },
  3323. /* movblt.l $rd6,$rn6 */
  3324. {
  3325. { 0, 0, 0, 0 },
  3326. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3327. & ifmt_cmov_lBLT, { 0x200cf }
  3328. },
  3329. /* movblte.l $rd6,$rn6 */
  3330. {
  3331. { 0, 0, 0, 0 },
  3332. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3333. & ifmt_cmov_lBLTE, { 0x200df }
  3334. },
  3335. /* movts.l $sn6,$rd6 */
  3336. {
  3337. { 0, 0, 0, 0 },
  3338. { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
  3339. & ifmt_movts_l6, { 0x2010f }
  3340. },
  3341. /* movts.l $sndma,$rd6 */
  3342. {
  3343. { 0, 0, 0, 0 },
  3344. { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
  3345. & ifmt_movts_ldma, { 0x12010f }
  3346. },
  3347. /* movts.l $snmem,$rd6 */
  3348. {
  3349. { 0, 0, 0, 0 },
  3350. { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
  3351. & ifmt_movts_lmem, { 0x22010f }
  3352. },
  3353. /* movts.l $snmesh,$rd6 */
  3354. {
  3355. { 0, 0, 0, 0 },
  3356. { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
  3357. & ifmt_movts_lmesh, { 0x32010f }
  3358. },
  3359. /* movfs.l $rd6,$sn6 */
  3360. {
  3361. { 0, 0, 0, 0 },
  3362. { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
  3363. & ifmt_movfs_l6, { 0x2011f }
  3364. },
  3365. /* movfs.l $rd6,$sndma */
  3366. {
  3367. { 0, 0, 0, 0 },
  3368. { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
  3369. & ifmt_movfs_ldma, { 0x12011f }
  3370. },
  3371. /* movfs.l $rd6,$snmem */
  3372. {
  3373. { 0, 0, 0, 0 },
  3374. { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
  3375. & ifmt_movfs_lmem, { 0x22011f }
  3376. },
  3377. /* movfs.l $rd6,$snmesh */
  3378. {
  3379. { 0, 0, 0, 0 },
  3380. { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
  3381. & ifmt_movfs_lmesh, { 0x32011f }
  3382. },
  3383. /* add.l $rd6,$rn6,$rm6 */
  3384. {
  3385. { 0, 0, 0, 0 },
  3386. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3387. & ifmt_add_l, { 0xa001f }
  3388. },
  3389. /* sub.l $rd6,$rn6,$rm6 */
  3390. {
  3391. { 0, 0, 0, 0 },
  3392. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3393. & ifmt_sub_l, { 0xa003f }
  3394. },
  3395. /* and.l $rd6,$rn6,$rm6 */
  3396. {
  3397. { 0, 0, 0, 0 },
  3398. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3399. & ifmt_and_l, { 0xa005f }
  3400. },
  3401. /* orr.l $rd6,$rn6,$rm6 */
  3402. {
  3403. { 0, 0, 0, 0 },
  3404. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3405. & ifmt_orr_l, { 0xa007f }
  3406. },
  3407. /* eor.l $rd6,$rn6,$rm6 */
  3408. {
  3409. { 0, 0, 0, 0 },
  3410. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3411. & ifmt_eor_l, { 0xa000f }
  3412. },
  3413. /* add $rd,$rn,$simm3 */
  3414. {
  3415. { 0, 0, 0, 0 },
  3416. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
  3417. & ifmt_addir, { 0x13 }
  3418. },
  3419. /* add $rd6,$rn6,$simm11 */
  3420. {
  3421. { 0, 0, 0, 0 },
  3422. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
  3423. & ifmt_addi32r, { 0x1b }
  3424. },
  3425. /* add $rd6,$rn6,$simm11 */
  3426. {
  3427. { 0, 0, 0, 0 },
  3428. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
  3429. & ifmt_addi32m, { 0x1b }
  3430. },
  3431. /* sub $rd,$rn,$simm3 */
  3432. {
  3433. { 0, 0, 0, 0 },
  3434. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
  3435. & ifmt_subir, { 0x33 }
  3436. },
  3437. /* sub $rd6,$rn6,$simm11 */
  3438. {
  3439. { 0, 0, 0, 0 },
  3440. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
  3441. & ifmt_subi32r, { 0x3b }
  3442. },
  3443. /* sub $rd6,$rn6,$simm11 */
  3444. {
  3445. { 0, 0, 0, 0 },
  3446. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
  3447. & ifmt_subi32m, { 0x3b }
  3448. },
  3449. /* asr.l $rd6,$rn6,$rm6 */
  3450. {
  3451. { 0, 0, 0, 0 },
  3452. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3453. & ifmt_asr_l, { 0xa006f }
  3454. },
  3455. /* lsr.l $rd6,$rn6,$rm6 */
  3456. {
  3457. { 0, 0, 0, 0 },
  3458. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3459. & ifmt_lsr_l, { 0xa004f }
  3460. },
  3461. /* lsl.l $rd6,$rn6,$rm6 */
  3462. {
  3463. { 0, 0, 0, 0 },
  3464. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3465. & ifmt_lsl_l, { 0xa002f }
  3466. },
  3467. /* lsr.l $rd6,$rn6,$shift */
  3468. {
  3469. { 0, 0, 0, 0 },
  3470. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
  3471. & ifmt_lsri32_l, { 0x6000f }
  3472. },
  3473. /* lsl.l $rd6,$rn6,$shift */
  3474. {
  3475. { 0, 0, 0, 0 },
  3476. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
  3477. & ifmt_lsli32_l, { 0x6001f }
  3478. },
  3479. /* asr.l $rd6,$rn6,$shift */
  3480. {
  3481. { 0, 0, 0, 0 },
  3482. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
  3483. & ifmt_asri32_l, { 0xe000f }
  3484. },
  3485. /* bitr.l $rd6,$rn6 */
  3486. {
  3487. { 0, 0, 0, 0 },
  3488. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3489. & ifmt_bitrl, { 0xe001f }
  3490. },
  3491. /* fext.l $rd6,$rn6,$rm6 */
  3492. {
  3493. { 0, 0, 0, 0 },
  3494. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3495. & ifmt_fext_l, { 0x1a000f }
  3496. },
  3497. /* fdep.l $rd6,$rn6,$rm6 */
  3498. {
  3499. { 0, 0, 0, 0 },
  3500. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3501. & ifmt_fdep_l, { 0x1a001f }
  3502. },
  3503. /* lfsr.l $rd6,$rn6,$rm6 */
  3504. {
  3505. { 0, 0, 0, 0 },
  3506. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3507. & ifmt_lfsr_l, { 0x1a002f }
  3508. },
  3509. /* mov $rd,$imm8 */
  3510. {
  3511. { 0, 0, 0, 0 },
  3512. { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
  3513. & ifmt_mov8r, { 0x3 }
  3514. },
  3515. /* mov $rd6,$imm16 */
  3516. {
  3517. { 0, 0, 0, 0 },
  3518. { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
  3519. & ifmt_mov16r, { 0x2000b }
  3520. },
  3521. /* movt.l $rd6,$imm16 */
  3522. {
  3523. { 0, 0, 0, 0 },
  3524. { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
  3525. & ifmt_movtl, { 0x1002000b }
  3526. },
  3527. /* iadd $rd,$rn,$rm */
  3528. {
  3529. { 0, 0, 0, 0 },
  3530. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  3531. & ifmt_i_addf16, { 0x7 }
  3532. },
  3533. /* fadd.l $rd6,$rn6,$rm6 */
  3534. {
  3535. { 0, 0, 0, 0 },
  3536. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3537. & ifmt_f_addf32_l, { 0x7000f }
  3538. },
  3539. /* iadd $rd6,$rn6,$rm6 */
  3540. {
  3541. { 0, 0, 0, 0 },
  3542. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3543. & ifmt_i_addf32, { 0x7000f }
  3544. },
  3545. /* iadd.l $rd6,$rn6,$rm6 */
  3546. {
  3547. { 0, 0, 0, 0 },
  3548. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3549. & ifmt_i_addf32_l, { 0x7000f }
  3550. },
  3551. /* isub $rd,$rn,$rm */
  3552. {
  3553. { 0, 0, 0, 0 },
  3554. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  3555. & ifmt_i_subf16, { 0x17 }
  3556. },
  3557. /* fsub.l $rd6,$rn6,$rm6 */
  3558. {
  3559. { 0, 0, 0, 0 },
  3560. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3561. & ifmt_f_subf32_l, { 0x7001f }
  3562. },
  3563. /* isub $rd6,$rn6,$rm6 */
  3564. {
  3565. { 0, 0, 0, 0 },
  3566. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3567. & ifmt_i_subf32, { 0x7001f }
  3568. },
  3569. /* isub.l $rd6,$rn6,$rm6 */
  3570. {
  3571. { 0, 0, 0, 0 },
  3572. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3573. & ifmt_i_subf32_l, { 0x7001f }
  3574. },
  3575. /* imul $rd,$rn,$rm */
  3576. {
  3577. { 0, 0, 0, 0 },
  3578. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  3579. & ifmt_i_mulf16, { 0x27 }
  3580. },
  3581. /* fmul.l $rd6,$rn6,$rm6 */
  3582. {
  3583. { 0, 0, 0, 0 },
  3584. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3585. & ifmt_f_mulf32_l, { 0x7002f }
  3586. },
  3587. /* imul $rd6,$rn6,$rm6 */
  3588. {
  3589. { 0, 0, 0, 0 },
  3590. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3591. & ifmt_i_mulf32, { 0x7002f }
  3592. },
  3593. /* imul.l $rd6,$rn6,$rm6 */
  3594. {
  3595. { 0, 0, 0, 0 },
  3596. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3597. & ifmt_i_mulf32_l, { 0x7002f }
  3598. },
  3599. /* imadd $rd,$rn,$rm */
  3600. {
  3601. { 0, 0, 0, 0 },
  3602. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  3603. & ifmt_i_maddf16, { 0x37 }
  3604. },
  3605. /* fmadd.l $rd6,$rn6,$rm6 */
  3606. {
  3607. { 0, 0, 0, 0 },
  3608. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3609. & ifmt_f_maddf32_l, { 0x7003f }
  3610. },
  3611. /* imadd $rd6,$rn6,$rm6 */
  3612. {
  3613. { 0, 0, 0, 0 },
  3614. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3615. & ifmt_i_maddf32, { 0x7003f }
  3616. },
  3617. /* imadd.l $rd6,$rn6,$rm6 */
  3618. {
  3619. { 0, 0, 0, 0 },
  3620. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3621. & ifmt_i_maddf32_l, { 0x7003f }
  3622. },
  3623. /* imsub $rd,$rn,$rm */
  3624. {
  3625. { 0, 0, 0, 0 },
  3626. { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
  3627. & ifmt_i_msubf16, { 0x47 }
  3628. },
  3629. /* fmsub.l $rd6,$rn6,$rm6 */
  3630. {
  3631. { 0, 0, 0, 0 },
  3632. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3633. & ifmt_f_msubf32_l, { 0x7004f }
  3634. },
  3635. /* imsub $rd6,$rn6,$rm6 */
  3636. {
  3637. { 0, 0, 0, 0 },
  3638. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3639. & ifmt_i_msubf32, { 0x7004f }
  3640. },
  3641. /* imsub.l $rd6,$rn6,$rm6 */
  3642. {
  3643. { 0, 0, 0, 0 },
  3644. { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
  3645. & ifmt_i_msubf32_l, { 0x7004f }
  3646. },
  3647. /* fabs.l $rd6,$rn6 */
  3648. {
  3649. { 0, 0, 0, 0 },
  3650. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3651. & ifmt_f_absf32_l, { 0x7007f }
  3652. },
  3653. /* float.l $rd6,$rn6 */
  3654. {
  3655. { 0, 0, 0, 0 },
  3656. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3657. & ifmt_f_loatf32_l, { 0x7005f }
  3658. },
  3659. /* fix.l $rd6,$rn6 */
  3660. {
  3661. { 0, 0, 0, 0 },
  3662. { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
  3663. & ifmt_f_ixf32_l, { 0x7006f }
  3664. },
  3665. /* frecip.l $frd6,$frn6 */
  3666. {
  3667. { 0, 0, 0, 0 },
  3668. { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
  3669. & ifmt_f_recipf32_l, { 0x17000f }
  3670. },
  3671. /* fsqrt.l $frd6,$frn6 */
  3672. {
  3673. { 0, 0, 0, 0 },
  3674. { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
  3675. & ifmt_f_sqrtf32_l, { 0x17001f }
  3676. },
  3677. };
  3678. #undef A
  3679. #undef OPERAND
  3680. #undef MNEM
  3681. #undef OP
  3682. #ifndef CGEN_ASM_HASH_P
  3683. #define CGEN_ASM_HASH_P(insn) 1
  3684. #endif
  3685. #ifndef CGEN_DIS_HASH_P
  3686. #define CGEN_DIS_HASH_P(insn) 1
  3687. #endif
  3688. /* Return non-zero if INSN is to be added to the hash table.
  3689. Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file. */
  3690. static int
  3691. asm_hash_insn_p (insn)
  3692. const CGEN_INSN *insn ATTRIBUTE_UNUSED;
  3693. {
  3694. return CGEN_ASM_HASH_P (insn);
  3695. }
  3696. static int
  3697. dis_hash_insn_p (insn)
  3698. const CGEN_INSN *insn;
  3699. {
  3700. /* If building the hash table and the NO-DIS attribute is present,
  3701. ignore. */
  3702. if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
  3703. return 0;
  3704. return CGEN_DIS_HASH_P (insn);
  3705. }
  3706. #ifndef CGEN_ASM_HASH
  3707. #define CGEN_ASM_HASH_SIZE 127
  3708. #ifdef CGEN_MNEMONIC_OPERANDS
  3709. #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
  3710. #else
  3711. #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
  3712. #endif
  3713. #endif
  3714. /* It doesn't make much sense to provide a default here,
  3715. but while this is under development we do.
  3716. BUFFER is a pointer to the bytes of the insn, target order.
  3717. VALUE is the first base_insn_bitsize bits as an int in host order. */
  3718. #ifndef CGEN_DIS_HASH
  3719. #define CGEN_DIS_HASH_SIZE 256
  3720. #define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
  3721. #endif
  3722. /* The result is the hash value of the insn.
  3723. Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file. */
  3724. static unsigned int
  3725. asm_hash_insn (mnem)
  3726. const char * mnem;
  3727. {
  3728. return CGEN_ASM_HASH (mnem);
  3729. }
  3730. /* BUF is a pointer to the bytes of the insn, target order.
  3731. VALUE is the first base_insn_bitsize bits as an int in host order. */
  3732. static unsigned int
  3733. dis_hash_insn (buf, value)
  3734. const char * buf ATTRIBUTE_UNUSED;
  3735. CGEN_INSN_INT value ATTRIBUTE_UNUSED;
  3736. {
  3737. return CGEN_DIS_HASH (buf, value);
  3738. }
  3739. /* Set the recorded length of the insn in the CGEN_FIELDS struct. */
  3740. static void
  3741. set_fields_bitsize (CGEN_FIELDS *fields, int size)
  3742. {
  3743. CGEN_FIELDS_BITSIZE (fields) = size;
  3744. }
  3745. /* Function to call before using the operand instance table.
  3746. This plugs the opcode entries and macro instructions into the cpu table. */
  3747. void
  3748. epiphany_cgen_init_opcode_table (CGEN_CPU_DESC cd)
  3749. {
  3750. int i;
  3751. int num_macros = (sizeof (epiphany_cgen_macro_insn_table) /
  3752. sizeof (epiphany_cgen_macro_insn_table[0]));
  3753. const CGEN_IBASE *ib = & epiphany_cgen_macro_insn_table[0];
  3754. const CGEN_OPCODE *oc = & epiphany_cgen_macro_insn_opcode_table[0];
  3755. CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
  3756. /* This test has been added to avoid a warning generated
  3757. if memset is called with a third argument of value zero. */
  3758. if (num_macros >= 1)
  3759. memset (insns, 0, num_macros * sizeof (CGEN_INSN));
  3760. for (i = 0; i < num_macros; ++i)
  3761. {
  3762. insns[i].base = &ib[i];
  3763. insns[i].opcode = &oc[i];
  3764. epiphany_cgen_build_insn_regex (& insns[i]);
  3765. }
  3766. cd->macro_insn_table.init_entries = insns;
  3767. cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
  3768. cd->macro_insn_table.num_init_entries = num_macros;
  3769. oc = & epiphany_cgen_insn_opcode_table[0];
  3770. insns = (CGEN_INSN *) cd->insn_table.init_entries;
  3771. for (i = 0; i < MAX_INSNS; ++i)
  3772. {
  3773. insns[i].opcode = &oc[i];
  3774. epiphany_cgen_build_insn_regex (& insns[i]);
  3775. }
  3776. cd->sizeof_fields = sizeof (CGEN_FIELDS);
  3777. cd->set_fields_bitsize = set_fields_bitsize;
  3778. cd->asm_hash_p = asm_hash_insn_p;
  3779. cd->asm_hash = asm_hash_insn;
  3780. cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
  3781. cd->dis_hash_p = dis_hash_insn_p;
  3782. cd->dis_hash = dis_hash_insn;
  3783. cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
  3784. }