m68k-opc.c 140 KB

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