m68k-opc.c 144 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482
  1. /* Opcode table for m680[012346]0/m6888[12]/m68851/mcf5200.
  2. Copyright (C) 1989-2022 Free Software Foundation, Inc.
  3. This file is part of the GNU opcodes library.
  4. This library is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 3, or (at your option)
  7. any later version.
  8. It is distributed in the hope that it will be useful, but WITHOUT
  9. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  10. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
  11. License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this file; see the file COPYING. If not, write to the
  14. Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
  15. MA 02110-1301, USA. */
  16. #include "sysdep.h"
  17. #include "opcode/m68k.h"
  18. #define one(x) ((unsigned int) (x) << 16)
  19. #define two(x, y) (((unsigned int) (x) << 16) + (y))
  20. /* The assembler requires that all instances of the same mnemonic must
  21. be consecutive. If they aren't, the assembler will bomb at
  22. runtime. */
  23. /* Format strings consist of pairs of characters. The first describes
  24. the type of the operand and the second describes the encoding.
  25. include/opcodes/m68k.h describes them in detail. */
  26. const struct m68k_opcode m68k_opcodes[] =
  27. {
  28. {"abcd", 2, one(0140400), one(0170770), "DsDd", m68000up },
  29. {"abcd", 2, one(0140410), one(0170770), "-s-d", m68000up },
  30. {"addaw", 2, one(0150300), one(0170700), "*wAd", m68000up },
  31. {"addal", 2, one(0150700), one(0170700), "*lAd", m68000up | mcfisa_a },
  32. {"addib", 4, one(0003000), one(0177700), "#b$s", m68000up },
  33. {"addiw", 4, one(0003100), one(0177700), "#w$s", m68000up },
  34. {"addil", 6, one(0003200), one(0177700), "#l$s", m68000up },
  35. {"addil", 6, one(0003200), one(0177700), "#lDs", mcfisa_a },
  36. {"addqb", 2, one(0050000), one(0170700), "Qd$b", m68000up },
  37. {"addqw", 2, one(0050100), one(0170700), "Qd%w", m68000up },
  38. {"addql", 2, one(0050200), one(0170700), "Qd%l", m68000up | mcfisa_a },
  39. /* The add opcode can generate the adda, addi, and addq instructions. */
  40. {"addb", 2, one(0050000), one(0170700), "Qd$b", m68000up },
  41. {"addb", 4, one(0003000), one(0177700), "#b$s", m68000up },
  42. {"addb", 2, one(0150000), one(0170700), ";bDd", m68000up },
  43. {"addb", 2, one(0150400), one(0170700), "Dd~b", m68000up },
  44. {"addw", 2, one(0050100), one(0170700), "Qd%w", m68000up },
  45. {"addw", 2, one(0150300), one(0170700), "*wAd", m68000up },
  46. {"addw", 4, one(0003100), one(0177700), "#w$s", m68000up },
  47. {"addw", 2, one(0150100), one(0170700), "*wDd", m68000up },
  48. {"addw", 2, one(0150500), one(0170700), "Dd~w", m68000up },
  49. {"addl", 2, one(0050200), one(0170700), "Qd%l", m68000up | mcfisa_a },
  50. {"addl", 6, one(0003200), one(0177700), "#l$s", m68000up },
  51. {"addl", 6, one(0003200), one(0177700), "#lDs", mcfisa_a },
  52. {"addl", 2, one(0150700), one(0170700), "*lAd", m68000up | mcfisa_a },
  53. {"addl", 2, one(0150200), one(0170700), "*lDd", m68000up | mcfisa_a },
  54. {"addl", 2, one(0150600), one(0170700), "Dd~l", m68000up | mcfisa_a },
  55. {"addxb", 2, one(0150400), one(0170770), "DsDd", m68000up },
  56. {"addxb", 2, one(0150410), one(0170770), "-s-d", m68000up },
  57. {"addxw", 2, one(0150500), one(0170770), "DsDd", m68000up },
  58. {"addxw", 2, one(0150510), one(0170770), "-s-d", m68000up },
  59. {"addxl", 2, one(0150600), one(0170770), "DsDd", m68000up | mcfisa_a },
  60. {"addxl", 2, one(0150610), one(0170770), "-s-d", m68000up },
  61. {"andib", 4, one(0001000), one(0177700), "#b$s", m68000up },
  62. {"andib", 4, one(0001074), one(0177777), "#bCs", m68000up },
  63. {"andiw", 4, one(0001100), one(0177700), "#w$s", m68000up },
  64. {"andiw", 4, one(0001174), one(0177777), "#wSs", m68000up },
  65. {"andil", 6, one(0001200), one(0177700), "#l$s", m68000up },
  66. {"andil", 6, one(0001200), one(0177700), "#lDs", mcfisa_a },
  67. {"andi", 4, one(0001100), one(0177700), "#w$s", m68000up },
  68. {"andi", 4, one(0001074), one(0177777), "#bCs", m68000up },
  69. {"andi", 4, one(0001174), one(0177777), "#wSs", m68000up },
  70. /* The and opcode can generate the andi instruction. */
  71. {"andb", 4, one(0001000), one(0177700), "#b$s", m68000up },
  72. {"andb", 4, one(0001074), one(0177777), "#bCs", m68000up },
  73. {"andb", 2, one(0140000), one(0170700), ";bDd", m68000up },
  74. {"andb", 2, one(0140400), one(0170700), "Dd~b", m68000up },
  75. {"andw", 4, one(0001100), one(0177700), "#w$s", m68000up },
  76. {"andw", 4, one(0001174), one(0177777), "#wSs", m68000up },
  77. {"andw", 2, one(0140100), one(0170700), ";wDd", m68000up },
  78. {"andw", 2, one(0140500), one(0170700), "Dd~w", m68000up },
  79. {"andl", 6, one(0001200), one(0177700), "#l$s", m68000up },
  80. {"andl", 6, one(0001200), one(0177700), "#lDs", mcfisa_a },
  81. {"andl", 2, one(0140200), one(0170700), ";lDd", m68000up | mcfisa_a },
  82. {"andl", 2, one(0140600), one(0170700), "Dd~l", m68000up | mcfisa_a },
  83. {"and", 4, one(0001100), one(0177700), "#w$w", m68000up },
  84. {"and", 4, one(0001074), one(0177777), "#bCs", m68000up },
  85. {"and", 4, one(0001174), one(0177777), "#wSs", m68000up },
  86. {"and", 2, one(0140100), one(0170700), ";wDd", m68000up },
  87. {"and", 2, one(0140500), one(0170700), "Dd~w", m68000up },
  88. {"aslb", 2, one(0160400), one(0170770), "QdDs", m68000up },
  89. {"aslb", 2, one(0160440), one(0170770), "DdDs", m68000up },
  90. {"aslw", 2, one(0160500), one(0170770), "QdDs", m68000up },
  91. {"aslw", 2, one(0160540), one(0170770), "DdDs", m68000up },
  92. {"aslw", 2, one(0160700), one(0177700), "~s", m68000up },
  93. {"asll", 2, one(0160600), one(0170770), "QdDs", m68000up | mcfisa_a },
  94. {"asll", 2, one(0160640), one(0170770), "DdDs", m68000up | mcfisa_a },
  95. {"asrb", 2, one(0160000), one(0170770), "QdDs", m68000up },
  96. {"asrb", 2, one(0160040), one(0170770), "DdDs", m68000up },
  97. {"asrw", 2, one(0160100), one(0170770), "QdDs", m68000up },
  98. {"asrw", 2, one(0160140), one(0170770), "DdDs", m68000up },
  99. {"asrw", 2, one(0160300), one(0177700), "~s", m68000up },
  100. {"asrl", 2, one(0160200), one(0170770), "QdDs", m68000up | mcfisa_a },
  101. {"asrl", 2, one(0160240), one(0170770), "DdDs", m68000up | mcfisa_a },
  102. {"bhiw", 2, one(0061000), one(0177777), "BW", m68000up | mcfisa_a },
  103. {"blsw", 2, one(0061400), one(0177777), "BW", m68000up | mcfisa_a },
  104. {"bccw", 2, one(0062000), one(0177777), "BW", m68000up | mcfisa_a },
  105. {"bcsw", 2, one(0062400), one(0177777), "BW", m68000up | mcfisa_a },
  106. {"bnew", 2, one(0063000), one(0177777), "BW", m68000up | mcfisa_a },
  107. {"beqw", 2, one(0063400), one(0177777), "BW", m68000up | mcfisa_a },
  108. {"bvcw", 2, one(0064000), one(0177777), "BW", m68000up | mcfisa_a },
  109. {"bvsw", 2, one(0064400), one(0177777), "BW", m68000up | mcfisa_a },
  110. {"bplw", 2, one(0065000), one(0177777), "BW", m68000up | mcfisa_a },
  111. {"bmiw", 2, one(0065400), one(0177777), "BW", m68000up | mcfisa_a },
  112. {"bgew", 2, one(0066000), one(0177777), "BW", m68000up | mcfisa_a },
  113. {"bltw", 2, one(0066400), one(0177777), "BW", m68000up | mcfisa_a },
  114. {"bgtw", 2, one(0067000), one(0177777), "BW", m68000up | mcfisa_a },
  115. {"blew", 2, one(0067400), one(0177777), "BW", m68000up | mcfisa_a },
  116. {"bhil", 2, one(0061377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  117. {"blsl", 2, one(0061777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  118. {"bccl", 2, one(0062377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  119. {"bcsl", 2, one(0062777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  120. {"bnel", 2, one(0063377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  121. {"beql", 2, one(0063777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  122. {"bvcl", 2, one(0064377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  123. {"bvsl", 2, one(0064777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  124. {"bpll", 2, one(0065377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  125. {"bmil", 2, one(0065777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  126. {"bgel", 2, one(0066377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  127. {"bltl", 2, one(0066777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  128. {"bgtl", 2, one(0067377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  129. {"blel", 2, one(0067777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  130. {"bhis", 2, one(0061000), one(0177400), "BB", m68000up | mcfisa_a },
  131. {"blss", 2, one(0061400), one(0177400), "BB", m68000up | mcfisa_a },
  132. {"bccs", 2, one(0062000), one(0177400), "BB", m68000up | mcfisa_a },
  133. {"bcss", 2, one(0062400), one(0177400), "BB", m68000up | mcfisa_a },
  134. {"bnes", 2, one(0063000), one(0177400), "BB", m68000up | mcfisa_a },
  135. {"beqs", 2, one(0063400), one(0177400), "BB", m68000up | mcfisa_a },
  136. {"bvcs", 2, one(0064000), one(0177400), "BB", m68000up | mcfisa_a },
  137. {"bvss", 2, one(0064400), one(0177400), "BB", m68000up | mcfisa_a },
  138. {"bpls", 2, one(0065000), one(0177400), "BB", m68000up | mcfisa_a },
  139. {"bmis", 2, one(0065400), one(0177400), "BB", m68000up | mcfisa_a },
  140. {"bges", 2, one(0066000), one(0177400), "BB", m68000up | mcfisa_a },
  141. {"blts", 2, one(0066400), one(0177400), "BB", m68000up | mcfisa_a },
  142. {"bgts", 2, one(0067000), one(0177400), "BB", m68000up | mcfisa_a },
  143. {"bles", 2, one(0067400), one(0177400), "BB", m68000up | mcfisa_a },
  144. {"jhi", 2, one(0061000), one(0177400), "Bg", m68000up | mcfisa_a },
  145. {"jls", 2, one(0061400), one(0177400), "Bg", m68000up | mcfisa_a },
  146. {"jcc", 2, one(0062000), one(0177400), "Bg", m68000up | mcfisa_a },
  147. {"jcs", 2, one(0062400), one(0177400), "Bg", m68000up | mcfisa_a },
  148. {"jne", 2, one(0063000), one(0177400), "Bg", m68000up | mcfisa_a },
  149. {"jeq", 2, one(0063400), one(0177400), "Bg", m68000up | mcfisa_a },
  150. {"jvc", 2, one(0064000), one(0177400), "Bg", m68000up | mcfisa_a },
  151. {"jvs", 2, one(0064400), one(0177400), "Bg", m68000up | mcfisa_a },
  152. {"jpl", 2, one(0065000), one(0177400), "Bg", m68000up | mcfisa_a },
  153. {"jmi", 2, one(0065400), one(0177400), "Bg", m68000up | mcfisa_a },
  154. {"jge", 2, one(0066000), one(0177400), "Bg", m68000up | mcfisa_a },
  155. {"jlt", 2, one(0066400), one(0177400), "Bg", m68000up | mcfisa_a },
  156. {"jgt", 2, one(0067000), one(0177400), "Bg", m68000up | mcfisa_a },
  157. {"jle", 2, one(0067400), one(0177400), "Bg", m68000up | mcfisa_a },
  158. {"bchg", 2, one(0000500), one(0170700), "Dd$s", m68000up | mcfisa_a },
  159. {"bchg", 4, one(0004100), one(0177700), "#b$s", m68000up },
  160. {"bchg", 4, one(0004100), one(0177700), "#bqs", mcfisa_a },
  161. {"bclr", 2, one(0000600), one(0170700), "Dd$s", m68000up | mcfisa_a },
  162. {"bclr", 4, one(0004200), one(0177700), "#b$s", m68000up },
  163. {"bclr", 4, one(0004200), one(0177700), "#bqs", mcfisa_a },
  164. {"bfchg", 4, two(0165300, 0), two(0177700, 0170000), "?sO2O3", m68020up },
  165. {"bfclr", 4, two(0166300, 0), two(0177700, 0170000), "?sO2O3", m68020up },
  166. {"bfexts", 4, two(0165700, 0), two(0177700, 0100000), "/sO2O3D1", m68020up },
  167. {"bfextu", 4, two(0164700, 0), two(0177700, 0100000), "/sO2O3D1", m68020up },
  168. {"bfffo", 4, two(0166700, 0), two(0177700, 0100000), "/sO2O3D1", m68020up },
  169. {"bfins", 4, two(0167700, 0), two(0177700, 0100000), "D1?sO2O3", m68020up },
  170. {"bfset", 4, two(0167300, 0), two(0177700, 0170000), "?sO2O3", m68020up },
  171. {"bftst", 4, two(0164300, 0), two(0177700, 0170000), "/sO2O3", m68020up },
  172. {"bgnd", 2, one(0045372), one(0177777), "", cpu32 | fido_a },
  173. {"bitrev", 2, one(0000300), one(0177770), "Ds", mcfisa_aa | mcfisa_c},
  174. {"bkpt", 2, one(0044110), one(0177770), "ts", m68010up },
  175. {"braw", 2, one(0060000), one(0177777), "BW", m68000up | mcfisa_a },
  176. {"bral", 2, one(0060377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
  177. {"bras", 2, one(0060000), one(0177400), "BB", m68000up | mcfisa_a },
  178. {"bset", 2, one(0000700), one(0170700), "Dd$s", m68000up | mcfisa_a },
  179. {"bset", 2, one(0000700), one(0170700), "Ddvs", mcfisa_a },
  180. {"bset", 4, one(0004300), one(0177700), "#b$s", m68000up },
  181. {"bset", 4, one(0004300), one(0177700), "#bqs", mcfisa_a },
  182. {"bsrw", 2, one(0060400), one(0177777), "BW", m68000up | mcfisa_a },
  183. {"bsrl", 2, one(0060777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b | mcfisa_c},
  184. {"bsrs", 2, one(0060400), one(0177400), "BB", m68000up | mcfisa_a },
  185. {"btst", 2, one(0000400), one(0170700), "Dd;b", m68000up | mcfisa_a },
  186. {"btst", 4, one(0004000), one(0177700), "#b@s", m68000up },
  187. {"btst", 4, one(0004000), one(0177700), "#bqs", mcfisa_a },
  188. {"byterev", 2, one(0001300), one(0177770), "Ds", mcfisa_aa | mcfisa_c},
  189. {"callm", 4, one(0003300), one(0177700), "#b!s", m68020 },
  190. {"cas2w", 6, two(0006374,0), two(0177777,0007070), "D3D6D2D5r1r4", m68020up },
  191. {"cas2w", 6, two(0006374,0), two(0177777,0007070), "D3D6D2D5R1R4", m68020up },
  192. {"cas2l", 6, two(0007374,0), two(0177777,0007070), "D3D6D2D5r1r4", m68020up },
  193. {"cas2l", 6, two(0007374,0), two(0177777,0007070), "D3D6D2D5R1R4", m68020up },
  194. {"casb", 4, two(0005300, 0), two(0177700, 0177070), "D3D2~s", m68020up },
  195. {"casw", 4, two(0006300, 0), two(0177700, 0177070), "D3D2~s", m68020up },
  196. {"casl", 4, two(0007300, 0), two(0177700, 0177070), "D3D2~s", m68020up },
  197. {"chk2b", 4, two(0000300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
  198. {"chk2w", 4, two(0001300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
  199. {"chk2l", 4, two(0002300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
  200. {"chkl", 2, one(0040400), one(0170700), ";lDd", m68020up },
  201. {"chkw", 2, one(0040600), one(0170700), ";wDd", m68000up },
  202. #define SCOPE_LINE (0x1 << 3)
  203. #define SCOPE_PAGE (0x2 << 3)
  204. #define SCOPE_ALL (0x3 << 3)
  205. {"cinva", 2, one(0xf400|SCOPE_ALL), one(0xff38), "ce", m68040up },
  206. {"cinvl", 2, one(0xf400|SCOPE_LINE), one(0xff38), "ceas", m68040up },
  207. {"cinvp", 2, one(0xf400|SCOPE_PAGE), one(0xff38), "ceas", m68040up },
  208. {"cpusha", 2, one(0xf420|SCOPE_ALL), one(0xff38), "ce", m68040up },
  209. {"cpushl", 2, one(0xf420|SCOPE_LINE), one(0xff38), "ceas", m68040up | mcfisa_a },
  210. {"cpushp", 2, one(0xf420|SCOPE_PAGE), one(0xff38), "ceas", m68040up },
  211. #undef SCOPE_LINE
  212. #undef SCOPE_PAGE
  213. #undef SCOPE_ALL
  214. {"clrb", 2, one(0041000), one(0177700), "$s", m68000up | mcfisa_a },
  215. {"clrw", 2, one(0041100), one(0177700), "$s", m68000up | mcfisa_a },
  216. {"clrl", 2, one(0041200), one(0177700), "$s", m68000up | mcfisa_a },
  217. {"cmp2b", 4, two(0000300,0), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
  218. {"cmp2w", 4, two(0001300,0), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
  219. {"cmp2l", 4, two(0002300,0), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
  220. {"cmpaw", 2, one(0130300), one(0170700), "*wAd", m68000up },
  221. {"cmpal", 2, one(0130700), one(0170700), "*lAd", m68000up | mcfisa_a },
  222. {"cmpib", 4, one(0006000), one(0177700), "#b$s", m68000 | m68010 },
  223. {"cmpib", 4, one(0006000), one(0177700), "#b@s", m68020up | cpu32 | fido_a },
  224. {"cmpib", 4, one(0006000), one(0177700), "#bDs", mcfisa_b | mcfisa_c },
  225. {"cmpiw", 4, one(0006100), one(0177700), "#w$s", m68000 | m68010 },
  226. {"cmpiw", 4, one(0006100), one(0177700), "#w@s", m68020up | cpu32 | fido_a },
  227. {"cmpiw", 4, one(0006100), one(0177700), "#wDs", mcfisa_b | mcfisa_c },
  228. {"cmpil", 6, one(0006200), one(0177700), "#l$s", m68000 | m68010 },
  229. {"cmpil", 6, one(0006200), one(0177700), "#l@s", m68020up | cpu32 | fido_a },
  230. {"cmpil", 6, one(0006200), one(0177700), "#lDs", mcfisa_a },
  231. {"cmpmb", 2, one(0130410), one(0170770), "+s+d", m68000up },
  232. {"cmpmw", 2, one(0130510), one(0170770), "+s+d", m68000up },
  233. {"cmpml", 2, one(0130610), one(0170770), "+s+d", m68000up },
  234. /* The cmp opcode can generate the cmpa, cmpm, and cmpi instructions. */
  235. {"cmpb", 4, one(0006000), one(0177700), "#b$s", m68000 | m68010 },
  236. {"cmpb", 4, one(0006000), one(0177700), "#b@s", m68020up | cpu32 | fido_a },
  237. {"cmpb", 4, one(0006000), one(0177700), "#bDs", mcfisa_b | mcfisa_c },
  238. {"cmpb", 2, one(0130410), one(0170770), "+s+d", m68000up },
  239. {"cmpb", 2, one(0130000), one(0170700), ";bDd", m68000up },
  240. {"cmpb", 2, one(0130000), one(0170700), "*bDd", mcfisa_b | mcfisa_c },
  241. {"cmpw", 2, one(0130300), one(0170700), "*wAd", m68000up },
  242. {"cmpw", 4, one(0006100), one(0177700), "#w$s", m68000 | m68010 },
  243. {"cmpw", 4, one(0006100), one(0177700), "#w@s", m68020up | cpu32 | fido_a },
  244. {"cmpw", 4, one(0006100), one(0177700), "#wDs", mcfisa_b | mcfisa_c },
  245. {"cmpw", 2, one(0130510), one(0170770), "+s+d", m68000up },
  246. {"cmpw", 2, one(0130100), one(0170700), "*wDd", m68000up | mcfisa_b | mcfisa_c },
  247. {"cmpl", 2, one(0130700), one(0170700), "*lAd", m68000up | mcfisa_a },
  248. {"cmpl", 6, one(0006200), one(0177700), "#l$s", m68000 | m68010 },
  249. {"cmpl", 6, one(0006200), one(0177700), "#l@s", m68020up | cpu32 | fido_a },
  250. {"cmpl", 6, one(0006200), one(0177700), "#lDs", mcfisa_a },
  251. {"cmpl", 2, one(0130610), one(0170770), "+s+d", m68000up },
  252. {"cmpl", 2, one(0130200), one(0170700), "*lDd", m68000up | mcfisa_a },
  253. {"cp0bcbusy",2, one (0176300), one (01777770), "BW", mcfisa_a},
  254. {"cp1bcbusy",2, one (0177300), one (01777770), "BW", mcfisa_a},
  255. {"cp0nop", 4, two (0176000,0), two (01777477,0170777), "jE", mcfisa_a},
  256. {"cp1nop", 4, two (0177000,0), two (01777477,0170777), "jE", mcfisa_a},
  257. /* These all have 2 opcode words, but no fixed bits in the second
  258. word. We use a leading ' ' in the args string to indicate the
  259. extra opcode word. */
  260. {"cp0ldb", 6, one (0176000), one (01777700), ".pwR1jEK3", mcfisa_a},
  261. {"cp1ldb", 6, one (0177000), one (01777700), ".pwR1jEK3", mcfisa_a},
  262. {"cp0ldw", 6, one (0176100), one (01777700), ".pwR1jEK3", mcfisa_a},
  263. {"cp1ldw", 6, one (0177100), one (01777700), ".pwR1jEK3", mcfisa_a},
  264. {"cp0ldl", 6, one (0176200), one (01777700), ".pwR1jEK3", mcfisa_a},
  265. {"cp1ldl", 6, one (0177200), one (01777700), ".pwR1jEK3", mcfisa_a},
  266. {"cp0ld", 6, one (0176200), one (01777700), ".pwR1jEK3", mcfisa_a},
  267. {"cp1ld", 6, one (0177200), one (01777700), ".pwR1jEK3", mcfisa_a},
  268. {"cp0stb", 6, one (0176400), one (01777700), ".R1pwjEK3", mcfisa_a},
  269. {"cp1stb", 6, one (0177400), one (01777700), ".R1pwjEK3", mcfisa_a},
  270. {"cp0stw", 6, one (0176500), one (01777700), ".R1pwjEK3", mcfisa_a},
  271. {"cp1stw", 6, one (0177500), one (01777700), ".R1pwjEK3", mcfisa_a},
  272. {"cp0stl", 6, one (0176600), one (01777700), ".R1pwjEK3", mcfisa_a},
  273. {"cp1stl", 6, one (0177600), one (01777700), ".R1pwjEK3", mcfisa_a},
  274. {"cp0st", 6, one (0176600), one (01777700), ".R1pwjEK3", mcfisa_a},
  275. {"cp1st", 6, one (0177600), one (01777700), ".R1pwjEK3", mcfisa_a},
  276. {"dbcc", 2, one(0052310), one(0177770), "DsBw", m68000up },
  277. {"dbcs", 2, one(0052710), one(0177770), "DsBw", m68000up },
  278. {"dbeq", 2, one(0053710), one(0177770), "DsBw", m68000up },
  279. {"dbf", 2, one(0050710), one(0177770), "DsBw", m68000up },
  280. {"dbge", 2, one(0056310), one(0177770), "DsBw", m68000up },
  281. {"dbgt", 2, one(0057310), one(0177770), "DsBw", m68000up },
  282. {"dbhi", 2, one(0051310), one(0177770), "DsBw", m68000up },
  283. {"dble", 2, one(0057710), one(0177770), "DsBw", m68000up },
  284. {"dbls", 2, one(0051710), one(0177770), "DsBw", m68000up },
  285. {"dblt", 2, one(0056710), one(0177770), "DsBw", m68000up },
  286. {"dbmi", 2, one(0055710), one(0177770), "DsBw", m68000up },
  287. {"dbne", 2, one(0053310), one(0177770), "DsBw", m68000up },
  288. {"dbpl", 2, one(0055310), one(0177770), "DsBw", m68000up },
  289. {"dbt", 2, one(0050310), one(0177770), "DsBw", m68000up },
  290. {"dbvc", 2, one(0054310), one(0177770), "DsBw", m68000up },
  291. {"dbvs", 2, one(0054710), one(0177770), "DsBw", m68000up },
  292. {"divsw", 2, one(0100700), one(0170700), ";wDd", m68000up | mcfhwdiv },
  293. {"divsl", 4, two(0046100,0006000),two(0177700,0107770),";lD3D1", m68020up | cpu32 | fido_a },
  294. {"divsl", 4, two(0046100,0004000),two(0177700,0107770),";lDD", m68020up | cpu32 | fido_a },
  295. {"divsl", 4, two(0046100,0004000),two(0177700,0107770),"qsDD", mcfhwdiv },
  296. {"divsll", 4, two(0046100,0004000),two(0177700,0107770),";lD3D1",m68020up | cpu32 | fido_a },
  297. {"divsll", 4, two(0046100,0004000),two(0177700,0107770),";lDD", m68020up | cpu32 | fido_a },
  298. {"divuw", 2, one(0100300), one(0170700), ";wDd", m68000up | mcfhwdiv },
  299. {"divul", 4, two(0046100,0002000),two(0177700,0107770),";lD3D1", m68020up | cpu32 | fido_a },
  300. {"divul", 4, two(0046100,0000000),two(0177700,0107770),";lDD", m68020up | cpu32 | fido_a },
  301. {"divul", 4, two(0046100,0000000),two(0177700,0107770),"qsDD", mcfhwdiv },
  302. {"divull", 4, two(0046100,0000000),two(0177700,0107770),";lD3D1",m68020up | cpu32 | fido_a },
  303. {"divull", 4, two(0046100,0000000),two(0177700,0107770),";lDD", m68020up | cpu32 | fido_a },
  304. {"eorib", 4, one(0005000), one(0177700), "#b$s", m68000up },
  305. {"eorib", 4, one(0005074), one(0177777), "#bCs", m68000up },
  306. {"eoriw", 4, one(0005100), one(0177700), "#w$s", m68000up },
  307. {"eoriw", 4, one(0005174), one(0177777), "#wSs", m68000up },
  308. {"eoril", 6, one(0005200), one(0177700), "#l$s", m68000up },
  309. {"eoril", 6, one(0005200), one(0177700), "#lDs", mcfisa_a },
  310. {"eori", 4, one(0005074), one(0177777), "#bCs", m68000up },
  311. {"eori", 4, one(0005174), one(0177777), "#wSs", m68000up },
  312. {"eori", 4, one(0005100), one(0177700), "#w$s", m68000up },
  313. /* The eor opcode can generate the eori instruction. */
  314. {"eorb", 4, one(0005000), one(0177700), "#b$s", m68000up },
  315. {"eorb", 4, one(0005074), one(0177777), "#bCs", m68000up },
  316. {"eorb", 2, one(0130400), one(0170700), "Dd$s", m68000up },
  317. {"eorw", 4, one(0005100), one(0177700), "#w$s", m68000up },
  318. {"eorw", 4, one(0005174), one(0177777), "#wSs", m68000up },
  319. {"eorw", 2, one(0130500), one(0170700), "Dd$s", m68000up },
  320. {"eorl", 6, one(0005200), one(0177700), "#l$s", m68000up },
  321. {"eorl", 6, one(0005200), one(0177700), "#lDs", mcfisa_a },
  322. {"eorl", 2, one(0130600), one(0170700), "Dd$s", m68000up | mcfisa_a },
  323. {"eor", 4, one(0005074), one(0177777), "#bCs", m68000up },
  324. {"eor", 4, one(0005174), one(0177777), "#wSs", m68000up },
  325. {"eor", 4, one(0005100), one(0177700), "#w$s", m68000up },
  326. {"eor", 2, one(0130500), one(0170700), "Dd$s", m68000up },
  327. {"exg", 2, one(0140500), one(0170770), "DdDs", m68000up },
  328. {"exg", 2, one(0140510), one(0170770), "AdAs", m68000up },
  329. {"exg", 2, one(0140610), one(0170770), "DdAs", m68000up },
  330. {"exg", 2, one(0140610), one(0170770), "AsDd", m68000up },
  331. {"extw", 2, one(0044200), one(0177770), "Ds", m68000up|mcfisa_a },
  332. {"extl", 2, one(0044300), one(0177770), "Ds", m68000up|mcfisa_a },
  333. {"extbl", 2, one(0044700), one(0177770), "Ds", m68020up | cpu32 | fido_a | mcfisa_a },
  334. {"ff1", 2, one(0002300), one(0177770), "Ds", mcfisa_aa | mcfisa_c},
  335. /* float stuff starts here */
  336. {"fabsb", 4, two(0xF000, 0x5818), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  337. {"fabsb", 4, two(0xF000, 0x5818), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  338. {"fabsd", 4, two(0xF000, 0x0018), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  339. {"fabsd", 4, two(0xF000, 0x0018), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  340. {"fabsd", 4, two(0xF000, 0x5418), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  341. {"fabsd", 4, two(0xF000, 0x5418), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  342. {"fabsl", 4, two(0xF000, 0x4018), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  343. {"fabsl", 4, two(0xF000, 0x4018), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  344. {"fabsp", 4, two(0xF000, 0x4C18), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  345. {"fabss", 4, two(0xF000, 0x4418), two(0xF1C0, 0xFC7F), "Ii;fF7", cfloat },
  346. {"fabss", 4, two(0xF000, 0x4418), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  347. {"fabsw", 4, two(0xF000, 0x5018), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  348. {"fabsw", 4, two(0xF000, 0x5018), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  349. {"fabsx", 4, two(0xF000, 0x0018), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  350. {"fabsx", 4, two(0xF000, 0x4818), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  351. {"fabsx", 4, two(0xF000, 0x0018), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  352. {"fsabsb", 4, two(0xF000, 0x5858), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  353. {"fsabsb", 4, two(0xF000, 0x5858), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  354. {"fsabsd", 4, two(0xF000, 0x0058), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  355. {"fsabsd", 4, two(0xF000, 0x0058), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  356. {"fsabsd", 4, two(0xF000, 0x5458), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  357. {"fsabsd", 4, two(0xF000, 0x5458), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  358. {"fsabsl", 4, two(0xF000, 0x4058), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  359. {"fsabsl", 4, two(0xF000, 0x4058), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  360. {"fsabsp", 4, two(0xF000, 0x4C58), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  361. {"fsabss", 4, two(0xF000, 0x4458), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  362. {"fsabss", 4, two(0xF000, 0x4458), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  363. {"fsabsw", 4, two(0xF000, 0x5058), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  364. {"fsabsw", 4, two(0xF000, 0x5058), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  365. {"fsabsx", 4, two(0xF000, 0x0058), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  366. {"fsabsx", 4, two(0xF000, 0x4858), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  367. {"fsabsx", 4, two(0xF000, 0x0058), two(0xF1C0, 0xE07F), "IiFt", m68040up },
  368. {"fdabsb", 4, two(0xF000, 0x585C), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  369. {"fdabsb", 4, two(0xF000, 0x585c), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up},
  370. {"fdabsd", 4, two(0xF000, 0x005C), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  371. {"fdabsd", 4, two(0xF000, 0x005C), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  372. {"fdabsd", 4, two(0xF000, 0x545C), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  373. {"fdabsd", 4, two(0xF000, 0x545c), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up},
  374. {"fdabsl", 4, two(0xF000, 0x405C), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  375. {"fdabsl", 4, two(0xF000, 0x405c), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up},
  376. {"fdabsp", 4, two(0xF000, 0x4C5c), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up},
  377. {"fdabss", 4, two(0xF000, 0x445C), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  378. {"fdabss", 4, two(0xF000, 0x445c), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up},
  379. {"fdabsw", 4, two(0xF000, 0x505C), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  380. {"fdabsw", 4, two(0xF000, 0x505c), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up},
  381. {"fdabsx", 4, two(0xF000, 0x005c), two(0xF1C0, 0xE07F), "IiF8F7", m68040up},
  382. {"fdabsx", 4, two(0xF000, 0x485c), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up},
  383. {"fdabsx", 4, two(0xF000, 0x005c), two(0xF1C0, 0xE07F), "IiFt", m68040up},
  384. {"facosb", 4, two(0xF000, 0x581C), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  385. {"facosd", 4, two(0xF000, 0x541C), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  386. {"facosl", 4, two(0xF000, 0x401C), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  387. {"facosp", 4, two(0xF000, 0x4C1C), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  388. {"facoss", 4, two(0xF000, 0x441C), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  389. {"facosw", 4, two(0xF000, 0x501C), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  390. {"facosx", 4, two(0xF000, 0x001C), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  391. {"facosx", 4, two(0xF000, 0x481C), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  392. {"facosx", 4, two(0xF000, 0x001C), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  393. {"faddb", 4, two(0xF000, 0x5822), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  394. {"faddb", 4, two(0xF000, 0x5822), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  395. {"faddd", 4, two(0xF000, 0x0022), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  396. {"faddd", 4, two(0xF000, 0x5422), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  397. {"faddd", 4, two(0xF000, 0x5422), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  398. {"faddd", 4, two(0xF000, 0x5422), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  399. {"faddl", 4, two(0xF000, 0x4022), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  400. {"faddl", 4, two(0xF000, 0x4022), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  401. {"faddp", 4, two(0xF000, 0x4C22), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  402. {"fadds", 4, two(0xF000, 0x4422), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  403. {"fadds", 4, two(0xF000, 0x4422), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  404. {"faddw", 4, two(0xF000, 0x5022), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  405. {"faddw", 4, two(0xF000, 0x5022), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  406. {"faddx", 4, two(0xF000, 0x0022), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  407. {"faddx", 4, two(0xF000, 0x4822), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  408. {"fsaddb", 4, two(0xF000, 0x5862), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  409. {"fsaddb", 4, two(0xF000, 0x5862), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  410. {"fsaddd", 4, two(0xF000, 0x0062), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  411. {"fsaddd", 4, two(0xF000, 0x5462), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  412. {"fsaddd", 4, two(0xF000, 0x5462), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  413. {"fsaddl", 4, two(0xF000, 0x4062), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  414. {"fsaddl", 4, two(0xF000, 0x4062), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  415. {"fsaddp", 4, two(0xF000, 0x4C62), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  416. {"fsadds", 4, two(0xF000, 0x4462), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  417. {"fsadds", 4, two(0xF000, 0x4462), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  418. {"fsaddw", 4, two(0xF000, 0x5062), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  419. {"fsaddw", 4, two(0xF000, 0x5062), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  420. {"fsaddx", 4, two(0xF000, 0x0062), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  421. {"fsaddx", 4, two(0xF000, 0x4862), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  422. {"fdaddb", 4, two(0xF000, 0x5866), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  423. {"fdaddb", 4, two(0xF000, 0x5866), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  424. {"fdaddd", 4, two(0xF000, 0x0066), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  425. {"fdaddd", 4, two(0xF000, 0x5466), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  426. {"fdaddd", 4, two(0xF000, 0x5466), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  427. {"fdaddl", 4, two(0xF000, 0x4066), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  428. {"fdaddl", 4, two(0xF000, 0x4066), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  429. {"fdaddp", 4, two(0xF000, 0x4C66), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  430. {"fdadds", 4, two(0xF000, 0x4466), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  431. {"fdadds", 4, two(0xF000, 0x4466), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  432. {"fdaddw", 4, two(0xF000, 0x5066), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  433. {"fdaddw", 4, two(0xF000, 0x5066), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  434. {"fdaddx", 4, two(0xF000, 0x0066), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  435. {"fdaddx", 4, two(0xF000, 0x4866), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  436. {"fasinb", 4, two(0xF000, 0x580C), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  437. {"fasind", 4, two(0xF000, 0x540C), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  438. {"fasinl", 4, two(0xF000, 0x400C), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  439. {"fasinp", 4, two(0xF000, 0x4C0C), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  440. {"fasins", 4, two(0xF000, 0x440C), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  441. {"fasinw", 4, two(0xF000, 0x500C), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  442. {"fasinx", 4, two(0xF000, 0x000C), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  443. {"fasinx", 4, two(0xF000, 0x480C), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  444. {"fasinx", 4, two(0xF000, 0x000C), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  445. {"fatanb", 4, two(0xF000, 0x580A), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  446. {"fatand", 4, two(0xF000, 0x540A), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  447. {"fatanl", 4, two(0xF000, 0x400A), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  448. {"fatanp", 4, two(0xF000, 0x4C0A), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  449. {"fatans", 4, two(0xF000, 0x440A), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  450. {"fatanw", 4, two(0xF000, 0x500A), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  451. {"fatanx", 4, two(0xF000, 0x000A), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  452. {"fatanx", 4, two(0xF000, 0x480A), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  453. {"fatanx", 4, two(0xF000, 0x000A), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  454. {"fatanhb", 4, two(0xF000, 0x580D), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  455. {"fatanhd", 4, two(0xF000, 0x540D), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  456. {"fatanhl", 4, two(0xF000, 0x400D), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  457. {"fatanhp", 4, two(0xF000, 0x4C0D), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  458. {"fatanhs", 4, two(0xF000, 0x440D), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  459. {"fatanhw", 4, two(0xF000, 0x500D), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  460. {"fatanhx", 4, two(0xF000, 0x000D), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  461. {"fatanhx", 4, two(0xF000, 0x480D), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  462. {"fatanhx", 4, two(0xF000, 0x000D), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  463. /* This is the same as `fbf .+2'. */
  464. {"fnop", 4, two(0xF280, 0x0000), two(0xFFFF, 0xFFFF), "Ii", mfloat | cfloat },
  465. {"fbeq", 2, one(0xF081), one(0xF1FF), "IdBW", mfloat | cfloat },
  466. {"fbf", 2, one(0xF080), one(0xF1FF), "IdBW", mfloat | cfloat },
  467. {"fbge", 2, one(0xF093), one(0xF1FF), "IdBW", mfloat | cfloat },
  468. {"fbgl", 2, one(0xF096), one(0xF1FF), "IdBW", mfloat | cfloat },
  469. {"fbgle", 2, one(0xF097), one(0xF1FF), "IdBW", mfloat | cfloat },
  470. {"fbgt", 2, one(0xF092), one(0xF1FF), "IdBW", mfloat | cfloat },
  471. {"fble", 2, one(0xF095), one(0xF1FF), "IdBW", mfloat | cfloat },
  472. {"fblt", 2, one(0xF094), one(0xF1FF), "IdBW", mfloat | cfloat },
  473. {"fbne", 2, one(0xF08E), one(0xF1FF), "IdBW", mfloat | cfloat },
  474. {"fbnge", 2, one(0xF09C), one(0xF1FF), "IdBW", mfloat | cfloat },
  475. {"fbngl", 2, one(0xF099), one(0xF1FF), "IdBW", mfloat | cfloat },
  476. {"fbngle", 2, one(0xF098), one(0xF1FF), "IdBW", mfloat | cfloat },
  477. {"fbngt", 2, one(0xF09D), one(0xF1FF), "IdBW", mfloat | cfloat },
  478. {"fbnle", 2, one(0xF09A), one(0xF1FF), "IdBW", mfloat | cfloat },
  479. {"fbnlt", 2, one(0xF09B), one(0xF1FF), "IdBW", mfloat | cfloat },
  480. {"fboge", 2, one(0xF083), one(0xF1FF), "IdBW", mfloat | cfloat },
  481. {"fbogl", 2, one(0xF086), one(0xF1FF), "IdBW", mfloat | cfloat },
  482. {"fbogt", 2, one(0xF082), one(0xF1FF), "IdBW", mfloat | cfloat },
  483. {"fbole", 2, one(0xF085), one(0xF1FF), "IdBW", mfloat | cfloat },
  484. {"fbolt", 2, one(0xF084), one(0xF1FF), "IdBW", mfloat | cfloat },
  485. {"fbor", 2, one(0xF087), one(0xF1FF), "IdBW", mfloat | cfloat },
  486. {"fbseq", 2, one(0xF091), one(0xF1FF), "IdBW", mfloat | cfloat },
  487. {"fbsf", 2, one(0xF090), one(0xF1FF), "IdBW", mfloat | cfloat },
  488. {"fbsne", 2, one(0xF09E), one(0xF1FF), "IdBW", mfloat | cfloat },
  489. {"fbst", 2, one(0xF09F), one(0xF1FF), "IdBW", mfloat | cfloat },
  490. {"fbt", 2, one(0xF08F), one(0xF1FF), "IdBW", mfloat | cfloat },
  491. {"fbueq", 2, one(0xF089), one(0xF1FF), "IdBW", mfloat | cfloat },
  492. {"fbuge", 2, one(0xF08B), one(0xF1FF), "IdBW", mfloat | cfloat },
  493. {"fbugt", 2, one(0xF08A), one(0xF1FF), "IdBW", mfloat | cfloat },
  494. {"fbule", 2, one(0xF08D), one(0xF1FF), "IdBW", mfloat | cfloat },
  495. {"fbult", 2, one(0xF08C), one(0xF1FF), "IdBW", mfloat | cfloat },
  496. {"fbun", 2, one(0xF088), one(0xF1FF), "IdBW", mfloat | cfloat },
  497. {"fbeql", 2, one(0xF0C1), one(0xF1FF), "IdBC", mfloat | cfloat },
  498. {"fbfl", 2, one(0xF0C0), one(0xF1FF), "IdBC", mfloat | cfloat },
  499. {"fbgel", 2, one(0xF0D3), one(0xF1FF), "IdBC", mfloat | cfloat },
  500. {"fbgll", 2, one(0xF0D6), one(0xF1FF), "IdBC", mfloat | cfloat },
  501. {"fbglel", 2, one(0xF0D7), one(0xF1FF), "IdBC", mfloat | cfloat },
  502. {"fbgtl", 2, one(0xF0D2), one(0xF1FF), "IdBC", mfloat | cfloat },
  503. {"fblel", 2, one(0xF0D5), one(0xF1FF), "IdBC", mfloat | cfloat },
  504. {"fbltl", 2, one(0xF0D4), one(0xF1FF), "IdBC", mfloat | cfloat },
  505. {"fbnel", 2, one(0xF0CE), one(0xF1FF), "IdBC", mfloat | cfloat },
  506. {"fbngel", 2, one(0xF0DC), one(0xF1FF), "IdBC", mfloat | cfloat },
  507. {"fbngll", 2, one(0xF0D9), one(0xF1FF), "IdBC", mfloat | cfloat },
  508. {"fbnglel", 2, one(0xF0D8), one(0xF1FF), "IdBC", mfloat | cfloat },
  509. {"fbngtl", 2, one(0xF0DD), one(0xF1FF), "IdBC", mfloat | cfloat },
  510. {"fbnlel", 2, one(0xF0DA), one(0xF1FF), "IdBC", mfloat | cfloat },
  511. {"fbnltl", 2, one(0xF0DB), one(0xF1FF), "IdBC", mfloat | cfloat },
  512. {"fbogel", 2, one(0xF0C3), one(0xF1FF), "IdBC", mfloat | cfloat },
  513. {"fbogll", 2, one(0xF0C6), one(0xF1FF), "IdBC", mfloat | cfloat },
  514. {"fbogtl", 2, one(0xF0C2), one(0xF1FF), "IdBC", mfloat | cfloat },
  515. {"fbolel", 2, one(0xF0C5), one(0xF1FF), "IdBC", mfloat | cfloat },
  516. {"fboltl", 2, one(0xF0C4), one(0xF1FF), "IdBC", mfloat | cfloat },
  517. {"fborl", 2, one(0xF0C7), one(0xF1FF), "IdBC", mfloat | cfloat },
  518. {"fbseql", 2, one(0xF0D1), one(0xF1FF), "IdBC", mfloat | cfloat },
  519. {"fbsfl", 2, one(0xF0D0), one(0xF1FF), "IdBC", mfloat | cfloat },
  520. {"fbsnel", 2, one(0xF0DE), one(0xF1FF), "IdBC", mfloat | cfloat },
  521. {"fbstl", 2, one(0xF0DF), one(0xF1FF), "IdBC", mfloat | cfloat },
  522. {"fbtl", 2, one(0xF0CF), one(0xF1FF), "IdBC", mfloat | cfloat },
  523. {"fbueql", 2, one(0xF0C9), one(0xF1FF), "IdBC", mfloat | cfloat },
  524. {"fbugel", 2, one(0xF0CB), one(0xF1FF), "IdBC", mfloat | cfloat },
  525. {"fbugtl", 2, one(0xF0CA), one(0xF1FF), "IdBC", mfloat | cfloat },
  526. {"fbulel", 2, one(0xF0CD), one(0xF1FF), "IdBC", mfloat | cfloat },
  527. {"fbultl", 2, one(0xF0CC), one(0xF1FF), "IdBC", mfloat | cfloat },
  528. {"fbunl", 2, one(0xF0C8), one(0xF1FF), "IdBC", mfloat | cfloat },
  529. {"fjeq", 2, one(0xF081), one(0xF1BF), "IdBc", mfloat | cfloat },
  530. {"fjf", 2, one(0xF080), one(0xF1BF), "IdBc", mfloat | cfloat },
  531. {"fjge", 2, one(0xF093), one(0xF1BF), "IdBc", mfloat | cfloat },
  532. {"fjgl", 2, one(0xF096), one(0xF1BF), "IdBc", mfloat | cfloat },
  533. {"fjgle", 2, one(0xF097), one(0xF1BF), "IdBc", mfloat | cfloat },
  534. {"fjgt", 2, one(0xF092), one(0xF1BF), "IdBc", mfloat | cfloat },
  535. {"fjle", 2, one(0xF095), one(0xF1BF), "IdBc", mfloat | cfloat },
  536. {"fjlt", 2, one(0xF094), one(0xF1BF), "IdBc", mfloat | cfloat },
  537. {"fjne", 2, one(0xF08E), one(0xF1BF), "IdBc", mfloat | cfloat },
  538. {"fjnge", 2, one(0xF09C), one(0xF1BF), "IdBc", mfloat | cfloat },
  539. {"fjngl", 2, one(0xF099), one(0xF1BF), "IdBc", mfloat | cfloat },
  540. {"fjngle", 2, one(0xF098), one(0xF1BF), "IdBc", mfloat | cfloat },
  541. {"fjngt", 2, one(0xF09D), one(0xF1BF), "IdBc", mfloat | cfloat },
  542. {"fjnle", 2, one(0xF09A), one(0xF1BF), "IdBc", mfloat | cfloat },
  543. {"fjnlt", 2, one(0xF09B), one(0xF1BF), "IdBc", mfloat | cfloat },
  544. {"fjoge", 2, one(0xF083), one(0xF1BF), "IdBc", mfloat | cfloat },
  545. {"fjogl", 2, one(0xF086), one(0xF1BF), "IdBc", mfloat | cfloat },
  546. {"fjogt", 2, one(0xF082), one(0xF1BF), "IdBc", mfloat | cfloat },
  547. {"fjole", 2, one(0xF085), one(0xF1BF), "IdBc", mfloat | cfloat },
  548. {"fjolt", 2, one(0xF084), one(0xF1BF), "IdBc", mfloat | cfloat },
  549. {"fjor", 2, one(0xF087), one(0xF1BF), "IdBc", mfloat | cfloat },
  550. {"fjseq", 2, one(0xF091), one(0xF1BF), "IdBc", mfloat | cfloat },
  551. {"fjsf", 2, one(0xF090), one(0xF1BF), "IdBc", mfloat | cfloat },
  552. {"fjsne", 2, one(0xF09E), one(0xF1BF), "IdBc", mfloat | cfloat },
  553. {"fjst", 2, one(0xF09F), one(0xF1BF), "IdBc", mfloat | cfloat },
  554. {"fjt", 2, one(0xF08F), one(0xF1BF), "IdBc", mfloat | cfloat },
  555. {"fjueq", 2, one(0xF089), one(0xF1BF), "IdBc", mfloat | cfloat },
  556. {"fjuge", 2, one(0xF08B), one(0xF1BF), "IdBc", mfloat | cfloat },
  557. {"fjugt", 2, one(0xF08A), one(0xF1BF), "IdBc", mfloat | cfloat },
  558. {"fjule", 2, one(0xF08D), one(0xF1BF), "IdBc", mfloat | cfloat },
  559. {"fjult", 2, one(0xF08C), one(0xF1BF), "IdBc", mfloat | cfloat },
  560. {"fjun", 2, one(0xF088), one(0xF1BF), "IdBc", mfloat | cfloat },
  561. {"fcmpb", 4, two(0xF000, 0x5838), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  562. {"fcmpb", 4, two(0xF000, 0x5838), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  563. {"fcmpd", 4, two(0xF000, 0x5438), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  564. {"fcmpd", 4, two(0xF000, 0x5438), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  565. {"fcmpd", 4, two(0xF000, 0x0038), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  566. {"fcmpl", 4, two(0xF000, 0x4038), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  567. {"fcmpl", 4, two(0xF000, 0x4038), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  568. {"fcmpp", 4, two(0xF000, 0x4C38), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  569. {"fcmps", 4, two(0xF000, 0x4438), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  570. {"fcmps", 4, two(0xF000, 0x4438), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  571. {"fcmpw", 4, two(0xF000, 0x5038), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  572. {"fcmpw", 4, two(0xF000, 0x5038), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  573. {"fcmpx", 4, two(0xF000, 0x0038), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  574. {"fcmpx", 4, two(0xF000, 0x4838), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  575. {"fcosb", 4, two(0xF000, 0x581D), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  576. {"fcosd", 4, two(0xF000, 0x541D), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  577. {"fcosl", 4, two(0xF000, 0x401D), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  578. {"fcosp", 4, two(0xF000, 0x4C1D), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  579. {"fcoss", 4, two(0xF000, 0x441D), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  580. {"fcosw", 4, two(0xF000, 0x501D), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  581. {"fcosx", 4, two(0xF000, 0x001D), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  582. {"fcosx", 4, two(0xF000, 0x481D), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  583. {"fcosx", 4, two(0xF000, 0x001D), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  584. {"fcoshb", 4, two(0xF000, 0x5819), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  585. {"fcoshd", 4, two(0xF000, 0x5419), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  586. {"fcoshl", 4, two(0xF000, 0x4019), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  587. {"fcoshp", 4, two(0xF000, 0x4C19), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  588. {"fcoshs", 4, two(0xF000, 0x4419), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  589. {"fcoshw", 4, two(0xF000, 0x5019), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  590. {"fcoshx", 4, two(0xF000, 0x0019), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  591. {"fcoshx", 4, two(0xF000, 0x4819), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  592. {"fcoshx", 4, two(0xF000, 0x0019), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  593. {"fdbeq", 4, two(0xF048, 0x0001), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  594. {"fdbf", 4, two(0xF048, 0x0000), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  595. {"fdbge", 4, two(0xF048, 0x0013), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  596. {"fdbgl", 4, two(0xF048, 0x0016), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  597. {"fdbgle", 4, two(0xF048, 0x0017), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  598. {"fdbgt", 4, two(0xF048, 0x0012), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  599. {"fdble", 4, two(0xF048, 0x0015), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  600. {"fdblt", 4, two(0xF048, 0x0014), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  601. {"fdbne", 4, two(0xF048, 0x000E), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  602. {"fdbnge", 4, two(0xF048, 0x001C), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  603. {"fdbngl", 4, two(0xF048, 0x0019), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  604. {"fdbngle", 4, two(0xF048, 0x0018), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  605. {"fdbngt", 4, two(0xF048, 0x001D), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  606. {"fdbnle", 4, two(0xF048, 0x001A), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  607. {"fdbnlt", 4, two(0xF048, 0x001B), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  608. {"fdboge", 4, two(0xF048, 0x0003), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  609. {"fdbogl", 4, two(0xF048, 0x0006), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  610. {"fdbogt", 4, two(0xF048, 0x0002), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  611. {"fdbole", 4, two(0xF048, 0x0005), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  612. {"fdbolt", 4, two(0xF048, 0x0004), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  613. {"fdbor", 4, two(0xF048, 0x0007), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  614. {"fdbseq", 4, two(0xF048, 0x0011), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  615. {"fdbsf", 4, two(0xF048, 0x0010), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  616. {"fdbsne", 4, two(0xF048, 0x001E), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  617. {"fdbst", 4, two(0xF048, 0x001F), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  618. {"fdbt", 4, two(0xF048, 0x000F), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  619. {"fdbueq", 4, two(0xF048, 0x0009), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  620. {"fdbuge", 4, two(0xF048, 0x000B), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  621. {"fdbugt", 4, two(0xF048, 0x000A), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  622. {"fdbule", 4, two(0xF048, 0x000D), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  623. {"fdbult", 4, two(0xF048, 0x000C), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  624. {"fdbun", 4, two(0xF048, 0x0008), two(0xF1F8, 0xFFFF), "IiDsBw", mfloat },
  625. {"fdivb", 4, two(0xF000, 0x5820), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  626. {"fdivb", 4, two(0xF000, 0x5820), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  627. {"fdivd", 4, two(0xF000, 0x0020), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  628. {"fdivd", 4, two(0xF000, 0x5420), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  629. {"fdivd", 4, two(0xF000, 0x5420), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  630. {"fdivl", 4, two(0xF000, 0x4020), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  631. {"fdivl", 4, two(0xF000, 0x4020), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  632. {"fdivp", 4, two(0xF000, 0x4C20), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  633. {"fdivs", 4, two(0xF000, 0x4420), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  634. {"fdivs", 4, two(0xF000, 0x4420), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  635. {"fdivw", 4, two(0xF000, 0x5020), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  636. {"fdivw", 4, two(0xF000, 0x5020), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  637. {"fdivx", 4, two(0xF000, 0x0020), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  638. {"fdivx", 4, two(0xF000, 0x4820), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  639. {"fsdivb", 4, two(0xF000, 0x5860), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  640. {"fsdivb", 4, two(0xF000, 0x5860), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  641. {"fsdivd", 4, two(0xF000, 0x0060), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  642. {"fsdivd", 4, two(0xF000, 0x5460), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  643. {"fsdivd", 4, two(0xF000, 0x5460), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  644. {"fsdivl", 4, two(0xF000, 0x4060), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  645. {"fsdivl", 4, two(0xF000, 0x4060), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  646. {"fsdivp", 4, two(0xF000, 0x4C60), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  647. {"fsdivs", 4, two(0xF000, 0x4460), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  648. {"fsdivs", 4, two(0xF000, 0x4460), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  649. {"fsdivw", 4, two(0xF000, 0x5060), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  650. {"fsdivw", 4, two(0xF000, 0x5060), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  651. {"fsdivx", 4, two(0xF000, 0x0060), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  652. {"fsdivx", 4, two(0xF000, 0x4860), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  653. {"fddivb", 4, two(0xF000, 0x5864), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  654. {"fddivb", 4, two(0xF000, 0x5864), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  655. {"fddivd", 4, two(0xF000, 0x0064), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  656. {"fddivd", 4, two(0xF000, 0x5464), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  657. {"fddivd", 4, two(0xF000, 0x5464), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  658. {"fddivl", 4, two(0xF000, 0x4064), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  659. {"fddivl", 4, two(0xF000, 0x4064), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  660. {"fddivp", 4, two(0xF000, 0x4C64), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  661. {"fddivs", 4, two(0xF000, 0x4464), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  662. {"fddivs", 4, two(0xF000, 0x4464), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  663. {"fddivw", 4, two(0xF000, 0x5064), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  664. {"fddivw", 4, two(0xF000, 0x5064), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  665. {"fddivx", 4, two(0xF000, 0x0064), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  666. {"fddivx", 4, two(0xF000, 0x4864), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  667. {"fetoxb", 4, two(0xF000, 0x5810), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  668. {"fetoxd", 4, two(0xF000, 0x5410), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  669. {"fetoxl", 4, two(0xF000, 0x4010), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  670. {"fetoxp", 4, two(0xF000, 0x4C10), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  671. {"fetoxs", 4, two(0xF000, 0x4410), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  672. {"fetoxw", 4, two(0xF000, 0x5010), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  673. {"fetoxx", 4, two(0xF000, 0x0010), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  674. {"fetoxx", 4, two(0xF000, 0x4810), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  675. {"fetoxx", 4, two(0xF000, 0x0010), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  676. {"fetoxm1b", 4, two(0xF000, 0x5808), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  677. {"fetoxm1d", 4, two(0xF000, 0x5408), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  678. {"fetoxm1l", 4, two(0xF000, 0x4008), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  679. {"fetoxm1p", 4, two(0xF000, 0x4C08), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  680. {"fetoxm1s", 4, two(0xF000, 0x4408), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  681. {"fetoxm1w", 4, two(0xF000, 0x5008), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  682. {"fetoxm1x", 4, two(0xF000, 0x0008), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  683. {"fetoxm1x", 4, two(0xF000, 0x4808), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  684. {"fetoxm1x", 4, two(0xF000, 0x0008), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  685. {"fgetexpb", 4, two(0xF000, 0x581E), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  686. {"fgetexpd", 4, two(0xF000, 0x541E), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  687. {"fgetexpl", 4, two(0xF000, 0x401E), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  688. {"fgetexpp", 4, two(0xF000, 0x4C1E), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  689. {"fgetexps", 4, two(0xF000, 0x441E), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  690. {"fgetexpw", 4, two(0xF000, 0x501E), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  691. {"fgetexpx", 4, two(0xF000, 0x001E), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  692. {"fgetexpx", 4, two(0xF000, 0x481E), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  693. {"fgetexpx", 4, two(0xF000, 0x001E), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  694. {"fgetmanb", 4, two(0xF000, 0x581F), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  695. {"fgetmand", 4, two(0xF000, 0x541F), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  696. {"fgetmanl", 4, two(0xF000, 0x401F), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  697. {"fgetmanp", 4, two(0xF000, 0x4C1F), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  698. {"fgetmans", 4, two(0xF000, 0x441F), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  699. {"fgetmanw", 4, two(0xF000, 0x501F), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  700. {"fgetmanx", 4, two(0xF000, 0x001F), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  701. {"fgetmanx", 4, two(0xF000, 0x481F), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  702. {"fgetmanx", 4, two(0xF000, 0x001F), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  703. {"fintb", 4, two(0xF000, 0x5801), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  704. {"fintb", 4, two(0xF000, 0x5801), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  705. {"fintd", 4, two(0xF000, 0x0001), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  706. {"fintd", 4, two(0xF000, 0x0001), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  707. {"fintd", 4, two(0xF000, 0x5401), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  708. {"fintd", 4, two(0xF000, 0x5401), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  709. {"fintl", 4, two(0xF000, 0x4001), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  710. {"fintl", 4, two(0xF000, 0x4001), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  711. {"fintp", 4, two(0xF000, 0x4C01), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  712. {"fints", 4, two(0xF000, 0x4401), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  713. {"fints", 4, two(0xF000, 0x4401), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  714. {"fintw", 4, two(0xF000, 0x5001), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  715. {"fintw", 4, two(0xF000, 0x5001), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  716. {"fintx", 4, two(0xF000, 0x0001), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  717. {"fintx", 4, two(0xF000, 0x4801), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  718. {"fintx", 4, two(0xF000, 0x0001), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  719. {"fintrzb", 4, two(0xF000, 0x5803), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  720. {"fintrzb", 4, two(0xF000, 0x5803), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  721. {"fintrzd", 4, two(0xF000, 0x0003), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  722. {"fintrzd", 4, two(0xF000, 0x0003), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  723. {"fintrzd", 4, two(0xF000, 0x5403), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  724. {"fintrzd", 4, two(0xF000, 0x5403), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  725. {"fintrzl", 4, two(0xF000, 0x4003), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  726. {"fintrzl", 4, two(0xF000, 0x4003), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  727. {"fintrzp", 4, two(0xF000, 0x4C03), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  728. {"fintrzs", 4, two(0xF000, 0x4403), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  729. {"fintrzs", 4, two(0xF000, 0x4403), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  730. {"fintrzw", 4, two(0xF000, 0x5003), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  731. {"fintrzw", 4, two(0xF000, 0x5003), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  732. {"fintrzx", 4, two(0xF000, 0x0003), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  733. {"fintrzx", 4, two(0xF000, 0x4803), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  734. {"fintrzx", 4, two(0xF000, 0x0003), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  735. {"flog10b", 4, two(0xF000, 0x5815), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  736. {"flog10d", 4, two(0xF000, 0x5415), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  737. {"flog10l", 4, two(0xF000, 0x4015), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  738. {"flog10p", 4, two(0xF000, 0x4C15), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  739. {"flog10s", 4, two(0xF000, 0x4415), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  740. {"flog10w", 4, two(0xF000, 0x5015), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  741. {"flog10x", 4, two(0xF000, 0x0015), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  742. {"flog10x", 4, two(0xF000, 0x4815), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  743. {"flog10x", 4, two(0xF000, 0x0015), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  744. {"flog2b", 4, two(0xF000, 0x5816), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  745. {"flog2d", 4, two(0xF000, 0x5416), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  746. {"flog2l", 4, two(0xF000, 0x4016), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  747. {"flog2p", 4, two(0xF000, 0x4C16), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  748. {"flog2s", 4, two(0xF000, 0x4416), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  749. {"flog2w", 4, two(0xF000, 0x5016), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  750. {"flog2x", 4, two(0xF000, 0x0016), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  751. {"flog2x", 4, two(0xF000, 0x4816), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  752. {"flog2x", 4, two(0xF000, 0x0016), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  753. {"flognb", 4, two(0xF000, 0x5814), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  754. {"flognd", 4, two(0xF000, 0x5414), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  755. {"flognl", 4, two(0xF000, 0x4014), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  756. {"flognp", 4, two(0xF000, 0x4C14), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  757. {"flogns", 4, two(0xF000, 0x4414), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  758. {"flognw", 4, two(0xF000, 0x5014), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  759. {"flognx", 4, two(0xF000, 0x0014), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  760. {"flognx", 4, two(0xF000, 0x4814), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  761. {"flognx", 4, two(0xF000, 0x0014), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  762. {"flognp1b", 4, two(0xF000, 0x5806), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  763. {"flognp1d", 4, two(0xF000, 0x5406), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  764. {"flognp1l", 4, two(0xF000, 0x4006), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  765. {"flognp1p", 4, two(0xF000, 0x4C06), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  766. {"flognp1s", 4, two(0xF000, 0x4406), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  767. {"flognp1w", 4, two(0xF000, 0x5006), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  768. {"flognp1x", 4, two(0xF000, 0x0006), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  769. {"flognp1x", 4, two(0xF000, 0x4806), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  770. {"flognp1x", 4, two(0xF000, 0x0006), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  771. {"fmodb", 4, two(0xF000, 0x5821), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  772. {"fmodd", 4, two(0xF000, 0x5421), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  773. {"fmodl", 4, two(0xF000, 0x4021), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  774. {"fmodp", 4, two(0xF000, 0x4C21), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  775. {"fmods", 4, two(0xF000, 0x4421), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  776. {"fmodw", 4, two(0xF000, 0x5021), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  777. {"fmodx", 4, two(0xF000, 0x0021), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  778. {"fmodx", 4, two(0xF000, 0x4821), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  779. {"fmoveb", 4, two(0xF000, 0x5800), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  780. {"fmoveb", 4, two(0xF000, 0x7800), two(0xF1C0, 0xFC7F), "IiF7bs", cfloat },
  781. {"fmoveb", 4, two(0xF000, 0x5800), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  782. {"fmoveb", 4, two(0xF000, 0x7800), two(0xF1C0, 0xFC7F), "IiF7$b", mfloat },
  783. {"fmoved", 4, two(0xF000, 0x5400), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  784. {"fmoved", 4, two(0xF000, 0x7400), two(0xF1C0, 0xFC7F), "IiF7~F", mfloat },
  785. {"fmoved", 4, two(0xF000, 0x0000), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  786. {"fmoved", 4, two(0xF000, 0x5400), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  787. {"fmoved", 4, two(0xF000, 0x7400), two(0xF1C0, 0xFC7F), "IiF7ws", cfloat },
  788. {"fmovel", 4, two(0xF000, 0x4000), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  789. {"fmovel", 4, two(0xF000, 0x6000), two(0xF1C0, 0xFC7F), "IiF7$l", mfloat },
  790. /* FIXME: the next two variants should not permit moving an address
  791. register to anything but the floating point instruction register. */
  792. {"fmovel", 4, two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
  793. {"fmovel", 4, two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*ls8", mfloat },
  794. {"fmovel", 4, two(0xF000, 0x4000), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  795. {"fmovel", 4, two(0xF000, 0x6000), two(0xF1C0, 0xFC7F), "IiF7bs", cfloat },
  796. /* Move the FP control registers. */
  797. {"fmovel", 4, two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8ps", cfloat },
  798. {"fmovel", 4, two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Iibss8", cfloat },
  799. {"fmovep", 4, two(0xF000, 0x4C00), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  800. {"fmovep", 4, two(0xF000, 0x6C00), two(0xF1C0, 0xFC00), "IiF7~pkC", mfloat },
  801. {"fmovep", 4, two(0xF000, 0x7C00), two(0xF1C0, 0xFC0F), "IiF7~pDk", mfloat },
  802. {"fmoves", 4, two(0xF000, 0x4400), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  803. {"fmoves", 4, two(0xF000, 0x6400), two(0xF1C0, 0xFC7F), "IiF7$f", mfloat },
  804. {"fmoves", 4, two(0xF000, 0x4400), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  805. {"fmoves", 4, two(0xF000, 0x6400), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  806. {"fmovew", 4, two(0xF000, 0x5000), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  807. {"fmovew", 4, two(0xF000, 0x7000), two(0xF1C0, 0xFC7F), "IiF7$w", mfloat },
  808. {"fmovew", 4, two(0xF000, 0x5000), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  809. {"fmovew", 4, two(0xF000, 0x7000), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  810. {"fmovex", 4, two(0xF000, 0x0000), two(0xF1FF, 0xE07F), "IiF8F7", mfloat },
  811. {"fmovex", 4, two(0xF000, 0x4800), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  812. {"fmovex", 4, two(0xF000, 0x6800), two(0xF1C0, 0xFC7F), "IiF7~x", mfloat },
  813. {"fsmoveb", 4, two(0xF000, 0x5840), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  814. {"fsmoveb", 4, two(0xF000, 0x5840), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  815. {"fsmoveb", 4, two(0xF000, 0x7840), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  816. {"fsmoved", 4, two(0xF000, 0x0040), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  817. {"fsmoved", 4, two(0xF000, 0x5440), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  818. {"fsmoved", 4, two(0xF000, 0x5440), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  819. {"fsmoved", 4, two(0xF000, 0x7440), two(0xF1C0, 0xFC7F), "IiF7ws", cfloat },
  820. {"fsmovel", 4, two(0xF000, 0x4040), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  821. {"fsmovel", 4, two(0xF000, 0x4040), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  822. {"fsmovel", 4, two(0xF000, 0x6040), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  823. {"fsmoves", 4, two(0xF000, 0x4440), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  824. {"fsmoves", 4, two(0xF000, 0x4440), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  825. {"fsmoves", 4, two(0xF000, 0x6440), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  826. {"fsmovew", 4, two(0xF000, 0x5040), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  827. {"fsmovew", 4, two(0xF000, 0x5040), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  828. {"fsmovew", 4, two(0xF000, 0x7040), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  829. {"fsmovex", 4, two(0xF000, 0x0040), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  830. {"fsmovex", 4, two(0xF000, 0x4840), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  831. {"fsmovep", 4, two(0xF000, 0x4C40), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  832. {"fdmoveb", 4, two(0xF000, 0x5844), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  833. {"fdmoveb", 4, two(0xF000, 0x5844), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  834. {"fdmoveb", 4, two(0xF000, 0x7844), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  835. {"fdmoved", 4, two(0xF000, 0x0044), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  836. {"fdmoved", 4, two(0xF000, 0x5444), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  837. {"fdmoved", 4, two(0xF000, 0x5444), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  838. {"fdmoved", 4, two(0xF000, 0x7444), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  839. {"fdmovel", 4, two(0xF000, 0x4044), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  840. {"fdmovel", 4, two(0xF000, 0x4044), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  841. {"fdmovel", 4, two(0xF000, 0x6044), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  842. {"fdmoves", 4, two(0xF000, 0x4444), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  843. {"fdmoves", 4, two(0xF000, 0x4444), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  844. {"fdmoves", 4, two(0xF000, 0x6444), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  845. {"fdmovew", 4, two(0xF000, 0x5044), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  846. {"fdmovew", 4, two(0xF000, 0x5044), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  847. {"fdmovew", 4, two(0xF000, 0x7044), two(0xF1C0, 0xFC7F), "IiF7qs", cfloat },
  848. {"fdmovex", 4, two(0xF000, 0x0044), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  849. {"fdmovex", 4, two(0xF000, 0x4844), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  850. {"fdmovep", 4, two(0xF000, 0x4C44), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  851. {"fmovecrx", 4, two(0xF000, 0x5C00), two(0xF1FF, 0xFC00), "Ii#CF7", mfloat },
  852. {"fmovemd", 4, two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Iizsl3", cfloat },
  853. {"fmovemd", 4, two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Iizs#3", cfloat },
  854. {"fmovemd", 4, two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Iil3ys", cfloat },
  855. {"fmovemd", 4, two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Ii#3ys", cfloat },
  856. {"fmovemx", 4, two(0xF000, 0xF800), two(0xF1C0, 0xFF8F), "IiDk&s", mfloat },
  857. {"fmovemx", 4, two(0xF020, 0xE800), two(0xF1F8, 0xFF8F), "IiDk-s", mfloat },
  858. {"fmovemx", 4, two(0xF000, 0xD800), two(0xF1C0, 0xFF8F), "Ii&sDk", mfloat },
  859. {"fmovemx", 4, two(0xF018, 0xD800), two(0xF1F8, 0xFF8F), "Ii+sDk", mfloat },
  860. {"fmovemx", 4, two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s", mfloat },
  861. {"fmovemx", 4, two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Id#3&s", mfloat },
  862. {"fmovemx", 4, two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&sl3", mfloat },
  863. {"fmovemx", 4, two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&s#3", mfloat },
  864. {"fmovemx", 4, two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s", mfloat },
  865. {"fmovemx", 4, two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "Id#3-s", mfloat },
  866. {"fmovemx", 4, two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3", mfloat },
  867. {"fmovemx", 4, two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3", mfloat },
  868. {"fmoveml", 4, two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
  869. {"fmoveml", 4, two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "IiL8~s", mfloat },
  870. /* FIXME: In the next instruction, we should only permit %dn if the
  871. target is a single register. We should only permit %an if the
  872. target is a single %fpiar. */
  873. {"fmoveml", 4, two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*lL8", mfloat },
  874. {"fmovem", 4, two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Iizsl3", cfloat },
  875. {"fmovem", 4, two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Iizs#3", cfloat },
  876. {"fmovem", 4, two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Iil3ys", cfloat },
  877. {"fmovem", 4, two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Ii#3ys", cfloat },
  878. {"fmovem", 4, two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s", mfloat },
  879. {"fmovem", 4, two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s", mfloat },
  880. {"fmovem", 4, two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3", mfloat },
  881. {"fmovem", 4, two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&sl3", mfloat },
  882. {"fmovem", 4, two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "Id#3-s", mfloat },
  883. {"fmovem", 4, two(0xF020, 0xE800), two(0xF1F8, 0xFF8F), "IiDk-s", mfloat },
  884. {"fmovem", 4, two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Id#3&s", mfloat },
  885. {"fmovem", 4, two(0xF000, 0xF800), two(0xF1C0, 0xFF8F), "IiDk&s", mfloat },
  886. {"fmovem", 4, two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3", mfloat },
  887. {"fmovem", 4, two(0xF018, 0xD800), two(0xF1F8, 0xFF8F), "Ii+sDk", mfloat },
  888. {"fmovem", 4, two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&s#3", mfloat },
  889. {"fmovem", 4, two(0xF000, 0xD800), two(0xF1C0, 0xFF8F), "Ii&sDk", mfloat },
  890. {"fmovem", 4, two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "Iis8%s", mfloat },
  891. {"fmovem", 4, two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*ss8", mfloat },
  892. {"fmovem", 4, two(0xF000, 0xA000), two(0xF1C0, 0xE3FF), "IiL8~s", mfloat },
  893. {"fmovem", 4, two(0xF000, 0x8000), two(0xF2C0, 0xE3FF), "Ii*sL8", mfloat },
  894. {"fmulb", 4, two(0xF000, 0x5823), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  895. {"fmulb", 4, two(0xF000, 0x5823), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  896. {"fmuld", 4, two(0xF000, 0x0023), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  897. {"fmuld", 4, two(0xF000, 0x5423), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  898. {"fmuld", 4, two(0xF000, 0x5423), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  899. {"fmull", 4, two(0xF000, 0x4023), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  900. {"fmull", 4, two(0xF000, 0x4023), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  901. {"fmulp", 4, two(0xF000, 0x4C23), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  902. {"fmuls", 4, two(0xF000, 0x4423), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  903. {"fmuls", 4, two(0xF000, 0x4423), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  904. {"fmulw", 4, two(0xF000, 0x5023), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  905. {"fmulw", 4, two(0xF000, 0x5023), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  906. {"fmulx", 4, two(0xF000, 0x0023), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  907. {"fmulx", 4, two(0xF000, 0x4823), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  908. {"fsmulb", 4, two(0xF000, 0x5863), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  909. {"fsmulb", 4, two(0xF000, 0x5863), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  910. {"fsmuld", 4, two(0xF000, 0x0063), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  911. {"fsmuld", 4, two(0xF000, 0x5463), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  912. {"fsmuld", 4, two(0xF000, 0x5463), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  913. {"fsmull", 4, two(0xF000, 0x4063), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  914. {"fsmull", 4, two(0xF000, 0x4063), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  915. {"fsmulp", 4, two(0xF000, 0x4C63), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  916. {"fsmuls", 4, two(0xF000, 0x4463), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  917. {"fsmuls", 4, two(0xF000, 0x4463), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  918. {"fsmulw", 4, two(0xF000, 0x5063), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  919. {"fsmulw", 4, two(0xF000, 0x5063), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  920. {"fsmulx", 4, two(0xF000, 0x0063), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  921. {"fsmulx", 4, two(0xF000, 0x4863), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  922. {"fdmulb", 4, two(0xF000, 0x5867), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  923. {"fdmulb", 4, two(0xF000, 0x5867), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  924. {"fdmuld", 4, two(0xF000, 0x0067), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  925. {"fdmuld", 4, two(0xF000, 0x5467), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  926. {"fdmuld", 4, two(0xF000, 0x5467), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  927. {"fdmull", 4, two(0xF000, 0x4067), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  928. {"fdmull", 4, two(0xF000, 0x4067), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  929. {"fdmulp", 4, two(0xF000, 0x4C67), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  930. {"fdmuls", 4, two(0xF000, 0x4467), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  931. {"fdmuls", 4, two(0xF000, 0x4467), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  932. {"fdmulw", 4, two(0xF000, 0x5067), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  933. {"fdmulw", 4, two(0xF000, 0x5067), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  934. {"fdmulx", 4, two(0xF000, 0x0067), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  935. {"fdmulx", 4, two(0xF000, 0x4867), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  936. {"fnegb", 4, two(0xF000, 0x581A), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  937. {"fnegb", 4, two(0xF000, 0x581A), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  938. {"fnegd", 4, two(0xF000, 0x001A), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  939. {"fnegd", 4, two(0xF000, 0x001A), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  940. {"fnegd", 4, two(0xF000, 0x541A), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  941. {"fnegd", 4, two(0xF000, 0x541A), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  942. {"fnegl", 4, two(0xF000, 0x401A), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  943. {"fnegl", 4, two(0xF000, 0x401A), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  944. {"fnegp", 4, two(0xF000, 0x4C1A), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  945. {"fnegs", 4, two(0xF000, 0x441A), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  946. {"fnegs", 4, two(0xF000, 0x441A), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  947. {"fnegw", 4, two(0xF000, 0x501A), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  948. {"fnegw", 4, two(0xF000, 0x501A), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  949. {"fnegx", 4, two(0xF000, 0x001A), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  950. {"fnegx", 4, two(0xF000, 0x481A), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  951. {"fnegx", 4, two(0xF000, 0x001A), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  952. {"fsnegb", 4, two(0xF000, 0x585A), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  953. {"fsnegb", 4, two(0xF000, 0x585A), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  954. {"fsnegd", 4, two(0xF000, 0x005A), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  955. {"fsnegd", 4, two(0xF000, 0x005A), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  956. {"fsnegd", 4, two(0xF000, 0x545A), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  957. {"fsnegd", 4, two(0xF000, 0x545A), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  958. {"fsnegl", 4, two(0xF000, 0x405A), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  959. {"fsnegl", 4, two(0xF000, 0x405A), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  960. {"fsnegp", 4, two(0xF000, 0x4C5A), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  961. {"fsnegs", 4, two(0xF000, 0x445A), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  962. {"fsnegs", 4, two(0xF000, 0x445A), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  963. {"fsnegw", 4, two(0xF000, 0x505A), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  964. {"fsnegw", 4, two(0xF000, 0x505A), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  965. {"fsnegx", 4, two(0xF000, 0x005A), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  966. {"fsnegx", 4, two(0xF000, 0x485A), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  967. {"fsnegx", 4, two(0xF000, 0x005A), two(0xF1C0, 0xE07F), "IiFt", m68040up },
  968. {"fdnegb", 4, two(0xF000, 0x585E), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  969. {"fdnegb", 4, two(0xF000, 0x585E), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  970. {"fdnegd", 4, two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  971. {"fdnegd", 4, two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  972. {"fdnegd", 4, two(0xF000, 0x545E), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  973. {"fdnegd", 4, two(0xF000, 0x545E), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  974. {"fdnegl", 4, two(0xF000, 0x405E), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  975. {"fdnegl", 4, two(0xF000, 0x405E), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  976. {"fdnegp", 4, two(0xF000, 0x4C5E), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  977. {"fdnegs", 4, two(0xF000, 0x445E), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  978. {"fdnegs", 4, two(0xF000, 0x445E), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  979. {"fdnegw", 4, two(0xF000, 0x505E), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  980. {"fdnegw", 4, two(0xF000, 0x505E), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  981. {"fdnegx", 4, two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  982. {"fdnegx", 4, two(0xF000, 0x485E), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  983. {"fdnegx", 4, two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiFt", m68040up },
  984. {"fremb", 4, two(0xF000, 0x5825), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  985. {"fremd", 4, two(0xF000, 0x5425), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  986. {"freml", 4, two(0xF000, 0x4025), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  987. {"fremp", 4, two(0xF000, 0x4C25), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  988. {"frems", 4, two(0xF000, 0x4425), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  989. {"fremw", 4, two(0xF000, 0x5025), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  990. {"fremx", 4, two(0xF000, 0x0025), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  991. {"fremx", 4, two(0xF000, 0x4825), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  992. {"frestore", 2, one(0xF140), one(0xF1C0), "Id<s", mfloat },
  993. {"frestore", 2, one(0xF140), one(0xF1C0), "Idys", cfloat },
  994. {"fsave", 2, one(0xF100), one(0xF1C0), "Id>s", mfloat },
  995. {"fsave", 2, one(0xF100), one(0xF1C0), "Idzs", cfloat },
  996. {"fscaleb", 4, two(0xF000, 0x5826), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  997. {"fscaled", 4, two(0xF000, 0x5426), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  998. {"fscalel", 4, two(0xF000, 0x4026), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  999. {"fscalep", 4, two(0xF000, 0x4C26), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1000. {"fscales", 4, two(0xF000, 0x4426), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1001. {"fscalew", 4, two(0xF000, 0x5026), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1002. {"fscalex", 4, two(0xF000, 0x0026), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1003. {"fscalex", 4, two(0xF000, 0x4826), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1004. /* $ is necessary to prevent the assembler from using PC-relative.
  1005. If @ were used, "label: fseq label" could produce "ftrapeq", 2,
  1006. because "label" became "pc@label". */
  1007. {"fseq", 4, two(0xF040, 0x0001), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1008. {"fsf", 4, two(0xF040, 0x0000), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1009. {"fsge", 4, two(0xF040, 0x0013), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1010. {"fsgl", 4, two(0xF040, 0x0016), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1011. {"fsgle", 4, two(0xF040, 0x0017), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1012. {"fsgt", 4, two(0xF040, 0x0012), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1013. {"fsle", 4, two(0xF040, 0x0015), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1014. {"fslt", 4, two(0xF040, 0x0014), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1015. {"fsne", 4, two(0xF040, 0x000E), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1016. {"fsnge", 4, two(0xF040, 0x001C), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1017. {"fsngl", 4, two(0xF040, 0x0019), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1018. {"fsngle", 4, two(0xF040, 0x0018), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1019. {"fsngt", 4, two(0xF040, 0x001D), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1020. {"fsnle", 4, two(0xF040, 0x001A), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1021. {"fsnlt", 4, two(0xF040, 0x001B), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1022. {"fsoge", 4, two(0xF040, 0x0003), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1023. {"fsogl", 4, two(0xF040, 0x0006), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1024. {"fsogt", 4, two(0xF040, 0x0002), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1025. {"fsole", 4, two(0xF040, 0x0005), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1026. {"fsolt", 4, two(0xF040, 0x0004), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1027. {"fsor", 4, two(0xF040, 0x0007), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1028. {"fsseq", 4, two(0xF040, 0x0011), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1029. {"fssf", 4, two(0xF040, 0x0010), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1030. {"fssne", 4, two(0xF040, 0x001E), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1031. {"fsst", 4, two(0xF040, 0x001F), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1032. {"fst", 4, two(0xF040, 0x000F), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1033. {"fsueq", 4, two(0xF040, 0x0009), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1034. {"fsuge", 4, two(0xF040, 0x000B), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1035. {"fsugt", 4, two(0xF040, 0x000A), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1036. {"fsule", 4, two(0xF040, 0x000D), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1037. {"fsult", 4, two(0xF040, 0x000C), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1038. {"fsun", 4, two(0xF040, 0x0008), two(0xF1C0, 0xFFFF), "Ii$s", mfloat },
  1039. {"fsgldivb", 4, two(0xF000, 0x5824), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1040. {"fsgldivd", 4, two(0xF000, 0x5424), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1041. {"fsgldivl", 4, two(0xF000, 0x4024), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1042. {"fsgldivp", 4, two(0xF000, 0x4C24), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1043. {"fsgldivs", 4, two(0xF000, 0x4424), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1044. {"fsgldivw", 4, two(0xF000, 0x5024), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1045. {"fsgldivx", 4, two(0xF000, 0x0024), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1046. {"fsgldivx", 4, two(0xF000, 0x4824), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1047. {"fsgldivx", 4, two(0xF000, 0x0024), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1048. {"fsglmulb", 4, two(0xF000, 0x5827), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1049. {"fsglmuld", 4, two(0xF000, 0x5427), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1050. {"fsglmull", 4, two(0xF000, 0x4027), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1051. {"fsglmulp", 4, two(0xF000, 0x4C27), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1052. {"fsglmuls", 4, two(0xF000, 0x4427), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1053. {"fsglmulw", 4, two(0xF000, 0x5027), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1054. {"fsglmulx", 4, two(0xF000, 0x0027), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1055. {"fsglmulx", 4, two(0xF000, 0x4827), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1056. {"fsglmulx", 4, two(0xF000, 0x0027), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1057. {"fsinb", 4, two(0xF000, 0x580E), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1058. {"fsind", 4, two(0xF000, 0x540E), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1059. {"fsinl", 4, two(0xF000, 0x400E), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1060. {"fsinp", 4, two(0xF000, 0x4C0E), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1061. {"fsins", 4, two(0xF000, 0x440E), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1062. {"fsinw", 4, two(0xF000, 0x500E), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1063. {"fsinx", 4, two(0xF000, 0x000E), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1064. {"fsinx", 4, two(0xF000, 0x480E), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1065. {"fsinx", 4, two(0xF000, 0x000E), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1066. {"fsincosb", 4, two(0xF000, 0x5830), two(0xF1C0, 0xFC78), "Ii;bF3F7", mfloat },
  1067. {"fsincosd", 4, two(0xF000, 0x5430), two(0xF1C0, 0xFC78), "Ii;FF3F7", mfloat },
  1068. {"fsincosl", 4, two(0xF000, 0x4030), two(0xF1C0, 0xFC78), "Ii;lF3F7", mfloat },
  1069. {"fsincosp", 4, two(0xF000, 0x4C30), two(0xF1C0, 0xFC78), "Ii;pF3F7", mfloat },
  1070. {"fsincoss", 4, two(0xF000, 0x4430), two(0xF1C0, 0xFC78), "Ii;fF3F7", mfloat },
  1071. {"fsincosw", 4, two(0xF000, 0x5030), two(0xF1C0, 0xFC78), "Ii;wF3F7", mfloat },
  1072. {"fsincosx", 4, two(0xF000, 0x0030), two(0xF1C0, 0xE078), "IiF8F3F7", mfloat },
  1073. {"fsincosx", 4, two(0xF000, 0x4830), two(0xF1C0, 0xFC78), "Ii;xF3F7", mfloat },
  1074. {"fsinhb", 4, two(0xF000, 0x5802), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1075. {"fsinhd", 4, two(0xF000, 0x5402), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1076. {"fsinhl", 4, two(0xF000, 0x4002), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1077. {"fsinhp", 4, two(0xF000, 0x4C02), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1078. {"fsinhs", 4, two(0xF000, 0x4402), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1079. {"fsinhw", 4, two(0xF000, 0x5002), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1080. {"fsinhx", 4, two(0xF000, 0x0002), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1081. {"fsinhx", 4, two(0xF000, 0x4802), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1082. {"fsinhx", 4, two(0xF000, 0x0002), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1083. {"fsqrtb", 4, two(0xF000, 0x5804), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1084. {"fsqrtb", 4, two(0xF000, 0x5804), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1085. {"fsqrtd", 4, two(0xF000, 0x0004), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  1086. {"fsqrtd", 4, two(0xF000, 0x0004), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  1087. {"fsqrtd", 4, two(0xF000, 0x5404), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1088. {"fsqrtd", 4, two(0xF000, 0x5404), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  1089. {"fsqrtl", 4, two(0xF000, 0x4004), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1090. {"fsqrtl", 4, two(0xF000, 0x4004), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1091. {"fsqrtp", 4, two(0xF000, 0x4C04), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1092. {"fsqrts", 4, two(0xF000, 0x4404), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1093. {"fsqrts", 4, two(0xF000, 0x4404), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1094. {"fsqrtw", 4, two(0xF000, 0x5004), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1095. {"fsqrtw", 4, two(0xF000, 0x5004), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1096. {"fsqrtx", 4, two(0xF000, 0x0004), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1097. {"fsqrtx", 4, two(0xF000, 0x4804), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1098. {"fsqrtx", 4, two(0xF000, 0x0004), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1099. {"fssqrtb", 4, two(0xF000, 0x5841), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  1100. {"fssqrtb", 4, two(0xF000, 0x5841), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1101. {"fssqrtd", 4, two(0xF000, 0x0041), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  1102. {"fssqrtd", 4, two(0xF000, 0x0041), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  1103. {"fssqrtd", 4, two(0xF000, 0x5441), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  1104. {"fssqrtd", 4, two(0xF000, 0x5441), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  1105. {"fssqrtl", 4, two(0xF000, 0x4041), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  1106. {"fssqrtl", 4, two(0xF000, 0x4041), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1107. {"fssqrtp", 4, two(0xF000, 0x4C41), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  1108. {"fssqrts", 4, two(0xF000, 0x4441), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  1109. {"fssqrts", 4, two(0xF000, 0x4441), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1110. {"fssqrtw", 4, two(0xF000, 0x5041), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  1111. {"fssqrtw", 4, two(0xF000, 0x5041), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1112. {"fssqrtx", 4, two(0xF000, 0x0041), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  1113. {"fssqrtx", 4, two(0xF000, 0x4841), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  1114. {"fssqrtx", 4, two(0xF000, 0x0041), two(0xF1C0, 0xE07F), "IiFt", m68040up },
  1115. {"fdsqrtb", 4, two(0xF000, 0x5845), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  1116. {"fdsqrtb", 4, two(0xF000, 0x5845), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1117. {"fdsqrtd", 4, two(0xF000, 0x0045), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  1118. {"fdsqrtd", 4, two(0xF000, 0x0045), two(0xF1C0, 0xE07F), "IiFt", cfloat },
  1119. {"fdsqrtd", 4, two(0xF000, 0x5445), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  1120. {"fdsqrtd", 4, two(0xF000, 0x5445), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  1121. {"fdsqrtl", 4, two(0xF000, 0x4045), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  1122. {"fdsqrtl", 4, two(0xF000, 0x4045), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1123. {"fdsqrtp", 4, two(0xF000, 0x4C45), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  1124. {"fdsqrts", 4, two(0xF000, 0x4445), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  1125. {"fdsqrts", 4, two(0xF000, 0x4445), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1126. {"fdsqrtw", 4, two(0xF000, 0x5045), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  1127. {"fdsqrtw", 4, two(0xF000, 0x5045), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1128. {"fdsqrtx", 4, two(0xF000, 0x0045), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  1129. {"fdsqrtx", 4, two(0xF000, 0x4845), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  1130. {"fdsqrtx", 4, two(0xF000, 0x0045), two(0xF1C0, 0xE07F), "IiFt", m68040up },
  1131. {"fsubb", 4, two(0xF000, 0x5828), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1132. {"fsubb", 4, two(0xF000, 0x5828), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1133. {"fsubd", 4, two(0xF000, 0x0028), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  1134. {"fsubd", 4, two(0xF000, 0x5428), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1135. {"fsubd", 4, two(0xF000, 0x5428), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  1136. {"fsubl", 4, two(0xF000, 0x4028), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1137. {"fsubl", 4, two(0xF000, 0x4028), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1138. {"fsubp", 4, two(0xF000, 0x4C28), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1139. {"fsubs", 4, two(0xF000, 0x4428), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1140. {"fsubs", 4, two(0xF000, 0x4428), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1141. {"fsubw", 4, two(0xF000, 0x5028), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1142. {"fsubw", 4, two(0xF000, 0x5028), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1143. {"fsubx", 4, two(0xF000, 0x0028), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1144. {"fsubx", 4, two(0xF000, 0x4828), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1145. {"fsubx", 4, two(0xF000, 0x0028), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1146. {"fssubb", 4, two(0xF000, 0x5868), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1147. {"fssubb", 4, two(0xF000, 0x5868), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  1148. {"fssubd", 4, two(0xF000, 0x0068), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  1149. {"fssubd", 4, two(0xF000, 0x5468), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  1150. {"fssubd", 4, two(0xF000, 0x5468), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  1151. {"fssubl", 4, two(0xF000, 0x4068), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  1152. {"fssubl", 4, two(0xF000, 0x4068), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1153. {"fssubp", 4, two(0xF000, 0x4C68), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  1154. {"fssubs", 4, two(0xF000, 0x4468), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  1155. {"fssubs", 4, two(0xF000, 0x4468), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1156. {"fssubw", 4, two(0xF000, 0x5068), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  1157. {"fssubw", 4, two(0xF000, 0x5068), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1158. {"fssubx", 4, two(0xF000, 0x0068), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  1159. {"fssubx", 4, two(0xF000, 0x4868), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  1160. {"fssubx", 4, two(0xF000, 0x0068), two(0xF1C0, 0xE07F), "IiFt", m68040up },
  1161. {"fdsubb", 4, two(0xF000, 0x586c), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1162. {"fdsubb", 4, two(0xF000, 0x586c), two(0xF1C0, 0xFC7F), "Ii;bF7", m68040up },
  1163. {"fdsubd", 4, two(0xF000, 0x006c), two(0xF1C0, 0xE07F), "IiF8F7", cfloat },
  1164. {"fdsubd", 4, two(0xF000, 0x546c), two(0xF1C0, 0xFC7F), "IiwsF7", cfloat },
  1165. {"fdsubd", 4, two(0xF000, 0x546c), two(0xF1C0, 0xFC7F), "Ii;FF7", m68040up },
  1166. {"fdsubl", 4, two(0xF000, 0x406c), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1167. {"fdsubl", 4, two(0xF000, 0x406c), two(0xF1C0, 0xFC7F), "Ii;lF7", m68040up },
  1168. {"fdsubp", 4, two(0xF000, 0x4C6c), two(0xF1C0, 0xFC7F), "Ii;pF7", m68040up },
  1169. {"fdsubs", 4, two(0xF000, 0x446c), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1170. {"fdsubs", 4, two(0xF000, 0x446c), two(0xF1C0, 0xFC7F), "Ii;fF7", m68040up },
  1171. {"fdsubw", 4, two(0xF000, 0x506c), two(0xF1C0, 0xFC7F), "IibsF7", cfloat },
  1172. {"fdsubw", 4, two(0xF000, 0x506c), two(0xF1C0, 0xFC7F), "Ii;wF7", m68040up },
  1173. {"fdsubx", 4, two(0xF000, 0x006c), two(0xF1C0, 0xE07F), "IiF8F7", m68040up },
  1174. {"fdsubx", 4, two(0xF000, 0x486c), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
  1175. {"fdsubx", 4, two(0xF000, 0x006c), two(0xF1C0, 0xE07F), "IiFt", m68040up },
  1176. {"ftanb", 4, two(0xF000, 0x580F), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1177. {"ftand", 4, two(0xF000, 0x540F), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1178. {"ftanl", 4, two(0xF000, 0x400F), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1179. {"ftanp", 4, two(0xF000, 0x4C0F), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1180. {"ftans", 4, two(0xF000, 0x440F), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1181. {"ftanw", 4, two(0xF000, 0x500F), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1182. {"ftanx", 4, two(0xF000, 0x000F), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1183. {"ftanx", 4, two(0xF000, 0x480F), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1184. {"ftanx", 4, two(0xF000, 0x000F), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1185. {"ftanhb", 4, two(0xF000, 0x5809), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1186. {"ftanhd", 4, two(0xF000, 0x5409), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1187. {"ftanhl", 4, two(0xF000, 0x4009), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1188. {"ftanhp", 4, two(0xF000, 0x4C09), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1189. {"ftanhs", 4, two(0xF000, 0x4409), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1190. {"ftanhw", 4, two(0xF000, 0x5009), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1191. {"ftanhx", 4, two(0xF000, 0x0009), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1192. {"ftanhx", 4, two(0xF000, 0x4809), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1193. {"ftanhx", 4, two(0xF000, 0x0009), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1194. {"ftentoxb", 4, two(0xF000, 0x5812), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1195. {"ftentoxd", 4, two(0xF000, 0x5412), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1196. {"ftentoxl", 4, two(0xF000, 0x4012), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1197. {"ftentoxp", 4, two(0xF000, 0x4C12), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1198. {"ftentoxs", 4, two(0xF000, 0x4412), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1199. {"ftentoxw", 4, two(0xF000, 0x5012), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1200. {"ftentoxx", 4, two(0xF000, 0x0012), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1201. {"ftentoxx", 4, two(0xF000, 0x4812), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1202. {"ftentoxx", 4, two(0xF000, 0x0012), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1203. {"ftrapeq", 4, two(0xF07C, 0x0001), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1204. {"ftrapf", 4, two(0xF07C, 0x0000), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1205. {"ftrapge", 4, two(0xF07C, 0x0013), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1206. {"ftrapgl", 4, two(0xF07C, 0x0016), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1207. {"ftrapgle", 4, two(0xF07C, 0x0017), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1208. {"ftrapgt", 4, two(0xF07C, 0x0012), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1209. {"ftraple", 4, two(0xF07C, 0x0015), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1210. {"ftraplt", 4, two(0xF07C, 0x0014), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1211. {"ftrapne", 4, two(0xF07C, 0x000E), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1212. {"ftrapnge", 4, two(0xF07C, 0x001C), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1213. {"ftrapngl", 4, two(0xF07C, 0x0019), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1214. {"ftrapngle", 4,two(0xF07C, 0x0018), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1215. {"ftrapngt", 4, two(0xF07C, 0x001D), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1216. {"ftrapnle", 4, two(0xF07C, 0x001A), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1217. {"ftrapnlt", 4, two(0xF07C, 0x001B), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1218. {"ftrapoge", 4, two(0xF07C, 0x0003), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1219. {"ftrapogl", 4, two(0xF07C, 0x0006), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1220. {"ftrapogt", 4, two(0xF07C, 0x0002), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1221. {"ftrapole", 4, two(0xF07C, 0x0005), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1222. {"ftrapolt", 4, two(0xF07C, 0x0004), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1223. {"ftrapor", 4, two(0xF07C, 0x0007), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1224. {"ftrapseq", 4, two(0xF07C, 0x0011), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1225. {"ftrapsf", 4, two(0xF07C, 0x0010), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1226. {"ftrapsne", 4, two(0xF07C, 0x001E), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1227. {"ftrapst", 4, two(0xF07C, 0x001F), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1228. {"ftrapt", 4, two(0xF07C, 0x000F), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1229. {"ftrapueq", 4, two(0xF07C, 0x0009), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1230. {"ftrapuge", 4, two(0xF07C, 0x000B), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1231. {"ftrapugt", 4, two(0xF07C, 0x000A), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1232. {"ftrapule", 4, two(0xF07C, 0x000D), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1233. {"ftrapult", 4, two(0xF07C, 0x000C), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1234. {"ftrapun", 4, two(0xF07C, 0x0008), two(0xF1FF, 0xFFFF), "Ii", mfloat },
  1235. {"ftrapeqw", 4, two(0xF07A, 0x0001), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1236. {"ftrapfw", 4, two(0xF07A, 0x0000), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1237. {"ftrapgew", 4, two(0xF07A, 0x0013), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1238. {"ftrapglw", 4, two(0xF07A, 0x0016), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1239. {"ftrapglew", 4,two(0xF07A, 0x0017), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1240. {"ftrapgtw", 4, two(0xF07A, 0x0012), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1241. {"ftraplew", 4, two(0xF07A, 0x0015), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1242. {"ftrapltw", 4, two(0xF07A, 0x0014), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1243. {"ftrapnew", 4, two(0xF07A, 0x000E), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1244. {"ftrapngew", 4,two(0xF07A, 0x001C), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1245. {"ftrapnglw", 4,two(0xF07A, 0x0019), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1246. {"ftrapnglew", 4,two(0xF07A, 0x0018), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1247. {"ftrapngtw", 4,two(0xF07A, 0x001D), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1248. {"ftrapnlew", 4,two(0xF07A, 0x001A), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1249. {"ftrapnltw", 4,two(0xF07A, 0x001B), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1250. {"ftrapogew", 4,two(0xF07A, 0x0003), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1251. {"ftrapoglw", 4,two(0xF07A, 0x0006), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1252. {"ftrapogtw", 4,two(0xF07A, 0x0002), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1253. {"ftrapolew", 4,two(0xF07A, 0x0005), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1254. {"ftrapoltw", 4,two(0xF07A, 0x0004), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1255. {"ftraporw", 4, two(0xF07A, 0x0007), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1256. {"ftrapseqw", 4,two(0xF07A, 0x0011), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1257. {"ftrapsfw", 4, two(0xF07A, 0x0010), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1258. {"ftrapsnew", 4,two(0xF07A, 0x001E), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1259. {"ftrapstw", 4, two(0xF07A, 0x001F), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1260. {"ftraptw", 4, two(0xF07A, 0x000F), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1261. {"ftrapueqw", 4,two(0xF07A, 0x0009), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1262. {"ftrapugew", 4,two(0xF07A, 0x000B), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1263. {"ftrapugtw", 4,two(0xF07A, 0x000A), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1264. {"ftrapulew", 4,two(0xF07A, 0x000D), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1265. {"ftrapultw", 4,two(0xF07A, 0x000C), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1266. {"ftrapunw", 4, two(0xF07A, 0x0008), two(0xF1FF, 0xFFFF), "Ii^w", mfloat },
  1267. {"ftrapeql", 4, two(0xF07B, 0x0001), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1268. {"ftrapfl", 4, two(0xF07B, 0x0000), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1269. {"ftrapgel", 4, two(0xF07B, 0x0013), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1270. {"ftrapgll", 4, two(0xF07B, 0x0016), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1271. {"ftrapglel", 4,two(0xF07B, 0x0017), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1272. {"ftrapgtl", 4, two(0xF07B, 0x0012), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1273. {"ftraplel", 4, two(0xF07B, 0x0015), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1274. {"ftrapltl", 4, two(0xF07B, 0x0014), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1275. {"ftrapnel", 4, two(0xF07B, 0x000E), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1276. {"ftrapngel", 4,two(0xF07B, 0x001C), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1277. {"ftrapngll", 4,two(0xF07B, 0x0019), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1278. {"ftrapnglel", 4,two(0xF07B, 0x0018), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1279. {"ftrapngtl", 4,two(0xF07B, 0x001D), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1280. {"ftrapnlel", 4,two(0xF07B, 0x001A), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1281. {"ftrapnltl", 4,two(0xF07B, 0x001B), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1282. {"ftrapogel", 4,two(0xF07B, 0x0003), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1283. {"ftrapogll", 4,two(0xF07B, 0x0006), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1284. {"ftrapogtl", 4,two(0xF07B, 0x0002), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1285. {"ftrapolel", 4,two(0xF07B, 0x0005), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1286. {"ftrapoltl", 4,two(0xF07B, 0x0004), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1287. {"ftraporl", 4, two(0xF07B, 0x0007), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1288. {"ftrapseql", 4,two(0xF07B, 0x0011), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1289. {"ftrapsfl", 4, two(0xF07B, 0x0010), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1290. {"ftrapsnel", 4,two(0xF07B, 0x001E), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1291. {"ftrapstl", 4, two(0xF07B, 0x001F), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1292. {"ftraptl", 4, two(0xF07B, 0x000F), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1293. {"ftrapueql", 4,two(0xF07B, 0x0009), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1294. {"ftrapugel", 4,two(0xF07B, 0x000B), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1295. {"ftrapugtl", 4,two(0xF07B, 0x000A), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1296. {"ftrapulel", 4,two(0xF07B, 0x000D), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1297. {"ftrapultl", 4,two(0xF07B, 0x000C), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1298. {"ftrapunl", 4, two(0xF07B, 0x0008), two(0xF1FF, 0xFFFF), "Ii^l", mfloat },
  1299. {"ftstb", 4, two(0xF000, 0x583A), two(0xF1C0, 0xFC7F), "Ii;b", mfloat },
  1300. {"ftstb", 4, two(0xF000, 0x583A), two(0xF1C0, 0xFC7F), "Iibs", cfloat },
  1301. {"ftstd", 4, two(0xF000, 0x003A), two(0xF1C0, 0xE07F), "IiF8", cfloat },
  1302. {"ftstd", 4, two(0xF000, 0x543A), two(0xF1C0, 0xFC7F), "Ii;F", mfloat },
  1303. {"ftstd", 4, two(0xF000, 0x543A), two(0xF1C0, 0xFC7F), "Iibs", cfloat },
  1304. {"ftstl", 4, two(0xF000, 0x403A), two(0xF1C0, 0xFC7F), "Ii;l", mfloat },
  1305. {"ftstl", 4, two(0xF000, 0x403A), two(0xF1C0, 0xFC7F), "Iibs", cfloat },
  1306. {"ftstp", 4, two(0xF000, 0x4C3A), two(0xF1C0, 0xFC7F), "Ii;p", mfloat },
  1307. {"ftsts", 4, two(0xF000, 0x443A), two(0xF1C0, 0xFC7F), "Ii;f", mfloat },
  1308. {"ftsts", 4, two(0xF000, 0x443A), two(0xF1C0, 0xFC7F), "Iibs", cfloat },
  1309. {"ftstw", 4, two(0xF000, 0x503A), two(0xF1C0, 0xFC7F), "Ii;w", mfloat },
  1310. {"ftstw", 4, two(0xF000, 0x503A), two(0xF1C0, 0xFC7F), "Iibs", cfloat },
  1311. {"ftstx", 4, two(0xF000, 0x003A), two(0xF1C0, 0xE07F), "IiF8", mfloat },
  1312. {"ftstx", 4, two(0xF000, 0x483A), two(0xF1C0, 0xFC7F), "Ii;x", mfloat },
  1313. {"ftwotoxb", 4, two(0xF000, 0x5811), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
  1314. {"ftwotoxd", 4, two(0xF000, 0x5411), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
  1315. {"ftwotoxl", 4, two(0xF000, 0x4011), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
  1316. {"ftwotoxp", 4, two(0xF000, 0x4C11), two(0xF1C0, 0xFC7F), "Ii;pF7", mfloat },
  1317. {"ftwotoxs", 4, two(0xF000, 0x4411), two(0xF1C0, 0xFC7F), "Ii;fF7", mfloat },
  1318. {"ftwotoxw", 4, two(0xF000, 0x5011), two(0xF1C0, 0xFC7F), "Ii;wF7", mfloat },
  1319. {"ftwotoxx", 4, two(0xF000, 0x0011), two(0xF1C0, 0xE07F), "IiF8F7", mfloat },
  1320. {"ftwotoxx", 4, two(0xF000, 0x4811), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
  1321. {"ftwotoxx", 4, two(0xF000, 0x0011), two(0xF1C0, 0xE07F), "IiFt", mfloat },
  1322. {"halt", 2, one(0045310), one(0177777), "", m68060 | mcfisa_a },
  1323. {"illegal", 2, one(0045374), one(0177777), "", m68000up | mcfisa_a },
  1324. {"intouch", 2, one(0xf428), one(0xfff8), "As", mcfisa_b | mcfisa_c },
  1325. {"jmp", 2, one(0047300), one(0177700), "!s", m68000up | mcfisa_a },
  1326. {"jra", 2, one(0060000), one(0177400), "Bb", m68000up | mcfisa_a },
  1327. {"jra", 2, one(0047300), one(0177700), "!s", m68000up | mcfisa_a },
  1328. {"jsr", 2, one(0047200), one(0177700), "!s", m68000up | mcfisa_a },
  1329. {"jbsr", 2, one(0060400), one(0177400), "Bs", m68000up | mcfisa_a },
  1330. {"jbsr", 2, one(0047200), one(0177700), "!s", m68000up | mcfisa_a },
  1331. {"lea", 2, one(0040700), one(0170700), "!sAd", m68000up | mcfisa_a },
  1332. {"lpstop", 6, two(0174000,0000700),two(0177777,0177777),"#w", cpu32 | fido_a | m68060 },
  1333. {"linkw", 4, one(0047120), one(0177770), "As#w", m68000up | mcfisa_a },
  1334. {"linkl", 6, one(0044010), one(0177770), "As#l", m68020up | cpu32 | fido_a },
  1335. {"link", 4, one(0047120), one(0177770), "As#W", m68000up | mcfisa_a },
  1336. {"link", 6, one(0044010), one(0177770), "As#l", m68020up | cpu32 | fido_a },
  1337. {"lslb", 2, one(0160410), one(0170770), "QdDs", m68000up },
  1338. {"lslb", 2, one(0160450), one(0170770), "DdDs", m68000up },
  1339. {"lslw", 2, one(0160510), one(0170770), "QdDs", m68000up },
  1340. {"lslw", 2, one(0160550), one(0170770), "DdDs", m68000up },
  1341. {"lslw", 2, one(0161700), one(0177700), "~s", m68000up },
  1342. {"lsll", 2, one(0160610), one(0170770), "QdDs", m68000up | mcfisa_a },
  1343. {"lsll", 2, one(0160650), one(0170770), "DdDs", m68000up | mcfisa_a },
  1344. {"lsrb", 2, one(0160010), one(0170770), "QdDs", m68000up },
  1345. {"lsrb", 2, one(0160050), one(0170770), "DdDs", m68000up },
  1346. {"lsrw", 2, one(0160110), one(0170770), "QdDs", m68000up },
  1347. {"lsrw", 2, one(0160150), one(0170770), "DdDs", m68000up },
  1348. {"lsrw", 2, one(0161300), one(0177700), "~s", m68000up },
  1349. {"lsrl", 2, one(0160210), one(0170770), "QdDs", m68000up | mcfisa_a },
  1350. {"lsrl", 2, one(0160250), one(0170770), "DdDs", m68000up | mcfisa_a },
  1351. {"macw", 4, two(0xa080, 0x0000), two(0xf180, 0x0910), "uNuoiI4/Rn", mcfmac },
  1352. {"macw", 4, two(0xa080, 0x0200), two(0xf180, 0x0910), "uNuoMh4/Rn", mcfmac },
  1353. {"macw", 4, two(0xa080, 0x0000), two(0xf180, 0x0f10), "uNuo4/Rn", mcfmac },
  1354. {"macw", 4, two(0xa000, 0x0000), two(0xf1b0, 0x0900), "uMumiI", mcfmac },
  1355. {"macw", 4, two(0xa000, 0x0200), two(0xf1b0, 0x0900), "uMumMh", mcfmac },
  1356. {"macw", 4, two(0xa000, 0x0000), two(0xf1b0, 0x0f00), "uMum", mcfmac },
  1357. {"macw", 4, two(0xa000, 0x0000), two(0xf100, 0x0900), "uNuoiI4/RneG", mcfemac },/* Ry,Rx,SF,<ea>,accX. */
  1358. {"macw", 4, two(0xa000, 0x0200), two(0xf100, 0x0900), "uNuoMh4/RneG", mcfemac },/* Ry,Rx,+1/-1,<ea>,accX. */
  1359. {"macw", 4, two(0xa000, 0x0000), two(0xf100, 0x0f00), "uNuo4/RneG", mcfemac },/* Ry,Rx,<ea>,accX. */
  1360. {"macw", 4, two(0xa000, 0x0000), two(0xf130, 0x0900), "uMumiIeH", mcfemac },/* Ry,Rx,SF,accX. */
  1361. {"macw", 4, two(0xa000, 0x0200), two(0xf130, 0x0900), "uMumMheH", mcfemac },/* Ry,Rx,+1/-1,accX. */
  1362. {"macw", 4, two(0xa000, 0x0000), two(0xf130, 0x0f00), "uMumeH", mcfemac }, /* Ry,Rx,accX. */
  1363. {"macw", 4, two(0xa080, 0x0000), two(0xf180, 0x0910), "uNuoiI4/Rn", mcfemac },
  1364. {"macw", 4, two(0xa080, 0x0200), two(0xf180, 0x0910), "uNuoMh4/Rn", mcfemac },
  1365. {"macw", 4, two(0xa080, 0x0000), two(0xf180, 0x0f10), "uNuo4/Rn", mcfemac },
  1366. {"macw", 4, two(0xa000, 0x0000), two(0xf1b0, 0x0910), "uMumiI", mcfemac },
  1367. {"macw", 4, two(0xa000, 0x0200), two(0xf1b0, 0x0910), "uMumMh", mcfemac },
  1368. {"macw", 4, two(0xa000, 0x0000), two(0xf1b0, 0x0f10), "uMum", mcfemac },
  1369. {"macl", 4, two(0xa080, 0x0800), two(0xf180, 0x0910), "RNRoiI4/Rn", mcfmac },
  1370. {"macl", 4, two(0xa080, 0x0a00), two(0xf180, 0x0910), "RNRoMh4/Rn", mcfmac },
  1371. {"macl", 4, two(0xa080, 0x0800), two(0xf180, 0x0f10), "RNRo4/Rn", mcfmac },
  1372. {"macl", 4, two(0xa000, 0x0800), two(0xf1b0, 0x0b00), "RMRmiI", mcfmac },
  1373. {"macl", 4, two(0xa000, 0x0a00), two(0xf1b0, 0x0b00), "RMRmMh", mcfmac },
  1374. {"macl", 4, two(0xa000, 0x0800), two(0xf1b0, 0x0900), "RMRm", mcfmac },
  1375. {"macl", 4, two(0xa000, 0x0800), two(0xf100, 0x0900), "R3R1iI4/RneG", mcfemac },
  1376. {"macl", 4, two(0xa000, 0x0a00), two(0xf100, 0x0900), "R3R1Mh4/RneG", mcfemac },
  1377. {"macl", 4, two(0xa000, 0x0800), two(0xf100, 0x0f00), "R3R14/RneG", mcfemac },
  1378. {"macl", 4, two(0xa000, 0x0800), two(0xf130, 0x0900), "RMRmiIeH", mcfemac },
  1379. {"macl", 4, two(0xa000, 0x0a00), two(0xf130, 0x0900), "RMRmMheH", mcfemac },
  1380. {"macl", 4, two(0xa000, 0x0800), two(0xf130, 0x0f00), "RMRmeH", mcfemac },
  1381. {"macl", 4, two(0xa080, 0x0800), two(0xf180, 0x0910), "RNRoiI4/Rn", mcfemac },
  1382. {"macl", 4, two(0xa080, 0x0a00), two(0xf180, 0x0910), "RNRoMh4/Rn", mcfemac },
  1383. {"macl", 4, two(0xa080, 0x0800), two(0xf180, 0x0f10), "RNRo4/Rn", mcfemac },
  1384. {"macl", 4, two(0xa000, 0x0800), two(0xf1b0, 0x0b10), "RMRmiI", mcfemac },
  1385. {"macl", 4, two(0xa000, 0x0a00), two(0xf1b0, 0x0b10), "RMRmMh", mcfemac },
  1386. {"macl", 4, two(0xa000, 0x0800), two(0xf1b0, 0x0910), "RMRm", mcfemac },
  1387. /* NOTE: The mcf5200 family programmer's reference manual does not
  1388. indicate the byte form of the movea instruction is invalid (as it
  1389. is on 68000 family cpus). However, experiments on the 5202 yeild
  1390. unexpected results. The value is copied, but it is not sign extended
  1391. (as is done with movea.w) and the top three bytes in the address
  1392. register are not disturbed. I don't know if this is the intended
  1393. behavior --- it could be a hole in instruction decoding (Motorola
  1394. decided not to trap all invalid instructions for performance reasons)
  1395. --- but I suspect that it is not.
  1396. I reported this to Motorola ISD Technical Communications Support,
  1397. which replied that other coldfire assemblers reject movea.b. For
  1398. this reason I've decided to not allow moveab.
  1399. jtc@cygnus.com - 97/01/24. */
  1400. {"moveal", 2, one(0020100), one(0170700), "*lAd", m68000up | mcfisa_a },
  1401. {"moveaw", 2, one(0030100), one(0170700), "*wAd", m68000up | mcfisa_a },
  1402. {"movclrl", 2, one(0xA1C0), one(0xf9f0), "eFRs", mcfemac },
  1403. {"movec", 4, one(0047173), one(0177777), "R1Jj", m68010up | mcfisa_a },
  1404. {"movec", 4, one(0047173), one(0177777), "R1#j", m68010up | mcfisa_a },
  1405. {"movec", 4, one(0047172), one(0177777), "JjR1", m68010up },
  1406. {"movec", 4, one(0047172), one(0177777), "#jR1", m68010up },
  1407. {"movemw", 4, one(0044200), one(0177700), "Lw&s", m68000up },
  1408. {"movemw", 4, one(0044240), one(0177770), "lw-s", m68000up },
  1409. {"movemw", 4, one(0044200), one(0177700), "#w>s", m68000up },
  1410. {"movemw", 4, one(0046200), one(0177700), "<sLw", m68000up },
  1411. {"movemw", 4, one(0046200), one(0177700), "<s#w", m68000up },
  1412. {"moveml", 4, one(0044300), one(0177700), "Lw&s", m68000up },
  1413. {"moveml", 4, one(0044340), one(0177770), "lw-s", m68000up },
  1414. {"moveml", 4, one(0044300), one(0177700), "#w>s", m68000up },
  1415. {"moveml", 4, one(0046300), one(0177700), "<sLw", m68000up },
  1416. {"moveml", 4, one(0046300), one(0177700), "<s#w", m68000up },
  1417. {"moveml", 4, one(0044300), one(0177700), "Lwys", mcfisa_a },
  1418. {"moveml", 4, one(0044300), one(0177700), "#wys", mcfisa_a },
  1419. {"moveml", 4, one(0046300), one(0177700), "ysLw", mcfisa_a },
  1420. {"moveml", 4, one(0046300), one(0177700), "ys#w", mcfisa_a },
  1421. {"movepw", 2, one(0000410), one(0170770), "dsDd", m68000up },
  1422. {"movepw", 2, one(0000610), one(0170770), "Ddds", m68000up },
  1423. {"movepl", 2, one(0000510), one(0170770), "dsDd", m68000up },
  1424. {"movepl", 2, one(0000710), one(0170770), "Ddds", m68000up },
  1425. {"moveq", 2, one(0070000), one(0170400), "MsDd", m68000up | mcfisa_a },
  1426. {"moveq", 2, one(0070000), one(0170400), "#BDd", m68000up | mcfisa_a },
  1427. /* The move opcode can generate the movea and moveq instructions. */
  1428. {"moveb", 2, one(0010000), one(0170000), ";b$d", m68000up },
  1429. {"moveb", 2, one(0010000), one(0170070), "Ds$d", mcfisa_a },
  1430. {"moveb", 2, one(0010020), one(0170070), "as$d", mcfisa_a },
  1431. {"moveb", 2, one(0010030), one(0170070), "+s$d", mcfisa_a },
  1432. {"moveb", 2, one(0010040), one(0170070), "-s$d", mcfisa_a },
  1433. {"moveb", 2, one(0010000), one(0170000), "nsqd", mcfisa_a },
  1434. {"moveb", 2, one(0010000), one(0170700), "obDd", mcfisa_a },
  1435. {"moveb", 2, one(0010200), one(0170700), "obad", mcfisa_a },
  1436. {"moveb", 2, one(0010300), one(0170700), "ob+d", mcfisa_a },
  1437. {"moveb", 2, one(0010400), one(0170700), "ob-d", mcfisa_a },
  1438. {"moveb", 2, one(0010074), one(0170077), "#bpd", mcfisa_b | mcfisa_c },
  1439. {"movew", 2, one(0030000), one(0170000), "*w%d", m68000up },
  1440. {"movew", 2, one(0030000), one(0170000), "ms%d", mcfisa_a },
  1441. {"movew", 2, one(0030000), one(0170000), "nspd", mcfisa_a },
  1442. {"movew", 2, one(0030000), one(0170000), "owmd", mcfisa_a },
  1443. {"movew", 2, one(0030074), one(0170077), "#wpd", mcfisa_b | mcfisa_c },
  1444. {"movew", 2, one(0040300), one(0177700), "Ss$s", m68000up },
  1445. {"movew", 2, one(0040300), one(0177770), "SsDs", mcfisa_a },
  1446. {"movew", 2, one(0041300), one(0177700), "Cs$s", m68010up },
  1447. {"movew", 2, one(0041300), one(0177770), "CsDs", mcfisa_a },
  1448. {"movew", 2, one(0042300), one(0177700), ";wCd", m68000up },
  1449. {"movew", 2, one(0042300), one(0177770), "DsCd", mcfisa_a },
  1450. {"movew", 4, one(0042374), one(0177777), "#wCd", mcfisa_a },
  1451. {"movew", 2, one(0043300), one(0177700), ";wSd", m68000up },
  1452. {"movew", 2, one(0043300), one(0177770), "DsSd", mcfisa_a },
  1453. {"movew", 4, one(0043374), one(0177777), "#wSd", mcfisa_a },
  1454. {"movel", 2, one(0070000), one(0170400), "MsDd", m68000up | mcfisa_a },
  1455. {"movel", 2, one(0020000), one(0170000), "*l%d", m68000up },
  1456. {"movel", 2, one(0020000), one(0170000), "ms%d", mcfisa_a },
  1457. {"movel", 2, one(0020000), one(0170000), "nspd", mcfisa_a },
  1458. {"movel", 2, one(0020000), one(0170000), "olmd", mcfisa_a },
  1459. {"movel", 2, one(0047140), one(0177770), "AsUd", m68000up | mcfusp },
  1460. {"movel", 2, one(0047150), one(0177770), "UdAs", m68000up | mcfusp },
  1461. {"movel", 2, one(0120600), one(0177760), "EsRs", mcfmac },
  1462. {"movel", 2, one(0120400), one(0177760), "RsEs", mcfmac },
  1463. {"movel", 6, one(0120474), one(0177777), "#lEs", mcfmac },
  1464. {"movel", 2, one(0124600), one(0177760), "GsRs", mcfmac },
  1465. {"movel", 2, one(0124400), one(0177760), "RsGs", mcfmac },
  1466. {"movel", 6, one(0124474), one(0177777), "#lGs", mcfmac },
  1467. {"movel", 2, one(0126600), one(0177760), "HsRs", mcfmac },
  1468. {"movel", 2, one(0126400), one(0177760), "RsHs", mcfmac },
  1469. {"movel", 6, one(0126474), one(0177777), "#lHs", mcfmac },
  1470. {"movel", 2, one(0124700), one(0177777), "GsCs", mcfmac },
  1471. {"movel", 2, one(0xa180), one(0xf9f0), "eFRs", mcfemac }, /* ACCx,Rx. */
  1472. {"movel", 2, one(0xab80), one(0xfbf0), "g]Rs", mcfemac }, /* ACCEXTx,Rx. */
  1473. {"movel", 2, one(0xa980), one(0xfff0), "G-Rs", mcfemac }, /* macsr,Rx. */
  1474. {"movel", 2, one(0xad80), one(0xfff0), "H-Rs", mcfemac }, /* mask,Rx. */
  1475. {"movel", 2, one(0xa110), one(0xf9fc), "efeF", mcfemac }, /* ACCy,ACCx. */
  1476. {"movel", 2, one(0xa9c0), one(0xffff), "G-C-", mcfemac }, /* macsr,ccr. */
  1477. {"movel", 2, one(0xa100), one(0xf9f0), "RseF", mcfemac }, /* Rx,ACCx. */
  1478. {"movel", 6, one(0xa13c), one(0xf9ff), "#leF", mcfemac }, /* #,ACCx. */
  1479. {"movel", 2, one(0xab00), one(0xfbc0), "Rsg]", mcfemac }, /* Rx,ACCEXTx. */
  1480. {"movel", 6, one(0xab3c), one(0xfbff), "#lg]", mcfemac }, /* #,ACCEXTx. */
  1481. {"movel", 2, one(0xa900), one(0xffc0), "RsG-", mcfemac }, /* Rx,macsr. */
  1482. {"movel", 6, one(0xa93c), one(0xffff), "#lG-", mcfemac }, /* #,macsr. */
  1483. {"movel", 2, one(0xad00), one(0xffc0), "RsH-", mcfemac }, /* Rx,mask. */
  1484. {"movel", 6, one(0xad3c), one(0xffff), "#lH-", mcfemac }, /* #,mask. */
  1485. {"move", 2, one(0030000), one(0170000), "*w%d", m68000up },
  1486. {"move", 2, one(0030000), one(0170000), "ms%d", mcfisa_a },
  1487. {"move", 2, one(0030000), one(0170000), "nspd", mcfisa_a },
  1488. {"move", 2, one(0030000), one(0170000), "owmd", mcfisa_a },
  1489. {"move", 2, one(0030074), one(0170077), "#wpd", mcfisa_b | mcfisa_c },
  1490. {"move", 2, one(0040300), one(0177700), "Ss$s", m68000up },
  1491. {"move", 2, one(0040300), one(0177770), "SsDs", mcfisa_a },
  1492. {"move", 2, one(0041300), one(0177700), "Cs$s", m68010up },
  1493. {"move", 2, one(0041300), one(0177770), "CsDs", mcfisa_a },
  1494. {"move", 2, one(0042300), one(0177700), ";wCd", m68000up },
  1495. {"move", 2, one(0042300), one(0177700), "DsCd", mcfisa_a },
  1496. {"move", 4, one(0042374), one(0177777), "#wCd", mcfisa_a },
  1497. {"move", 2, one(0043300), one(0177700), ";wSd", m68000up },
  1498. {"move", 2, one(0043300), one(0177700), "DsSd", mcfisa_a },
  1499. {"move", 4, one(0043374), one(0177777), "#wSd", mcfisa_a },
  1500. {"move", 2, one(0047140), one(0177770), "AsUd", m68000up },
  1501. {"move", 2, one(0047150), one(0177770), "UdAs", m68000up },
  1502. {"mov3ql", 2, one(0120500), one(0170700), "xd%s", mcfisa_b | mcfisa_c },
  1503. {"mvsb", 2, one(0070400), one(0170700), "*bDd", mcfisa_b | mcfisa_c },
  1504. {"mvsw", 2, one(0070500), one(0170700), "*wDd", mcfisa_b | mcfisa_c },
  1505. {"mvzb", 2, one(0070600), one(0170700), "*bDd", mcfisa_b | mcfisa_c },
  1506. {"mvzw", 2, one(0070700), one(0170700), "*wDd", mcfisa_b | mcfisa_c },
  1507. {"movesb", 4, two(0007000, 0), two(0177700, 07777), "~sR1", m68010up },
  1508. {"movesb", 4, two(0007000, 04000), two(0177700, 07777), "R1~s", m68010up },
  1509. {"movesw", 4, two(0007100, 0), two(0177700, 07777), "~sR1", m68010up },
  1510. {"movesw", 4, two(0007100, 04000), two(0177700, 07777), "R1~s", m68010up },
  1511. {"movesl", 4, two(0007200, 0), two(0177700, 07777), "~sR1", m68010up },
  1512. {"movesl", 4, two(0007200, 04000), two(0177700, 07777), "R1~s", m68010up },
  1513. {"move16", 4, two(0xf620, 0x8000), two(0xfff8, 0x8fff), "+s+1", m68040up },
  1514. {"move16", 2, one(0xf600), one(0xfff8), "+s_L", m68040up },
  1515. {"move16", 2, one(0xf608), one(0xfff8), "_L+s", m68040up },
  1516. {"move16", 2, one(0xf610), one(0xfff8), "as_L", m68040up },
  1517. {"move16", 2, one(0xf618), one(0xfff8), "_Las", m68040up },
  1518. {"msacw", 4, two(0xa080, 0x0100), two(0xf180, 0x0910), "uNuoiI4/Rn", mcfmac },
  1519. {"msacw", 4, two(0xa080, 0x0300), two(0xf180, 0x0910), "uNuoMh4/Rn", mcfmac },
  1520. {"msacw", 4, two(0xa080, 0x0100), two(0xf180, 0x0f10), "uNuo4/Rn", mcfmac },
  1521. {"msacw", 4, two(0xa000, 0x0100), two(0xf1b0, 0x0900), "uMumiI", mcfmac },
  1522. {"msacw", 4, two(0xa000, 0x0300), two(0xf1b0, 0x0900), "uMumMh", mcfmac },
  1523. {"msacw", 4, two(0xa000, 0x0100), two(0xf1b0, 0x0f00), "uMum", mcfmac },
  1524. {"msacw", 4, two(0xa000, 0x0100), two(0xf100, 0x0900), "uNuoiI4/RneG", mcfemac },/* Ry,Rx,SF,<ea>,accX. */
  1525. {"msacw", 4, two(0xa000, 0x0300), two(0xf100, 0x0900), "uNuoMh4/RneG", mcfemac },/* Ry,Rx,+1/-1,<ea>,accX. */
  1526. {"msacw", 4, two(0xa000, 0x0100), two(0xf100, 0x0f00), "uNuo4/RneG", mcfemac },/* Ry,Rx,<ea>,accX. */
  1527. {"msacw", 4, two(0xa000, 0x0100), two(0xf130, 0x0900), "uMumiIeH", mcfemac },/* Ry,Rx,SF,accX. */
  1528. {"msacw", 4, two(0xa000, 0x0300), two(0xf130, 0x0900), "uMumMheH", mcfemac },/* Ry,Rx,+1/-1,accX. */
  1529. {"msacw", 4, two(0xa000, 0x0100), two(0xf130, 0x0f00), "uMumeH", mcfemac }, /* Ry,Rx,accX. */
  1530. {"msacl", 4, two(0xa080, 0x0900), two(0xf180, 0x0910), "RNRoiI4/Rn", mcfmac },
  1531. {"msacl", 4, two(0xa080, 0x0b00), two(0xf180, 0x0910), "RNRoMh4/Rn", mcfmac },
  1532. {"msacl", 4, two(0xa080, 0x0900), two(0xf180, 0x0f10), "RNRo4/Rn", mcfmac },
  1533. {"msacl", 4, two(0xa000, 0x0900), two(0xf1b0, 0x0b00), "RMRmiI", mcfmac },
  1534. {"msacl", 4, two(0xa000, 0x0b00), two(0xf1b0, 0x0b00), "RMRmMh", mcfmac },
  1535. {"msacl", 4, two(0xa000, 0x0900), two(0xf1b0, 0x0900), "RMRm", mcfmac },
  1536. {"msacl", 4, two(0xa000, 0x0900), two(0xf100, 0x0900), "R3R1iI4/RneG", mcfemac },
  1537. {"msacl", 4, two(0xa000, 0x0b00), two(0xf100, 0x0900), "R3R1Mh4/RneG", mcfemac },
  1538. {"msacl", 4, two(0xa000, 0x0900), two(0xf100, 0x0f00), "R3R14/RneG", mcfemac },
  1539. {"msacl", 4, two(0xa000, 0x0900), two(0xf130, 0x0900), "RMRmiIeH", mcfemac },
  1540. {"msacl", 4, two(0xa000, 0x0b00), two(0xf130, 0x0900), "RMRmMheH", mcfemac },
  1541. {"msacl", 4, two(0xa000, 0x0900), two(0xf130, 0x0f00), "RMRmeH", mcfemac },
  1542. {"mulsw", 2, one(0140700), one(0170700), ";wDd", m68000up|mcfisa_a },
  1543. {"mulsl", 4, two(0046000,004000), two(0177700,0107770), ";lD1", m68020up | cpu32 | fido_a },
  1544. {"mulsl", 4, two(0046000,004000), two(0177700,0107770), "qsD1", mcfisa_a },
  1545. {"mulsl", 4, two(0046000,006000), two(0177700,0107770), ";lD3D1",m68020up | cpu32 | fido_a },
  1546. {"muluw", 2, one(0140300), one(0170700), ";wDd", m68000up|mcfisa_a },
  1547. {"mulul", 4, two(0046000,000000), two(0177700,0107770), ";lD1", m68020up | cpu32 | fido_a },
  1548. {"mulul", 4, two(0046000,000000), two(0177700,0107770), "qsD1", mcfisa_a },
  1549. {"mulul", 4, two(0046000,002000), two(0177700,0107770), ";lD3D1",m68020up | cpu32 | fido_a },
  1550. {"nbcd", 2, one(0044000), one(0177700), "$s", m68000up },
  1551. {"negb", 2, one(0042000), one(0177700), "$s", m68000up },
  1552. {"negw", 2, one(0042100), one(0177700), "$s", m68000up },
  1553. {"negl", 2, one(0042200), one(0177700), "$s", m68000up },
  1554. {"negl", 2, one(0042200), one(0177700), "Ds", mcfisa_a},
  1555. {"negxb", 2, one(0040000), one(0177700), "$s", m68000up },
  1556. {"negxw", 2, one(0040100), one(0177700), "$s", m68000up },
  1557. {"negxl", 2, one(0040200), one(0177700), "$s", m68000up },
  1558. {"negxl", 2, one(0040200), one(0177700), "Ds", mcfisa_a},
  1559. {"nop", 2, one(0047161), one(0177777), "", m68000up | mcfisa_a},
  1560. {"notb", 2, one(0043000), one(0177700), "$s", m68000up },
  1561. {"notw", 2, one(0043100), one(0177700), "$s", m68000up },
  1562. {"notl", 2, one(0043200), one(0177700), "$s", m68000up },
  1563. {"notl", 2, one(0043200), one(0177700), "Ds", mcfisa_a},
  1564. {"orib", 4, one(0000000), one(0177700), "#b$s", m68000up },
  1565. {"orib", 4, one(0000074), one(0177777), "#bCs", m68000up },
  1566. {"oriw", 4, one(0000100), one(0177700), "#w$s", m68000up },
  1567. {"oriw", 4, one(0000174), one(0177777), "#wSs", m68000up },
  1568. {"oril", 6, one(0000200), one(0177700), "#l$s", m68000up },
  1569. {"oril", 6, one(0000200), one(0177700), "#lDs", mcfisa_a },
  1570. {"ori", 4, one(0000074), one(0177777), "#bCs", m68000up },
  1571. {"ori", 4, one(0000100), one(0177700), "#w$s", m68000up },
  1572. {"ori", 4, one(0000174), one(0177777), "#wSs", m68000up },
  1573. /* The or opcode can generate the ori instruction. */
  1574. {"orb", 4, one(0000000), one(0177700), "#b$s", m68000up },
  1575. {"orb", 4, one(0000074), one(0177777), "#bCs", m68000up },
  1576. {"orb", 2, one(0100000), one(0170700), ";bDd", m68000up },
  1577. {"orb", 2, one(0100400), one(0170700), "Dd~s", m68000up },
  1578. {"orw", 4, one(0000100), one(0177700), "#w$s", m68000up },
  1579. {"orw", 4, one(0000174), one(0177777), "#wSs", m68000up },
  1580. {"orw", 2, one(0100100), one(0170700), ";wDd", m68000up },
  1581. {"orw", 2, one(0100500), one(0170700), "Dd~s", m68000up },
  1582. {"orl", 6, one(0000200), one(0177700), "#l$s", m68000up },
  1583. {"orl", 6, one(0000200), one(0177700), "#lDs", mcfisa_a },
  1584. {"orl", 2, one(0100200), one(0170700), ";lDd", m68000up | mcfisa_a },
  1585. {"orl", 2, one(0100600), one(0170700), "Dd~s", m68000up | mcfisa_a },
  1586. {"or", 4, one(0000074), one(0177777), "#bCs", m68000up },
  1587. {"or", 4, one(0000100), one(0177700), "#w$s", m68000up },
  1588. {"or", 4, one(0000174), one(0177777), "#wSs", m68000up },
  1589. {"or", 2, one(0100100), one(0170700), ";wDd", m68000up },
  1590. {"or", 2, one(0100500), one(0170700), "Dd~s", m68000up },
  1591. {"pack", 4, one(0100500), one(0170770), "DsDd#w", m68020up },
  1592. {"pack", 4, one(0100510), one(0170770), "-s-d#w", m68020up },
  1593. {"pbac", 2, one(0xf087), one(0xffbf), "Bc", m68851 },
  1594. {"pbacw", 2, one(0xf087), one(0xffff), "BW", m68851 },
  1595. {"pbas", 2, one(0xf086), one(0xffbf), "Bc", m68851 },
  1596. {"pbasw", 2, one(0xf086), one(0xffff), "BW", m68851 },
  1597. {"pbbc", 2, one(0xf081), one(0xffbf), "Bc", m68851 },
  1598. {"pbbcw", 2, one(0xf081), one(0xffff), "BW", m68851 },
  1599. {"pbbs", 2, one(0xf080), one(0xffbf), "Bc", m68851 },
  1600. {"pbbsw", 2, one(0xf080), one(0xffff), "BW", m68851 },
  1601. {"pbcc", 2, one(0xf08f), one(0xffbf), "Bc", m68851 },
  1602. {"pbccw", 2, one(0xf08f), one(0xffff), "BW", m68851 },
  1603. {"pbcs", 2, one(0xf08e), one(0xffbf), "Bc", m68851 },
  1604. {"pbcsw", 2, one(0xf08e), one(0xffff), "BW", m68851 },
  1605. {"pbgc", 2, one(0xf08d), one(0xffbf), "Bc", m68851 },
  1606. {"pbgcw", 2, one(0xf08d), one(0xffff), "BW", m68851 },
  1607. {"pbgs", 2, one(0xf08c), one(0xffbf), "Bc", m68851 },
  1608. {"pbgsw", 2, one(0xf08c), one(0xffff), "BW", m68851 },
  1609. {"pbic", 2, one(0xf08b), one(0xffbf), "Bc", m68851 },
  1610. {"pbicw", 2, one(0xf08b), one(0xffff), "BW", m68851 },
  1611. {"pbis", 2, one(0xf08a), one(0xffbf), "Bc", m68851 },
  1612. {"pbisw", 2, one(0xf08a), one(0xffff), "BW", m68851 },
  1613. {"pblc", 2, one(0xf083), one(0xffbf), "Bc", m68851 },
  1614. {"pblcw", 2, one(0xf083), one(0xffff), "BW", m68851 },
  1615. {"pbls", 2, one(0xf082), one(0xffbf), "Bc", m68851 },
  1616. {"pblsw", 2, one(0xf082), one(0xffff), "BW", m68851 },
  1617. {"pbsc", 2, one(0xf085), one(0xffbf), "Bc", m68851 },
  1618. {"pbscw", 2, one(0xf085), one(0xffff), "BW", m68851 },
  1619. {"pbss", 2, one(0xf084), one(0xffbf), "Bc", m68851 },
  1620. {"pbssw", 2, one(0xf084), one(0xffff), "BW", m68851 },
  1621. {"pbwc", 2, one(0xf089), one(0xffbf), "Bc", m68851 },
  1622. {"pbwcw", 2, one(0xf089), one(0xffff), "BW", m68851 },
  1623. {"pbws", 2, one(0xf088), one(0xffbf), "Bc", m68851 },
  1624. {"pbwsw", 2, one(0xf088), one(0xffff), "BW", m68851 },
  1625. {"pdbac", 4, two(0xf048, 0x0007), two(0xfff8, 0xffff), "DsBw", m68851 },
  1626. {"pdbas", 4, two(0xf048, 0x0006), two(0xfff8, 0xffff), "DsBw", m68851 },
  1627. {"pdbbc", 4, two(0xf048, 0x0001), two(0xfff8, 0xffff), "DsBw", m68851 },
  1628. {"pdbbs", 4, two(0xf048, 0x0000), two(0xfff8, 0xffff), "DsBw", m68851 },
  1629. {"pdbcc", 4, two(0xf048, 0x000f), two(0xfff8, 0xffff), "DsBw", m68851 },
  1630. {"pdbcs", 4, two(0xf048, 0x000e), two(0xfff8, 0xffff), "DsBw", m68851 },
  1631. {"pdbgc", 4, two(0xf048, 0x000d), two(0xfff8, 0xffff), "DsBw", m68851 },
  1632. {"pdbgs", 4, two(0xf048, 0x000c), two(0xfff8, 0xffff), "DsBw", m68851 },
  1633. {"pdbic", 4, two(0xf048, 0x000b), two(0xfff8, 0xffff), "DsBw", m68851 },
  1634. {"pdbis", 4, two(0xf048, 0x000a), two(0xfff8, 0xffff), "DsBw", m68851 },
  1635. {"pdblc", 4, two(0xf048, 0x0003), two(0xfff8, 0xffff), "DsBw", m68851 },
  1636. {"pdbls", 4, two(0xf048, 0x0002), two(0xfff8, 0xffff), "DsBw", m68851 },
  1637. {"pdbsc", 4, two(0xf048, 0x0005), two(0xfff8, 0xffff), "DsBw", m68851 },
  1638. {"pdbss", 4, two(0xf048, 0x0004), two(0xfff8, 0xffff), "DsBw", m68851 },
  1639. {"pdbwc", 4, two(0xf048, 0x0009), two(0xfff8, 0xffff), "DsBw", m68851 },
  1640. {"pdbws", 4, two(0xf048, 0x0008), two(0xfff8, 0xffff), "DsBw", m68851 },
  1641. {"pea", 2, one(0044100), one(0177700), "!s", m68000up|mcfisa_a },
  1642. {"pflusha", 2, one(0xf518), one(0xfff8), "", m68040up },
  1643. {"pflusha", 4, two(0xf000,0x2400), two(0xffff,0xffff), "", m68030 | m68851 },
  1644. {"pflush", 4, two(0xf000,0x3010), two(0xffc0,0xfe10), "T3T9", m68030|m68851 },
  1645. {"pflush", 4, two(0xf000,0x3810), two(0xffc0,0xfe10), "T3T9&s", m68030|m68851 },
  1646. {"pflush", 4, two(0xf000,0x3008), two(0xffc0,0xfe18), "D3T9", m68030|m68851 },
  1647. {"pflush", 4, two(0xf000,0x3808), two(0xffc0,0xfe18), "D3T9&s", m68030|m68851 },
  1648. {"pflush", 4, two(0xf000,0x3000), two(0xffc0,0xfe1e), "f3T9", m68030|m68851 },
  1649. {"pflush", 4, two(0xf000,0x3800), two(0xffc0,0xfe1e), "f3T9&s", m68030|m68851 },
  1650. {"pflush", 2, one(0xf508), one(0xfff8), "as", m68040up },
  1651. {"pflush", 2, one(0xf508), one(0xfff8), "As", m68040up },
  1652. {"pflushan", 2, one(0xf510), one(0xfff8), "", m68040up },
  1653. {"pflushn", 2, one(0xf500), one(0xfff8), "as", m68040up },
  1654. {"pflushn", 2, one(0xf500), one(0xfff8), "As", m68040up },
  1655. {"pflushr", 4, two(0xf000, 0xa000), two(0xffc0, 0xffff), "|s", m68851 },
  1656. {"pflushs", 4, two(0xf000, 0x3410), two(0xfff8, 0xfe10), "T3T9", m68851 },
  1657. {"pflushs", 4, two(0xf000, 0x3c10), two(0xfff8, 0xfe10), "T3T9&s", m68851 },
  1658. {"pflushs", 4, two(0xf000, 0x3408), two(0xfff8, 0xfe18), "D3T9", m68851 },
  1659. {"pflushs", 4, two(0xf000, 0x3c08), two(0xfff8, 0xfe18), "D3T9&s", m68851 },
  1660. {"pflushs", 4, two(0xf000, 0x3400), two(0xfff8, 0xfe1e), "f3T9", m68851 },
  1661. {"pflushs", 4, two(0xf000, 0x3c00), two(0xfff8, 0xfe1e), "f3T9&s", m68851 },
  1662. {"ploadr", 4, two(0xf000,0x2210), two(0xffc0,0xfff0), "T3&s", m68030|m68851 },
  1663. {"ploadr", 4, two(0xf000,0x2208), two(0xffc0,0xfff8), "D3&s", m68030|m68851 },
  1664. {"ploadr", 4, two(0xf000,0x2200), two(0xffc0,0xfffe), "f3&s", m68030|m68851 },
  1665. {"ploadw", 4, two(0xf000,0x2010), two(0xffc0,0xfff0), "T3&s", m68030|m68851 },
  1666. {"ploadw", 4, two(0xf000,0x2008), two(0xffc0,0xfff8), "D3&s", m68030|m68851 },
  1667. {"ploadw", 4, two(0xf000,0x2000), two(0xffc0,0xfffe), "f3&s", m68030|m68851 },
  1668. {"plpar", 2, one(0xf5c8), one(0xfff8), "as", m68060 },
  1669. {"plpaw", 2, one(0xf588), one(0xfff8), "as", m68060 },
  1670. {"pmove", 4, two(0xf000,0x4000), two(0xffc0,0xffff), "*l08", m68030|m68851 },
  1671. {"pmove", 4, two(0xf000,0x5c00), two(0xffc0,0xffff), "*w18", m68851 },
  1672. {"pmove", 4, two(0xf000,0x4000), two(0xffc0,0xe3ff), "*b28", m68851 },
  1673. {"pmove", 4, two(0xf000,0x4200), two(0xffc0,0xffff), "08%s", m68030|m68851 },
  1674. {"pmove", 4, two(0xf000,0x5e00), two(0xffc0,0xffff), "18%s", m68851 },
  1675. {"pmove", 4, two(0xf000,0x4200), two(0xffc0,0xe3ff), "28%s", m68851 },
  1676. {"pmove", 4, two(0xf000,0x4000), two(0xffc0,0xe3ff), "|sW8", m68030|m68851 },
  1677. {"pmove", 4, two(0xf000,0x4200), two(0xffc0,0xe3ff), "W8~s", m68030|m68851 },
  1678. {"pmove", 4, two(0xf000,0x6000), two(0xffc0,0xffff), "*wY8", m68030|m68851 },
  1679. {"pmove", 4, two(0xf000,0x6200), two(0xffc0,0xffff), "Y8%s", m68030|m68851 },
  1680. {"pmove", 4, two(0xf000,0x6600), two(0xffc0,0xffff), "Z8%s", m68851 },
  1681. {"pmove", 4, two(0xf000,0x6000), two(0xffc0,0xe3e3), "*wX3", m68851 },
  1682. {"pmove", 4, two(0xf000,0x6200), two(0xffc0,0xe3e3), "X3%s", m68851 },
  1683. {"pmove", 4, two(0xf000,0x0800), two(0xffc0,0xfbff), "*l38", m68030 },
  1684. {"pmove", 4, two(0xf000,0x0a00), two(0xffc0,0xfbff), "38%s", m68030 },
  1685. {"pmovefd", 4, two(0xf000, 0x4100), two(0xffc0, 0xe3ff), "*l08", m68030 },
  1686. {"pmovefd", 4, two(0xf000, 0x4100), two(0xffc0, 0xe3ff), "|sW8", m68030 },
  1687. {"pmovefd", 4, two(0xf000, 0x0900), two(0xffc0, 0xfbff), "*l38", m68030 },
  1688. {"prestore", 2, one(0xf140), one(0xffc0), "<s", m68851 },
  1689. {"psave", 2, one(0xf100), one(0xffc0), ">s", m68851 },
  1690. {"psac", 4, two(0xf040, 0x0007), two(0xffc0, 0xffff), "$s", m68851 },
  1691. {"psas", 4, two(0xf040, 0x0006), two(0xffc0, 0xffff), "$s", m68851 },
  1692. {"psbc", 4, two(0xf040, 0x0001), two(0xffc0, 0xffff), "$s", m68851 },
  1693. {"psbs", 4, two(0xf040, 0x0000), two(0xffc0, 0xffff), "$s", m68851 },
  1694. {"pscc", 4, two(0xf040, 0x000f), two(0xffc0, 0xffff), "$s", m68851 },
  1695. {"pscs", 4, two(0xf040, 0x000e), two(0xffc0, 0xffff), "$s", m68851 },
  1696. {"psgc", 4, two(0xf040, 0x000d), two(0xffc0, 0xffff), "$s", m68851 },
  1697. {"psgs", 4, two(0xf040, 0x000c), two(0xffc0, 0xffff), "$s", m68851 },
  1698. {"psic", 4, two(0xf040, 0x000b), two(0xffc0, 0xffff), "$s", m68851 },
  1699. {"psis", 4, two(0xf040, 0x000a), two(0xffc0, 0xffff), "$s", m68851 },
  1700. {"pslc", 4, two(0xf040, 0x0003), two(0xffc0, 0xffff), "$s", m68851 },
  1701. {"psls", 4, two(0xf040, 0x0002), two(0xffc0, 0xffff), "$s", m68851 },
  1702. {"pssc", 4, two(0xf040, 0x0005), two(0xffc0, 0xffff), "$s", m68851 },
  1703. {"psss", 4, two(0xf040, 0x0004), two(0xffc0, 0xffff), "$s", m68851 },
  1704. {"pswc", 4, two(0xf040, 0x0009), two(0xffc0, 0xffff), "$s", m68851 },
  1705. {"psws", 4, two(0xf040, 0x0008), two(0xffc0, 0xffff), "$s", m68851 },
  1706. {"ptestr", 4, two(0xf000,0x8210), two(0xffc0, 0xe3f0), "T3&st8", m68030|m68851 },
  1707. {"ptestr", 4, two(0xf000,0x8310), two(0xffc0,0xe310), "T3&st8A9", m68030|m68851 },
  1708. {"ptestr", 4, two(0xf000,0x8208), two(0xffc0,0xe3f8), "D3&st8", m68030|m68851 },
  1709. {"ptestr", 4, two(0xf000,0x8308), two(0xffc0,0xe318), "D3&st8A9", m68030|m68851 },
  1710. {"ptestr", 4, two(0xf000,0x8200), two(0xffc0,0xe3fe), "f3&st8", m68030|m68851 },
  1711. {"ptestr", 4, two(0xf000,0x8300), two(0xffc0,0xe31e), "f3&st8A9", m68030|m68851 },
  1712. {"ptestr", 2, one(0xf568), one(0xfff8), "as", m68040 },
  1713. {"ptestw", 4, two(0xf000,0x8010), two(0xffc0,0xe3f0), "T3&st8", m68030|m68851 },
  1714. {"ptestw", 4, two(0xf000,0x8110), two(0xffc0,0xe310), "T3&st8A9", m68030|m68851 },
  1715. {"ptestw", 4, two(0xf000,0x8008), two(0xffc0,0xe3f8), "D3&st8", m68030|m68851 },
  1716. {"ptestw", 4, two(0xf000,0x8108), two(0xffc0,0xe318), "D3&st8A9", m68030|m68851 },
  1717. {"ptestw", 4, two(0xf000,0x8000), two(0xffc0,0xe3fe), "f3&st8", m68030|m68851 },
  1718. {"ptestw", 4, two(0xf000,0x8100), two(0xffc0,0xe31e), "f3&st8A9", m68030|m68851 },
  1719. {"ptestw", 2, one(0xf548), one(0xfff8), "as", m68040 },
  1720. {"ptrapacw", 6, two(0xf07a, 0x0007), two(0xffff, 0xffff), "#w", m68851 },
  1721. {"ptrapacl", 6, two(0xf07b, 0x0007), two(0xffff, 0xffff), "#l", m68851 },
  1722. {"ptrapac", 4, two(0xf07c, 0x0007), two(0xffff, 0xffff), "", m68851 },
  1723. {"ptrapasw", 6, two(0xf07a, 0x0006), two(0xffff, 0xffff), "#w", m68851 },
  1724. {"ptrapasl", 6, two(0xf07b, 0x0006), two(0xffff, 0xffff), "#l", m68851 },
  1725. {"ptrapas", 4, two(0xf07c, 0x0006), two(0xffff, 0xffff), "", m68851 },
  1726. {"ptrapbcw", 6, two(0xf07a, 0x0001), two(0xffff, 0xffff), "#w", m68851 },
  1727. {"ptrapbcl", 6, two(0xf07b, 0x0001), two(0xffff, 0xffff), "#l", m68851 },
  1728. {"ptrapbc", 4, two(0xf07c, 0x0001), two(0xffff, 0xffff), "", m68851 },
  1729. {"ptrapbsw", 6, two(0xf07a, 0x0000), two(0xffff, 0xffff), "#w", m68851 },
  1730. {"ptrapbsl", 6, two(0xf07b, 0x0000), two(0xffff, 0xffff), "#l", m68851 },
  1731. {"ptrapbs", 4, two(0xf07c, 0x0000), two(0xffff, 0xffff), "", m68851 },
  1732. {"ptrapccw", 6, two(0xf07a, 0x000f), two(0xffff, 0xffff), "#w", m68851 },
  1733. {"ptrapccl", 6, two(0xf07b, 0x000f), two(0xffff, 0xffff), "#l", m68851 },
  1734. {"ptrapcc", 4, two(0xf07c, 0x000f), two(0xffff, 0xffff), "", m68851 },
  1735. {"ptrapcsw", 6, two(0xf07a, 0x000e), two(0xffff, 0xffff), "#w", m68851 },
  1736. {"ptrapcsl", 6, two(0xf07b, 0x000e), two(0xffff, 0xffff), "#l", m68851 },
  1737. {"ptrapcs", 4, two(0xf07c, 0x000e), two(0xffff, 0xffff), "", m68851 },
  1738. {"ptrapgcw", 6, two(0xf07a, 0x000d), two(0xffff, 0xffff), "#w", m68851 },
  1739. {"ptrapgcl", 6, two(0xf07b, 0x000d), two(0xffff, 0xffff), "#l", m68851 },
  1740. {"ptrapgc", 4, two(0xf07c, 0x000d), two(0xffff, 0xffff), "", m68851 },
  1741. {"ptrapgsw", 6, two(0xf07a, 0x000c), two(0xffff, 0xffff), "#w", m68851 },
  1742. {"ptrapgsl", 6, two(0xf07b, 0x000c), two(0xffff, 0xffff), "#l", m68851 },
  1743. {"ptrapgs", 4, two(0xf07c, 0x000c), two(0xffff, 0xffff), "", m68851 },
  1744. {"ptrapicw", 6, two(0xf07a, 0x000b), two(0xffff, 0xffff), "#w", m68851 },
  1745. {"ptrapicl", 6, two(0xf07b, 0x000b), two(0xffff, 0xffff), "#l", m68851 },
  1746. {"ptrapic", 4, two(0xf07c, 0x000b), two(0xffff, 0xffff), "", m68851 },
  1747. {"ptrapisw", 6, two(0xf07a, 0x000a), two(0xffff, 0xffff), "#w", m68851 },
  1748. {"ptrapisl", 6, two(0xf07b, 0x000a), two(0xffff, 0xffff), "#l", m68851 },
  1749. {"ptrapis", 4, two(0xf07c, 0x000a), two(0xffff, 0xffff), "", m68851 },
  1750. {"ptraplcw", 6, two(0xf07a, 0x0003), two(0xffff, 0xffff), "#w", m68851 },
  1751. {"ptraplcl", 6, two(0xf07b, 0x0003), two(0xffff, 0xffff), "#l", m68851 },
  1752. {"ptraplc", 4, two(0xf07c, 0x0003), two(0xffff, 0xffff), "", m68851 },
  1753. {"ptraplsw", 6, two(0xf07a, 0x0002), two(0xffff, 0xffff), "#w", m68851 },
  1754. {"ptraplsl", 6, two(0xf07b, 0x0002), two(0xffff, 0xffff), "#l", m68851 },
  1755. {"ptrapls", 4, two(0xf07c, 0x0002), two(0xffff, 0xffff), "", m68851 },
  1756. {"ptrapscw", 6, two(0xf07a, 0x0005), two(0xffff, 0xffff), "#w", m68851 },
  1757. {"ptrapscl", 6, two(0xf07b, 0x0005), two(0xffff, 0xffff), "#l", m68851 },
  1758. {"ptrapsc", 4, two(0xf07c, 0x0005), two(0xffff, 0xffff), "", m68851 },
  1759. {"ptrapssw", 6, two(0xf07a, 0x0004), two(0xffff, 0xffff), "#w", m68851 },
  1760. {"ptrapssl", 6, two(0xf07b, 0x0004), two(0xffff, 0xffff), "#l", m68851 },
  1761. {"ptrapss", 4, two(0xf07c, 0x0004), two(0xffff, 0xffff), "", m68851 },
  1762. {"ptrapwcw", 6, two(0xf07a, 0x0009), two(0xffff, 0xffff), "#w", m68851 },
  1763. {"ptrapwcl", 6, two(0xf07b, 0x0009), two(0xffff, 0xffff), "#l", m68851 },
  1764. {"ptrapwc", 4, two(0xf07c, 0x0009), two(0xffff, 0xffff), "", m68851 },
  1765. {"ptrapwsw", 6, two(0xf07a, 0x0008), two(0xffff, 0xffff), "#w", m68851 },
  1766. {"ptrapwsl", 6, two(0xf07b, 0x0008), two(0xffff, 0xffff), "#l", m68851 },
  1767. {"ptrapws", 4, two(0xf07c, 0x0008), two(0xffff, 0xffff), "", m68851 },
  1768. {"pulse", 2, one(0045314), one(0177777), "", m68060 | mcfisa_a },
  1769. {"pvalid", 4, two(0xf000, 0x2800), two(0xffc0, 0xffff), "Vs&s", m68851 },
  1770. {"pvalid", 4, two(0xf000, 0x2c00), two(0xffc0, 0xfff8), "A3&s", m68851 },
  1771. /* FIXME: don't allow Dw==Dx. */
  1772. {"remsl", 4, two(0x4c40, 0x0800), two(0xffc0, 0x8ff8), "qsD3D1", mcfhwdiv },
  1773. {"remul", 4, two(0x4c40, 0x0000), two(0xffc0, 0x8ff8), "qsD3D1", mcfhwdiv },
  1774. {"reset", 2, one(0047160), one(0177777), "", m68000up },
  1775. {"rolb", 2, one(0160430), one(0170770), "QdDs", m68000up },
  1776. {"rolb", 2, one(0160470), one(0170770), "DdDs", m68000up },
  1777. {"rolw", 2, one(0160530), one(0170770), "QdDs", m68000up },
  1778. {"rolw", 2, one(0160570), one(0170770), "DdDs", m68000up },
  1779. {"rolw", 2, one(0163700), one(0177700), "~s", m68000up },
  1780. {"roll", 2, one(0160630), one(0170770), "QdDs", m68000up },
  1781. {"roll", 2, one(0160670), one(0170770), "DdDs", m68000up },
  1782. {"rorb", 2, one(0160030), one(0170770), "QdDs", m68000up },
  1783. {"rorb", 2, one(0160070), one(0170770), "DdDs", m68000up },
  1784. {"rorw", 2, one(0160130), one(0170770), "QdDs", m68000up },
  1785. {"rorw", 2, one(0160170), one(0170770), "DdDs", m68000up },
  1786. {"rorw", 2, one(0163300), one(0177700), "~s", m68000up },
  1787. {"rorl", 2, one(0160230), one(0170770), "QdDs", m68000up },
  1788. {"rorl", 2, one(0160270), one(0170770), "DdDs", m68000up },
  1789. {"roxlb", 2, one(0160420), one(0170770), "QdDs", m68000up },
  1790. {"roxlb", 2, one(0160460), one(0170770), "DdDs", m68000up },
  1791. {"roxlw", 2, one(0160520), one(0170770), "QdDs", m68000up },
  1792. {"roxlw", 2, one(0160560), one(0170770), "DdDs", m68000up },
  1793. {"roxlw", 2, one(0162700), one(0177700), "~s", m68000up },
  1794. {"roxll", 2, one(0160620), one(0170770), "QdDs", m68000up },
  1795. {"roxll", 2, one(0160660), one(0170770), "DdDs", m68000up },
  1796. {"roxrb", 2, one(0160020), one(0170770), "QdDs", m68000up },
  1797. {"roxrb", 2, one(0160060), one(0170770), "DdDs", m68000up },
  1798. {"roxrw", 2, one(0160120), one(0170770), "QdDs", m68000up },
  1799. {"roxrw", 2, one(0160160), one(0170770), "DdDs", m68000up },
  1800. {"roxrw", 2, one(0162300), one(0177700), "~s", m68000up },
  1801. {"roxrl", 2, one(0160220), one(0170770), "QdDs", m68000up },
  1802. {"roxrl", 2, one(0160260), one(0170770), "DdDs", m68000up },
  1803. {"rtd", 4, one(0047164), one(0177777), "#w", m68010up },
  1804. {"rte", 2, one(0047163), one(0177777), "", m68000up | mcfisa_a },
  1805. {"rtm", 2, one(0003300), one(0177760), "Rs", m68020 },
  1806. {"rtr", 2, one(0047167), one(0177777), "", m68000up },
  1807. {"rts", 2, one(0047165), one(0177777), "", m68000up | mcfisa_a },
  1808. {"satsl", 2, one(0046200), one(0177770), "Ds", mcfisa_b | mcfisa_c },
  1809. {"sbcd", 2, one(0100400), one(0170770), "DsDd", m68000up },
  1810. {"sbcd", 2, one(0100410), one(0170770), "-s-d", m68000up },
  1811. {"stldsr", 6, two(0x40e7, 0x46fc), two(0xffff, 0xffff), "#w", mcfisa_aa | mcfisa_c },
  1812. /* Traps have to come before conditional sets, as they have a more
  1813. specific opcode. */
  1814. {"trapcc", 2, one(0052374), one(0177777), "", m68020up | cpu32 | fido_a },
  1815. {"trapcs", 2, one(0052774), one(0177777), "", m68020up | cpu32 | fido_a },
  1816. {"trapeq", 2, one(0053774), one(0177777), "", m68020up | cpu32 | fido_a },
  1817. {"tpf", 2, one(0050774), one(0177777), "", mcfisa_a },
  1818. {"trapf", 2, one(0050774), one(0177777), "", m68020up | cpu32 | fido_a | mcfisa_a },
  1819. {"trapge", 2, one(0056374), one(0177777), "", m68020up | cpu32 | fido_a },
  1820. {"trapgt", 2, one(0057374), one(0177777), "", m68020up | cpu32 | fido_a },
  1821. {"traphi", 2, one(0051374), one(0177777), "", m68020up | cpu32 | fido_a },
  1822. {"traple", 2, one(0057774), one(0177777), "", m68020up | cpu32 | fido_a },
  1823. {"trapls", 2, one(0051774), one(0177777), "", m68020up | cpu32 | fido_a },
  1824. {"traplt", 2, one(0056774), one(0177777), "", m68020up | cpu32 | fido_a },
  1825. {"trapmi", 2, one(0055774), one(0177777), "", m68020up | cpu32 | fido_a },
  1826. {"trapne", 2, one(0053374), one(0177777), "", m68020up | cpu32 | fido_a },
  1827. {"trappl", 2, one(0055374), one(0177777), "", m68020up | cpu32 | fido_a },
  1828. {"trapt", 2, one(0050374), one(0177777), "", m68020up | cpu32 | fido_a },
  1829. {"trapvc", 2, one(0054374), one(0177777), "", m68020up | cpu32 | fido_a },
  1830. {"trapvs", 2, one(0054774), one(0177777), "", m68020up | cpu32 | fido_a },
  1831. {"trapccw", 4, one(0052372), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1832. {"trapcsw", 4, one(0052772), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1833. {"trapeqw", 4, one(0053772), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1834. {"tpfw", 4, one(0050772), one(0177777), "#w", mcfisa_a},
  1835. {"trapfw", 4, one(0050772), one(0177777), "#w", m68020up | cpu32 | fido_a | mcfisa_a},
  1836. {"trapgew", 4, one(0056372), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1837. {"trapgtw", 4, one(0057372), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1838. {"traphiw", 4, one(0051372), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1839. {"traplew", 4, one(0057772), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1840. {"traplsw", 4, one(0051772), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1841. {"trapltw", 4, one(0056772), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1842. {"trapmiw", 4, one(0055772), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1843. {"trapnew", 4, one(0053372), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1844. {"trapplw", 4, one(0055372), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1845. {"traptw", 4, one(0050372), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1846. {"trapvcw", 4, one(0054372), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1847. {"trapvsw", 4, one(0054772), one(0177777), "#w", m68020up | cpu32 | fido_a },
  1848. {"trapccl", 6, one(0052373), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1849. {"trapcsl", 6, one(0052773), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1850. {"trapeql", 6, one(0053773), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1851. {"tpfl", 6, one(0050773), one(0177777), "#l", mcfisa_a},
  1852. {"trapfl", 6, one(0050773), one(0177777), "#l", m68020up | cpu32 | fido_a | mcfisa_a},
  1853. {"trapgel", 6, one(0056373), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1854. {"trapgtl", 6, one(0057373), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1855. {"traphil", 6, one(0051373), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1856. {"traplel", 6, one(0057773), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1857. {"traplsl", 6, one(0051773), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1858. {"trapltl", 6, one(0056773), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1859. {"trapmil", 6, one(0055773), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1860. {"trapnel", 6, one(0053373), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1861. {"trappll", 6, one(0055373), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1862. {"traptl", 6, one(0050373), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1863. {"trapvcl", 6, one(0054373), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1864. {"trapvsl", 6, one(0054773), one(0177777), "#l", m68020up | cpu32 | fido_a },
  1865. {"trapv", 2, one(0047166), one(0177777), "", m68000up },
  1866. {"scc", 2, one(0052300), one(0177700), "$s", m68000up },
  1867. {"scc", 2, one(0052300), one(0177700), "Ds", mcfisa_a },
  1868. {"scs", 2, one(0052700), one(0177700), "$s", m68000up },
  1869. {"scs", 2, one(0052700), one(0177700), "Ds", mcfisa_a },
  1870. {"seq", 2, one(0053700), one(0177700), "$s", m68000up },
  1871. {"seq", 2, one(0053700), one(0177700), "Ds", mcfisa_a },
  1872. {"sf", 2, one(0050700), one(0177700), "$s", m68000up },
  1873. {"sf", 2, one(0050700), one(0177700), "Ds", mcfisa_a },
  1874. {"sge", 2, one(0056300), one(0177700), "$s", m68000up },
  1875. {"sge", 2, one(0056300), one(0177700), "Ds", mcfisa_a },
  1876. {"sgt", 2, one(0057300), one(0177700), "$s", m68000up },
  1877. {"sgt", 2, one(0057300), one(0177700), "Ds", mcfisa_a },
  1878. {"shi", 2, one(0051300), one(0177700), "$s", m68000up },
  1879. {"shi", 2, one(0051300), one(0177700), "Ds", mcfisa_a },
  1880. {"sle", 2, one(0057700), one(0177700), "$s", m68000up },
  1881. {"sle", 2, one(0057700), one(0177700), "Ds", mcfisa_a },
  1882. {"sls", 2, one(0051700), one(0177700), "$s", m68000up },
  1883. {"sls", 2, one(0051700), one(0177700), "Ds", mcfisa_a },
  1884. {"slt", 2, one(0056700), one(0177700), "$s", m68000up },
  1885. {"slt", 2, one(0056700), one(0177700), "Ds", mcfisa_a },
  1886. {"smi", 2, one(0055700), one(0177700), "$s", m68000up },
  1887. {"smi", 2, one(0055700), one(0177700), "Ds", mcfisa_a },
  1888. {"sne", 2, one(0053300), one(0177700), "$s", m68000up },
  1889. {"sne", 2, one(0053300), one(0177770), "Ds", mcfisa_a },
  1890. {"spl", 2, one(0055300), one(0177700), "$s", m68000up },
  1891. {"spl", 2, one(0055300), one(0177770), "Ds", mcfisa_a },
  1892. {"st", 2, one(0050300), one(0177700), "$s", m68000up },
  1893. {"st", 2, one(0050300), one(0177770), "Ds", mcfisa_a },
  1894. {"svc", 2, one(0054300), one(0177700), "$s", m68000up },
  1895. {"svc", 2, one(0054300), one(0177770), "Ds", mcfisa_a },
  1896. {"svs", 2, one(0054700), one(0177700), "$s", m68000up },
  1897. {"svs", 2, one(0054700), one(0177770), "Ds", mcfisa_a },
  1898. {"sleep", 2, one(0047170), one(0177777), "", fido_a },
  1899. {"stop", 4, one(0047162), one(0177777), "#w", m68000up | mcfisa_a },
  1900. {"strldsr", 4, two(0040347,0043374), two(0177777,0177777), "#w", mcfisa_aa},
  1901. {"subal", 2, one(0110700), one(0170700), "*lAd", m68000up | mcfisa_a },
  1902. {"subaw", 2, one(0110300), one(0170700), "*wAd", m68000up },
  1903. {"subib", 4, one(0002000), one(0177700), "#b$s", m68000up },
  1904. {"subiw", 4, one(0002100), one(0177700), "#w$s", m68000up },
  1905. {"subil", 6, one(0002200), one(0177700), "#l$s", m68000up },
  1906. {"subil", 6, one(0002200), one(0177700), "#lDs", mcfisa_a },
  1907. {"subqb", 2, one(0050400), one(0170700), "Qd%s", m68000up },
  1908. {"subqw", 2, one(0050500), one(0170700), "Qd%s", m68000up },
  1909. {"subql", 2, one(0050600), one(0170700), "Qd%s", m68000up | mcfisa_a },
  1910. /* The sub opcode can generate the suba, subi, and subq instructions. */
  1911. {"subb", 2, one(0050400), one(0170700), "Qd%s", m68000up },
  1912. {"subb", 4, one(0002000), one(0177700), "#b$s", m68000up },
  1913. {"subb", 2, one(0110000), one(0170700), ";bDd", m68000up },
  1914. {"subb", 2, one(0110400), one(0170700), "Dd~s", m68000up },
  1915. {"subw", 2, one(0050500), one(0170700), "Qd%s", m68000up },
  1916. {"subw", 4, one(0002100), one(0177700), "#w$s", m68000up },
  1917. {"subw", 2, one(0110300), one(0170700), "*wAd", m68000up },
  1918. {"subw", 2, one(0110100), one(0170700), "*wDd", m68000up },
  1919. {"subw", 2, one(0110500), one(0170700), "Dd~s", m68000up },
  1920. {"subl", 2, one(0050600), one(0170700), "Qd%s", m68000up | mcfisa_a },
  1921. {"subl", 6, one(0002200), one(0177700), "#l$s", m68000up },
  1922. {"subl", 6, one(0002200), one(0177700), "#lDs", mcfisa_a },
  1923. {"subl", 2, one(0110700), one(0170700), "*lAd", m68000up | mcfisa_a },
  1924. {"subl", 2, one(0110200), one(0170700), "*lDd", m68000up | mcfisa_a },
  1925. {"subl", 2, one(0110600), one(0170700), "Dd~s", m68000up | mcfisa_a },
  1926. {"subxb", 2, one(0110400), one(0170770), "DsDd", m68000up },
  1927. {"subxb", 2, one(0110410), one(0170770), "-s-d", m68000up },
  1928. {"subxw", 2, one(0110500), one(0170770), "DsDd", m68000up },
  1929. {"subxw", 2, one(0110510), one(0170770), "-s-d", m68000up },
  1930. {"subxl", 2, one(0110600), one(0170770), "DsDd", m68000up | mcfisa_a },
  1931. {"subxl", 2, one(0110610), one(0170770), "-s-d", m68000up },
  1932. {"swap", 2, one(0044100), one(0177770), "Ds", m68000up | mcfisa_a },
  1933. /* swbeg and swbegl are magic constants used on sysV68. The compiler
  1934. generates them before a switch table. They tell the debugger and
  1935. disassembler that a switch table follows. The parameter is the
  1936. number of elements in the table. swbeg means that the entries in
  1937. the table are word (2 byte) sized, and swbegl means that the
  1938. entries in the table are longword (4 byte) sized. */
  1939. {"swbeg", 4, one(0045374), one(0177777), "#w", m68000up | mcfisa_a },
  1940. {"swbegl", 6, one(0045375), one(0177777), "#l", m68000up | mcfisa_a },
  1941. {"tas", 2, one(0045300), one(0177700), "$s", m68000up | mcfisa_b | mcfisa_c},
  1942. #define TBL1(name,insn_size,signed,round,size) \
  1943. {name, insn_size, two(0174000, (signed<<11)|(!round<<10)|(size<<6)|0000400), \
  1944. two(0177700,0107777), "!sD1", cpu32 }, \
  1945. {name, insn_size, two(0174000, (signed<<11)|(!round<<10)|(size<<6)), \
  1946. two(0177770,0107770), "DsD3D1", cpu32 }
  1947. #define TBL(name1, name2, name3, s, r) \
  1948. TBL1(name1, 4, s, r, 0), TBL1(name2, 4, s, r, 1), TBL1(name3, 4, s, r, 2)
  1949. TBL("tblsb", "tblsw", "tblsl", 1, 1),
  1950. TBL("tblsnb", "tblsnw", "tblsnl", 1, 0),
  1951. TBL("tblub", "tbluw", "tblul", 0, 1),
  1952. TBL("tblunb", "tblunw", "tblunl", 0, 0),
  1953. {"trap", 2, one(0047100), one(0177760), "Ts", m68000up | mcfisa_a },
  1954. {"trapx", 2, one(0047060), one(0177760), "Ts", fido_a },
  1955. {"tstb", 2, one(0045000), one(0177700), ";b", m68020up | cpu32 | fido_a | mcfisa_a },
  1956. {"tstb", 2, one(0045000), one(0177700), "$b", m68000up },
  1957. {"tstw", 2, one(0045100), one(0177700), "*w", m68020up | cpu32 | fido_a | mcfisa_a },
  1958. {"tstw", 2, one(0045100), one(0177700), "$w", m68000up },
  1959. {"tstl", 2, one(0045200), one(0177700), "*l", m68020up | cpu32 | fido_a | mcfisa_a },
  1960. {"tstl", 2, one(0045200), one(0177700), "$l", m68000up },
  1961. {"unlk", 2, one(0047130), one(0177770), "As", m68000up | mcfisa_a },
  1962. {"unpk", 4, one(0100600), one(0170770), "DsDd#w", m68020up },
  1963. {"unpk", 4, one(0100610), one(0170770), "-s-d#w", m68020up },
  1964. {"wddatab", 2, one(0175400), one(0177700), "~s", mcfisa_a },
  1965. {"wddataw", 2, one(0175500), one(0177700), "~s", mcfisa_a },
  1966. {"wddatal", 2, one(0175600), one(0177700), "~s", mcfisa_a },
  1967. {"wdebugl", 4, two(0175720, 03), two(0177770, 0xffff), "as", mcfisa_a },
  1968. {"wdebugl", 4, two(0175750, 03), two(0177770, 0xffff), "ds", mcfisa_a },
  1969. {"wdebug", 4, two(0175720, 03), two(0177770, 0xffff), "as", mcfisa_a },
  1970. {"wdebug", 4, two(0175750, 03), two(0177770, 0xffff), "ds", mcfisa_a },
  1971. };
  1972. const int m68k_numopcodes = sizeof m68k_opcodes / sizeof m68k_opcodes[0];
  1973. /* These aliases used to be in the above table, each one duplicating
  1974. all of the entries for its primary exactly. This table was
  1975. constructed by mechanical processing of the opcode table, with a
  1976. small number of tweaks done by hand. There are probably a lot more
  1977. aliases above that could be moved down here, except for very minor
  1978. differences. */
  1979. const struct m68k_opcode_alias m68k_opcode_aliases[] =
  1980. {
  1981. { "add", "addw", },
  1982. { "adda", "addaw", },
  1983. { "addi", "addiw", },
  1984. { "addq", "addqw", },
  1985. { "addx", "addxw", },
  1986. { "asl", "aslw", },
  1987. { "asr", "asrw", },
  1988. { "bhi", "bhiw", },
  1989. { "bls", "blsw", },
  1990. { "bcc", "bccw", },
  1991. { "bcs", "bcsw", },
  1992. { "bne", "bnew", },
  1993. { "beq", "beqw", },
  1994. { "bvc", "bvcw", },
  1995. { "bvs", "bvsw", },
  1996. { "bpl", "bplw", },
  1997. { "bmi", "bmiw", },
  1998. { "bge", "bgew", },
  1999. { "blt", "bltw", },
  2000. { "bgt", "bgtw", },
  2001. { "ble", "blew", },
  2002. { "bra", "braw", },
  2003. { "bsr", "bsrw", },
  2004. { "bhib", "bhis", },
  2005. { "blsb", "blss", },
  2006. { "bccb", "bccs", },
  2007. { "bcsb", "bcss", },
  2008. { "bneb", "bnes", },
  2009. { "beqb", "beqs", },
  2010. { "bvcb", "bvcs", },
  2011. { "bvsb", "bvss", },
  2012. { "bplb", "bpls", },
  2013. { "bmib", "bmis", },
  2014. { "bgeb", "bges", },
  2015. { "bltb", "blts", },
  2016. { "bgtb", "bgts", },
  2017. { "bleb", "bles", },
  2018. { "brab", "bras", },
  2019. { "bsrb", "bsrs", },
  2020. { "bhs", "bccw" },
  2021. { "bhss", "bccs" },
  2022. { "bhsb", "bccs" },
  2023. { "bhsw", "bccw" },
  2024. { "bhsl", "bccl" },
  2025. { "blo", "bcsw" },
  2026. { "blos", "bcss" },
  2027. { "blob", "bcss" },
  2028. { "blow", "bcsw" },
  2029. { "blol", "bcsl" },
  2030. { "br", "braw", },
  2031. { "brs", "bras", },
  2032. { "brb", "bras", },
  2033. { "brw", "braw", },
  2034. { "brl", "bral", },
  2035. { "jfnlt", "bcc", }, /* Apparently a sun alias. */
  2036. { "jfngt", "ble", }, /* Apparently a sun alias. */
  2037. { "jfeq", "beqs", }, /* Apparently a sun alias. */
  2038. { "bchgb", "bchg", },
  2039. { "bchgl", "bchg", },
  2040. { "bclrb", "bclr", },
  2041. { "bclrl", "bclr", },
  2042. { "bsetb", "bset", },
  2043. { "bsetl", "bset", },
  2044. { "btstb", "btst", },
  2045. { "btstl", "btst", },
  2046. { "cas2", "cas2w", },
  2047. { "cas", "casw", },
  2048. { "chk2", "chk2w", },
  2049. { "chk", "chkw", },
  2050. { "clr", "clrw", },
  2051. { "cmp2", "cmp2w", },
  2052. { "cmpa", "cmpaw", },
  2053. { "cmpi", "cmpiw", },
  2054. { "cmpm", "cmpmw", },
  2055. { "cmp", "cmpw", },
  2056. { "dbccw", "dbcc", },
  2057. { "dbcsw", "dbcs", },
  2058. { "dbeqw", "dbeq", },
  2059. { "dbfw", "dbf", },
  2060. { "dbgew", "dbge", },
  2061. { "dbgtw", "dbgt", },
  2062. { "dbhiw", "dbhi", },
  2063. { "dblew", "dble", },
  2064. { "dblsw", "dbls", },
  2065. { "dbltw", "dblt", },
  2066. { "dbmiw", "dbmi", },
  2067. { "dbnew", "dbne", },
  2068. { "dbplw", "dbpl", },
  2069. { "dbtw", "dbt", },
  2070. { "dbvcw", "dbvc", },
  2071. { "dbvsw", "dbvs", },
  2072. { "dbhs", "dbcc", },
  2073. { "dbhsw", "dbcc", },
  2074. { "dbra", "dbf", },
  2075. { "dbraw", "dbf", },
  2076. { "tdivsl", "divsll", },
  2077. { "divs", "divsw", },
  2078. { "divu", "divuw", },
  2079. { "ext", "extw", },
  2080. { "extbw", "extw", },
  2081. { "extwl", "extl", },
  2082. { "fbneq", "fbne", },
  2083. { "fbsneq", "fbsne", },
  2084. { "fdbneq", "fdbne", },
  2085. { "fdbsneq", "fdbsne", },
  2086. { "fmovecr", "fmovecrx", },
  2087. { "fmovm", "fmovem", },
  2088. { "fsneq", "fsne", },
  2089. { "fssneq", "fssne", },
  2090. { "ftrapneq", "ftrapne", },
  2091. { "ftrapsneq", "ftrapsne", },
  2092. { "fjneq", "fjne", },
  2093. { "fjsneq", "fjsne", },
  2094. { "jmpl", "jmp", },
  2095. { "jmps", "jmp", },
  2096. { "jsrl", "jsr", },
  2097. { "jsrs", "jsr", },
  2098. { "leal", "lea", },
  2099. { "lsl", "lslw", },
  2100. { "lsr", "lsrw", },
  2101. { "mac", "macw" },
  2102. { "movea", "moveaw", },
  2103. { "movem", "movemw", },
  2104. { "movml", "moveml", },
  2105. { "movmw", "movemw", },
  2106. { "movm", "movemw", },
  2107. { "movep", "movepw", },
  2108. { "movpw", "movepw", },
  2109. { "moves", "movesw" },
  2110. { "muls", "mulsw", },
  2111. { "mulu", "muluw", },
  2112. { "msac", "msacw" },
  2113. { "nbcdb", "nbcd" },
  2114. { "neg", "negw", },
  2115. { "negx", "negxw", },
  2116. { "not", "notw", },
  2117. { "peal", "pea", },
  2118. { "rol", "rolw", },
  2119. { "ror", "rorw", },
  2120. { "roxl", "roxlw", },
  2121. { "roxr", "roxrw", },
  2122. { "sats", "satsl", },
  2123. { "sbcdb", "sbcd", },
  2124. { "sccb", "scc", },
  2125. { "scsb", "scs", },
  2126. { "seqb", "seq", },
  2127. { "sfb", "sf", },
  2128. { "sgeb", "sge", },
  2129. { "sgtb", "sgt", },
  2130. { "shib", "shi", },
  2131. { "sleb", "sle", },
  2132. { "slsb", "sls", },
  2133. { "sltb", "slt", },
  2134. { "smib", "smi", },
  2135. { "sneb", "sne", },
  2136. { "splb", "spl", },
  2137. { "stb", "st", },
  2138. { "svcb", "svc", },
  2139. { "svsb", "svs", },
  2140. { "sfge", "sge", },
  2141. { "sfgt", "sgt", },
  2142. { "sfle", "sle", },
  2143. { "sflt", "slt", },
  2144. { "sfneq", "sne", },
  2145. { "suba", "subaw", },
  2146. { "subi", "subiw", },
  2147. { "subq", "subqw", },
  2148. { "sub", "subw", },
  2149. { "subx", "subxw", },
  2150. { "swapw", "swap", },
  2151. { "tasb", "tas", },
  2152. { "tpcc", "trapcc", },
  2153. { "tcc", "trapcc", },
  2154. { "tst", "tstw", },
  2155. { "jbra", "jra", },
  2156. { "jbhi", "jhi", },
  2157. { "jbls", "jls", },
  2158. { "jbcc", "jcc", },
  2159. { "jbcs", "jcs", },
  2160. { "jbne", "jne", },
  2161. { "jbeq", "jeq", },
  2162. { "jbvc", "jvc", },
  2163. { "jbvs", "jvs", },
  2164. { "jbpl", "jpl", },
  2165. { "jbmi", "jmi", },
  2166. { "jbge", "jge", },
  2167. { "jblt", "jlt", },
  2168. { "jbgt", "jgt", },
  2169. { "jble", "jle", },
  2170. { "movql", "moveq", },
  2171. { "moveql", "moveq", },
  2172. { "movl", "movel", },
  2173. { "movq", "moveq", },
  2174. { "moval", "moveal", },
  2175. { "movaw", "moveaw", },
  2176. { "movb", "moveb", },
  2177. { "movc", "movec", },
  2178. { "movecl", "movec", },
  2179. { "movpl", "movepl", },
  2180. { "movw", "movew", },
  2181. { "movsb", "movesb", },
  2182. { "movsl", "movesl", },
  2183. { "movsw", "movesw", },
  2184. { "mov3q", "mov3ql", },
  2185. { "tdivul", "divull", }, /* For m68k-svr4. */
  2186. { "fmovb", "fmoveb", },
  2187. { "fsmovb", "fsmoveb", },
  2188. { "fdmovb", "fdmoveb", },
  2189. { "fmovd", "fmoved", },
  2190. { "fsmovd", "fsmoved", },
  2191. { "fmovl", "fmovel", },
  2192. { "fsmovl", "fsmovel", },
  2193. { "fdmovl", "fdmovel", },
  2194. { "fmovp", "fmovep", },
  2195. { "fsmovp", "fsmovep", },
  2196. { "fdmovp", "fdmovep", },
  2197. { "fmovs", "fmoves", },
  2198. { "fsmovs", "fsmoves", },
  2199. { "fdmovs", "fdmoves", },
  2200. { "fmovw", "fmovew", },
  2201. { "fsmovw", "fsmovew", },
  2202. { "fdmovw", "fdmovew", },
  2203. { "fmovx", "fmovex", },
  2204. { "fsmovx", "fsmovex", },
  2205. { "fdmovx", "fdmovex", },
  2206. { "fmovcr", "fmovecr", },
  2207. { "fmovcrx", "fmovecrx", },
  2208. { "ftestb", "ftstb", },
  2209. { "ftestd", "ftstd", },
  2210. { "ftestl", "ftstl", },
  2211. { "ftestp", "ftstp", },
  2212. { "ftests", "ftsts", },
  2213. { "ftestw", "ftstw", },
  2214. { "ftestx", "ftstx", },
  2215. { "bitrevl", "bitrev", },
  2216. { "byterevl", "byterev", },
  2217. { "ff1l", "ff1", },
  2218. };
  2219. const int m68k_numaliases =
  2220. sizeof m68k_opcode_aliases / sizeof m68k_opcode_aliases[0];