12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774 |
- #line 1 "rl78-decode.opc"
- /* -*- c -*- */
- /* Copyright (C) 2012-2015 Free Software Foundation, Inc.
- Contributed by Red Hat.
- Written by DJ Delorie.
- This file is part of the GNU opcodes library.
- This library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
- It is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
- #include "sysdep.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "ansidecl.h"
- #include "opcode/rl78.h"
- static int trace = 0;
- typedef struct
- {
- RL78_Opcode_Decoded * rl78;
- int (* getbyte)(void *);
- void * ptr;
- unsigned char * op;
- } LocalData;
- #define ID(x) rl78->id = RLO_##x, rl78->lineno = __LINE__
- #define OP(n,t,r,a) (rl78->op[n].type = t, \
- rl78->op[n].reg = r, \
- rl78->op[n].addend = a )
- #define OPX(n,t,r1,r2,a) \
- (rl78->op[n].type = t, \
- rl78->op[n].reg = r1, \
- rl78->op[n].reg2 = r2, \
- rl78->op[n].addend = a )
- #define W() rl78->size = RL78_Word
- #define AU ATTRIBUTE_UNUSED
- #define GETBYTE() (ld->op [ld->rl78->n_bytes++] = ld->getbyte (ld->ptr))
- #define B ((unsigned long) GETBYTE())
- #define SYNTAX(x) rl78->syntax = x
- #define UNSUPPORTED() \
- rl78->syntax = "*unknown*"
- #define RB(x) ((x)+RL78_Reg_X)
- #define RW(x) ((x)+RL78_Reg_AX)
- #define Fz rl78->flags = RL78_PSW_Z
- #define Fza rl78->flags = RL78_PSW_Z | RL78_PSW_AC
- #define Fzc rl78->flags = RL78_PSW_Z | RL78_PSW_CY
- #define Fzac rl78->flags = RL78_PSW_Z | RL78_PSW_AC | RL78_PSW_CY
- #define Fa rl78->flags = RL78_PSW_AC
- #define Fc rl78->flags = RL78_PSW_CY
- #define Fac rl78->flags = RL78_PSW_AC | RL78_PSW_CY
- #define IMMU(bytes) immediate (bytes, 0, ld)
- #define IMMS(bytes) immediate (bytes, 1, ld)
- static int
- immediate (int bytes, int sign_extend, LocalData * ld)
- {
- unsigned long i = 0;
- switch (bytes)
- {
- case 1:
- i |= B;
- if (sign_extend && (i & 0x80))
- i -= 0x100;
- break;
- case 2:
- i |= B;
- i |= B << 8;
- if (sign_extend && (i & 0x8000))
- i -= 0x10000;
- break;
- case 3:
- i |= B;
- i |= B << 8;
- i |= B << 16;
- if (sign_extend && (i & 0x800000))
- i -= 0x1000000;
- break;
- default:
- fprintf (stderr, "Programmer error: immediate() called with invalid byte count %d\n", bytes);
- abort();
- }
- return i;
- }
- #define DC(c) OP (0, RL78_Operand_Immediate, 0, c)
- #define DR(r) OP (0, RL78_Operand_Register, RL78_Reg_##r, 0)
- #define DRB(r) OP (0, RL78_Operand_Register, RB(r), 0)
- #define DRW(r) OP (0, RL78_Operand_Register, RW(r), 0)
- #define DM(r,a) OP (0, RL78_Operand_Indirect, RL78_Reg_##r, a)
- #define DM2(r1,r2,a) OPX (0, RL78_Operand_Indirect, RL78_Reg_##r1, RL78_Reg_##r2, a)
- #define DE() rl78->op[0].use_es = 1
- #define DB(b) set_bit (rl78->op, b)
- #define DCY() DR(PSW); DB(0)
- #define DPUSH() OP (0, RL78_Operand_PreDec, RL78_Reg_SP, 0);
- #define SC(c) OP (1, RL78_Operand_Immediate, 0, c)
- #define SR(r) OP (1, RL78_Operand_Register, RL78_Reg_##r, 0)
- #define SRB(r) OP (1, RL78_Operand_Register, RB(r), 0)
- #define SRW(r) OP (1, RL78_Operand_Register, RW(r), 0)
- #define SM(r,a) OP (1, RL78_Operand_Indirect, RL78_Reg_##r, a)
- #define SM2(r1,r2,a) OPX (1, RL78_Operand_Indirect, RL78_Reg_##r1, RL78_Reg_##r2, a)
- #define SE() rl78->op[1].use_es = 1
- #define SB(b) set_bit (rl78->op+1, b)
- #define SCY() SR(PSW); SB(0)
- #define COND(c) rl78->op[1].condition = RL78_Condition_##c
- #define SPOP() OP (1, RL78_Operand_PostInc, RL78_Reg_SP, 0);
- static void
- set_bit (RL78_Opcode_Operand *op, int bit)
- {
- op->bit_number = bit;
- switch (op->type) {
- case RL78_Operand_Register:
- op->type = RL78_Operand_Bit;
- break;
- case RL78_Operand_Indirect:
- op->type = RL78_Operand_BitIndirect;
- break;
- default:
- break;
- }
- }
- static int
- saddr (int x)
- {
- if (x < 0x20)
- return 0xfff00 + x;
- return 0xffe00 + x;
- }
- static int
- sfr (int x)
- {
- return 0xfff00 + x;
- }
- #define SADDR saddr (IMMU (1))
- #define SFR sfr (IMMU (1))
- int
- rl78_decode_opcode (unsigned long pc AU,
- RL78_Opcode_Decoded * rl78,
- int (* getbyte)(void *),
- void * ptr,
- RL78_Dis_Isa isa)
- {
- LocalData lds, * ld = &lds;
- unsigned char op_buf[20] = {0};
- unsigned char *op = op_buf;
- int op0, op1;
- lds.rl78 = rl78;
- lds.getbyte = getbyte;
- lds.ptr = ptr;
- lds.op = op;
- memset (rl78, 0, sizeof (*rl78));
- start_again:
- /* Byte registers, not including A. */
- /* Word registers, not including AX. */
- /*----------------------------------------------------------------------*/
- /* ES: prefix */
- GETBYTE ();
- switch (op[0] & 0xff)
- {
- case 0x00:
- {
- /** 0000 0000 nop */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 0000 nop */",
- op[0]);
- }
- SYNTAX("nop");
- #line 912 "rl78-decode.opc"
- ID(nop);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x01:
- case 0x03:
- case 0x05:
- case 0x07:
- {
- /** 0000 0rw1 addw %0, %1 */
- #line 274 "rl78-decode.opc"
- int rw AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 0rw1 addw %0, %1 */",
- op[0]);
- printf (" rw = 0x%x\n", rw);
- }
- SYNTAX("addw %0, %1");
- #line 274 "rl78-decode.opc"
- ID(add); W(); DR(AX); SRW(rw); Fzac;
- }
- break;
- case 0x02:
- {
- /** 0000 0010 addw %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 0010 addw %0, %e!1 */",
- op[0]);
- }
- SYNTAX("addw %0, %e!1");
- #line 265 "rl78-decode.opc"
- ID(add); W(); DR(AX); SM(None, IMMU(2)); Fzac;
- }
- break;
- case 0x04:
- {
- /** 0000 0100 addw %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 0100 addw %0, #%1 */",
- op[0]);
- }
- SYNTAX("addw %0, #%1");
- #line 271 "rl78-decode.opc"
- ID(add); W(); DR(AX); SC(IMMU(2)); Fzac;
- }
- break;
- case 0x06:
- {
- /** 0000 0110 addw %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 0110 addw %0, %1 */",
- op[0]);
- }
- SYNTAX("addw %0, %1");
- #line 277 "rl78-decode.opc"
- ID(add); W(); DR(AX); SM(None, SADDR); Fzac;
- }
- break;
- case 0x08:
- {
- /** 0000 1000 xch a, x */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 1000 xch a, x */",
- op[0]);
- }
- SYNTAX("xch a, x");
- #line 1235 "rl78-decode.opc"
- ID(xch); DR(A); SR(X);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x09:
- {
- /** 0000 1001 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 1001 mov %0, %e1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e1");
- #line 678 "rl78-decode.opc"
- ID(mov); DR(A); SM(B, IMMU(2));
- }
- break;
- case 0x0a:
- {
- /** 0000 1010 add %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 1010 add %0, #%1 */",
- op[0]);
- }
- SYNTAX("add %0, #%1");
- #line 228 "rl78-decode.opc"
- ID(add); DM(None, SADDR); SC(IMMU(1)); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x0b:
- {
- /** 0000 1011 add %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 1011 add %0, %1 */",
- op[0]);
- }
- SYNTAX("add %0, %1");
- #line 222 "rl78-decode.opc"
- ID(add); DR(A); SM(None, SADDR); Fzac;
- }
- break;
- case 0x0c:
- {
- /** 0000 1100 add %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 1100 add %0, #%1 */",
- op[0]);
- }
- SYNTAX("add %0, #%1");
- #line 216 "rl78-decode.opc"
- ID(add); DR(A); SC(IMMU(1)); Fzac;
- }
- break;
- case 0x0d:
- {
- /** 0000 1101 add %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 1101 add %0, %e1 */",
- op[0]);
- }
- SYNTAX("add %0, %e1");
- #line 204 "rl78-decode.opc"
- ID(add); DR(A); SM(HL, 0); Fzac;
- }
- break;
- case 0x0e:
- {
- /** 0000 1110 add %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 1110 add %0, %ea1 */",
- op[0]);
- }
- SYNTAX("add %0, %ea1");
- #line 210 "rl78-decode.opc"
- ID(add); DR(A); SM(HL, IMMU(1)); Fzac;
- }
- break;
- case 0x0f:
- {
- /** 0000 1111 add %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0000 1111 add %0, %e!1 */",
- op[0]);
- }
- SYNTAX("add %0, %e!1");
- #line 201 "rl78-decode.opc"
- ID(add); DR(A); SM(None, IMMU(2)); Fzac;
- }
- break;
- case 0x10:
- {
- /** 0001 0000 addw %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 0000 addw %0, #%1 */",
- op[0]);
- }
- SYNTAX("addw %0, #%1");
- #line 280 "rl78-decode.opc"
- ID(add); W(); DR(SP); SC(IMMU(1)); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x11:
- {
- /** 0001 0001 es: */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 0001 es: */",
- op[0]);
- }
- SYNTAX("es:");
- #line 193 "rl78-decode.opc"
- DE(); SE();
- op ++;
- pc ++;
- goto start_again;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x12:
- case 0x14:
- case 0x16:
- {
- /** 0001 0ra0 movw %0, %1 */
- #line 859 "rl78-decode.opc"
- int ra AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 0ra0 movw %0, %1 */",
- op[0]);
- printf (" ra = 0x%x\n", ra);
- }
- SYNTAX("movw %0, %1");
- #line 859 "rl78-decode.opc"
- ID(mov); W(); DRW(ra); SR(AX);
- }
- break;
- case 0x13:
- case 0x15:
- case 0x17:
- {
- /** 0001 0ra1 movw %0, %1 */
- #line 856 "rl78-decode.opc"
- int ra AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 0ra1 movw %0, %1 */",
- op[0]);
- printf (" ra = 0x%x\n", ra);
- }
- SYNTAX("movw %0, %1");
- #line 856 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SRW(ra);
- }
- break;
- case 0x18:
- {
- /** 0001 1000 mov %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 1000 mov %e0, %1 */",
- op[0]);
- }
- SYNTAX("mov %e0, %1");
- #line 729 "rl78-decode.opc"
- ID(mov); DM(B, IMMU(2)); SR(A);
- }
- break;
- case 0x19:
- {
- /** 0001 1001 mov %e0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 1001 mov %e0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %e0, #%1");
- #line 726 "rl78-decode.opc"
- ID(mov); DM(B, IMMU(2)); SC(IMMU(1));
- }
- break;
- case 0x1a:
- {
- /** 0001 1010 addc %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 1010 addc %0, #%1 */",
- op[0]);
- }
- SYNTAX("addc %0, #%1");
- #line 260 "rl78-decode.opc"
- ID(addc); DM(None, SADDR); SC(IMMU(1)); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x1b:
- {
- /** 0001 1011 addc %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 1011 addc %0, %1 */",
- op[0]);
- }
- SYNTAX("addc %0, %1");
- #line 257 "rl78-decode.opc"
- ID(addc); DR(A); SM(None, SADDR); Fzac;
- }
- break;
- case 0x1c:
- {
- /** 0001 1100 addc %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 1100 addc %0, #%1 */",
- op[0]);
- }
- SYNTAX("addc %0, #%1");
- #line 248 "rl78-decode.opc"
- ID(addc); DR(A); SC(IMMU(1)); Fzac;
- }
- break;
- case 0x1d:
- {
- /** 0001 1101 addc %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 1101 addc %0, %e1 */",
- op[0]);
- }
- SYNTAX("addc %0, %e1");
- #line 236 "rl78-decode.opc"
- ID(addc); DR(A); SM(HL, 0); Fzac;
- }
- break;
- case 0x1e:
- {
- /** 0001 1110 addc %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 1110 addc %0, %ea1 */",
- op[0]);
- }
- SYNTAX("addc %0, %ea1");
- #line 245 "rl78-decode.opc"
- ID(addc); DR(A); SM(HL, IMMU(1)); Fzac;
- }
- break;
- case 0x1f:
- {
- /** 0001 1111 addc %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0001 1111 addc %0, %e!1 */",
- op[0]);
- }
- SYNTAX("addc %0, %e!1");
- #line 233 "rl78-decode.opc"
- ID(addc); DR(A); SM(None, IMMU(2)); Fzac;
- }
- break;
- case 0x20:
- {
- /** 0010 0000 subw %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 0000 subw %0, #%1 */",
- op[0]);
- }
- SYNTAX("subw %0, #%1");
- #line 1199 "rl78-decode.opc"
- ID(sub); W(); DR(SP); SC(IMMU(1)); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x21:
- case 0x23:
- case 0x25:
- case 0x27:
- {
- /** 0010 0rw1 subw %0, %1 */
- #line 1193 "rl78-decode.opc"
- int rw AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 0rw1 subw %0, %1 */",
- op[0]);
- printf (" rw = 0x%x\n", rw);
- }
- SYNTAX("subw %0, %1");
- #line 1193 "rl78-decode.opc"
- ID(sub); W(); DR(AX); SRW(rw); Fzac;
- }
- break;
- case 0x22:
- {
- /** 0010 0010 subw %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 0010 subw %0, %e!1 */",
- op[0]);
- }
- SYNTAX("subw %0, %e!1");
- #line 1184 "rl78-decode.opc"
- ID(sub); W(); DR(AX); SM(None, IMMU(2)); Fzac;
- }
- break;
- case 0x24:
- {
- /** 0010 0100 subw %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 0100 subw %0, #%1 */",
- op[0]);
- }
- SYNTAX("subw %0, #%1");
- #line 1190 "rl78-decode.opc"
- ID(sub); W(); DR(AX); SC(IMMU(2)); Fzac;
- }
- break;
- case 0x26:
- {
- /** 0010 0110 subw %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 0110 subw %0, %1 */",
- op[0]);
- }
- SYNTAX("subw %0, %1");
- #line 1196 "rl78-decode.opc"
- ID(sub); W(); DR(AX); SM(None, SADDR); Fzac;
- }
- break;
- case 0x28:
- {
- /** 0010 1000 mov %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 1000 mov %e0, %1 */",
- op[0]);
- }
- SYNTAX("mov %e0, %1");
- #line 741 "rl78-decode.opc"
- ID(mov); DM(C, IMMU(2)); SR(A);
- }
- break;
- case 0x29:
- {
- /** 0010 1001 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 1001 mov %0, %e1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e1");
- #line 684 "rl78-decode.opc"
- ID(mov); DR(A); SM(C, IMMU(2));
- }
- break;
- case 0x2a:
- {
- /** 0010 1010 sub %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 1010 sub %0, #%1 */",
- op[0]);
- }
- SYNTAX("sub %0, #%1");
- #line 1147 "rl78-decode.opc"
- ID(sub); DM(None, SADDR); SC(IMMU(1)); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x2b:
- {
- /** 0010 1011 sub %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 1011 sub %0, %1 */",
- op[0]);
- }
- SYNTAX("sub %0, %1");
- #line 1141 "rl78-decode.opc"
- ID(sub); DR(A); SM(None, SADDR); Fzac;
- }
- break;
- case 0x2c:
- {
- /** 0010 1100 sub %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 1100 sub %0, #%1 */",
- op[0]);
- }
- SYNTAX("sub %0, #%1");
- #line 1135 "rl78-decode.opc"
- ID(sub); DR(A); SC(IMMU(1)); Fzac;
- }
- break;
- case 0x2d:
- {
- /** 0010 1101 sub %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 1101 sub %0, %e1 */",
- op[0]);
- }
- SYNTAX("sub %0, %e1");
- #line 1123 "rl78-decode.opc"
- ID(sub); DR(A); SM(HL, 0); Fzac;
- }
- break;
- case 0x2e:
- {
- /** 0010 1110 sub %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 1110 sub %0, %ea1 */",
- op[0]);
- }
- SYNTAX("sub %0, %ea1");
- #line 1129 "rl78-decode.opc"
- ID(sub); DR(A); SM(HL, IMMU(1)); Fzac;
- }
- break;
- case 0x2f:
- {
- /** 0010 1111 sub %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0010 1111 sub %0, %e!1 */",
- op[0]);
- }
- SYNTAX("sub %0, %e!1");
- #line 1120 "rl78-decode.opc"
- ID(sub); DR(A); SM(None, IMMU(2)); Fzac;
- }
- break;
- case 0x30:
- case 0x32:
- case 0x34:
- case 0x36:
- {
- /** 0011 0rg0 movw %0, #%1 */
- #line 853 "rl78-decode.opc"
- int rg AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 0rg0 movw %0, #%1 */",
- op[0]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("movw %0, #%1");
- #line 853 "rl78-decode.opc"
- ID(mov); W(); DRW(rg); SC(IMMU(2));
- }
- break;
- case 0x31:
- GETBYTE ();
- switch (op[1] & 0x8f)
- {
- case 0x00:
- {
- /** 0011 0001 0bit 0000 btclr %s1, $%a0 */
- #line 416 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0bit 0000 btclr %s1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("btclr %s1, $%a0");
- #line 416 "rl78-decode.opc"
- ID(branch_cond_clear); SM(None, SADDR); SB(bit); DC(pc+IMMS(1)+4); COND(T);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x01:
- {
- /** 0011 0001 0bit 0001 btclr %1, $%a0 */
- #line 410 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0bit 0001 btclr %1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("btclr %1, $%a0");
- #line 410 "rl78-decode.opc"
- ID(branch_cond_clear); DC(pc+IMMS(1)+3); SR(A); SB(bit); COND(T);
- }
- break;
- case 0x02:
- {
- /** 0011 0001 0bit 0010 bt %s1, $%a0 */
- #line 402 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0bit 0010 bt %s1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("bt %s1, $%a0");
- #line 402 "rl78-decode.opc"
- ID(branch_cond); SM(None, SADDR); SB(bit); DC(pc+IMMS(1)+4); COND(T);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x03:
- {
- /** 0011 0001 0bit 0011 bt %1, $%a0 */
- #line 396 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0bit 0011 bt %1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("bt %1, $%a0");
- #line 396 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+3); SR(A); SB(bit); COND(T);
- }
- break;
- case 0x04:
- {
- /** 0011 0001 0bit 0100 bf %s1, $%a0 */
- #line 363 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0bit 0100 bf %s1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("bf %s1, $%a0");
- #line 363 "rl78-decode.opc"
- ID(branch_cond); SM(None, SADDR); SB(bit); DC(pc+IMMS(1)+4); COND(F);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x05:
- {
- /** 0011 0001 0bit 0101 bf %1, $%a0 */
- #line 357 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0bit 0101 bf %1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("bf %1, $%a0");
- #line 357 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+3); SR(A); SB(bit); COND(F);
- }
- break;
- case 0x07:
- {
- /** 0011 0001 0cnt 0111 shl %0, %1 */
- #line 1076 "rl78-decode.opc"
- int cnt AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0cnt 0111 shl %0, %1 */",
- op[0], op[1]);
- printf (" cnt = 0x%x\n", cnt);
- }
- SYNTAX("shl %0, %1");
- #line 1076 "rl78-decode.opc"
- ID(shl); DR(C); SC(cnt);
- }
- break;
- case 0x08:
- {
- /** 0011 0001 0cnt 1000 shl %0, %1 */
- #line 1073 "rl78-decode.opc"
- int cnt AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0cnt 1000 shl %0, %1 */",
- op[0], op[1]);
- printf (" cnt = 0x%x\n", cnt);
- }
- SYNTAX("shl %0, %1");
- #line 1073 "rl78-decode.opc"
- ID(shl); DR(B); SC(cnt);
- }
- break;
- case 0x09:
- {
- /** 0011 0001 0cnt 1001 shl %0, %1 */
- #line 1070 "rl78-decode.opc"
- int cnt AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0cnt 1001 shl %0, %1 */",
- op[0], op[1]);
- printf (" cnt = 0x%x\n", cnt);
- }
- SYNTAX("shl %0, %1");
- #line 1070 "rl78-decode.opc"
- ID(shl); DR(A); SC(cnt);
- }
- break;
- case 0x0a:
- {
- /** 0011 0001 0cnt 1010 shr %0, %1 */
- #line 1087 "rl78-decode.opc"
- int cnt AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0cnt 1010 shr %0, %1 */",
- op[0], op[1]);
- printf (" cnt = 0x%x\n", cnt);
- }
- SYNTAX("shr %0, %1");
- #line 1087 "rl78-decode.opc"
- ID(shr); DR(A); SC(cnt);
- }
- break;
- case 0x0b:
- {
- /** 0011 0001 0cnt 1011 sar %0, %1 */
- #line 1034 "rl78-decode.opc"
- int cnt AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 0cnt 1011 sar %0, %1 */",
- op[0], op[1]);
- printf (" cnt = 0x%x\n", cnt);
- }
- SYNTAX("sar %0, %1");
- #line 1034 "rl78-decode.opc"
- ID(sar); DR(A); SC(cnt);
- }
- break;
- case 0x0c:
- case 0x8c:
- {
- /** 0011 0001 wcnt 1100 shlw %0, %1 */
- #line 1082 "rl78-decode.opc"
- int wcnt AU = (op[1] >> 4) & 0x0f;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 wcnt 1100 shlw %0, %1 */",
- op[0], op[1]);
- printf (" wcnt = 0x%x\n", wcnt);
- }
- SYNTAX("shlw %0, %1");
- #line 1082 "rl78-decode.opc"
- ID(shl); W(); DR(BC); SC(wcnt);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x0d:
- case 0x8d:
- {
- /** 0011 0001 wcnt 1101 shlw %0, %1 */
- #line 1079 "rl78-decode.opc"
- int wcnt AU = (op[1] >> 4) & 0x0f;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 wcnt 1101 shlw %0, %1 */",
- op[0], op[1]);
- printf (" wcnt = 0x%x\n", wcnt);
- }
- SYNTAX("shlw %0, %1");
- #line 1079 "rl78-decode.opc"
- ID(shl); W(); DR(AX); SC(wcnt);
- }
- break;
- case 0x0e:
- case 0x8e:
- {
- /** 0011 0001 wcnt 1110 shrw %0, %1 */
- #line 1090 "rl78-decode.opc"
- int wcnt AU = (op[1] >> 4) & 0x0f;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 wcnt 1110 shrw %0, %1 */",
- op[0], op[1]);
- printf (" wcnt = 0x%x\n", wcnt);
- }
- SYNTAX("shrw %0, %1");
- #line 1090 "rl78-decode.opc"
- ID(shr); W(); DR(AX); SC(wcnt);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x0f:
- case 0x8f:
- {
- /** 0011 0001 wcnt 1111 sarw %0, %1 */
- #line 1037 "rl78-decode.opc"
- int wcnt AU = (op[1] >> 4) & 0x0f;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 wcnt 1111 sarw %0, %1 */",
- op[0], op[1]);
- printf (" wcnt = 0x%x\n", wcnt);
- }
- SYNTAX("sarw %0, %1");
- #line 1037 "rl78-decode.opc"
- ID(sar); W(); DR(AX); SC(wcnt);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x80:
- {
- /** 0011 0001 1bit 0000 btclr %s1, $%a0 */
- #line 413 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 1bit 0000 btclr %s1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("btclr %s1, $%a0");
- #line 413 "rl78-decode.opc"
- ID(branch_cond_clear); SM(None, SFR); SB(bit); DC(pc+IMMS(1)+4); COND(T);
- }
- break;
- case 0x81:
- {
- /** 0011 0001 1bit 0001 btclr %e1, $%a0 */
- #line 407 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 1bit 0001 btclr %e1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("btclr %e1, $%a0");
- #line 407 "rl78-decode.opc"
- ID(branch_cond_clear); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(T);
- }
- break;
- case 0x82:
- {
- /** 0011 0001 1bit 0010 bt %s1, $%a0 */
- #line 399 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 1bit 0010 bt %s1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("bt %s1, $%a0");
- #line 399 "rl78-decode.opc"
- ID(branch_cond); SM(None, SFR); SB(bit); DC(pc+IMMS(1)+4); COND(T);
- }
- break;
- case 0x83:
- {
- /** 0011 0001 1bit 0011 bt %e1, $%a0 */
- #line 393 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 1bit 0011 bt %e1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("bt %e1, $%a0");
- #line 393 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(T);
- }
- break;
- case 0x84:
- {
- /** 0011 0001 1bit 0100 bf %s1, $%a0 */
- #line 360 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 1bit 0100 bf %s1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("bf %s1, $%a0");
- #line 360 "rl78-decode.opc"
- ID(branch_cond); SM(None, SFR); SB(bit); DC(pc+IMMS(1)+4); COND(F);
- }
- break;
- case 0x85:
- {
- /** 0011 0001 1bit 0101 bf %e1, $%a0 */
- #line 354 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0011 0001 1bit 0101 bf %e1, $%a0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("bf %e1, $%a0");
- #line 354 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(F);
- }
- break;
- default: UNSUPPORTED(); break;
- }
- break;
- case 0x33:
- case 0x35:
- case 0x37:
- {
- /** 0011 0ra1 xchw %0, %1 */
- #line 1240 "rl78-decode.opc"
- int ra AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 0ra1 xchw %0, %1 */",
- op[0]);
- printf (" ra = 0x%x\n", ra);
- }
- SYNTAX("xchw %0, %1");
- #line 1240 "rl78-decode.opc"
- ID(xch); W(); DR(AX); SRW(ra);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x38:
- {
- /** 0011 1000 mov %e0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 1000 mov %e0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %e0, #%1");
- #line 738 "rl78-decode.opc"
- ID(mov); DM(C, IMMU(2)); SC(IMMU(1));
- }
- break;
- case 0x39:
- {
- /** 0011 1001 mov %e0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 1001 mov %e0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %e0, #%1");
- #line 732 "rl78-decode.opc"
- ID(mov); DM(BC, IMMU(2)); SC(IMMU(1));
- }
- break;
- case 0x3a:
- {
- /** 0011 1010 subc %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 1010 subc %0, #%1 */",
- op[0]);
- }
- SYNTAX("subc %0, #%1");
- #line 1179 "rl78-decode.opc"
- ID(subc); DM(None, SADDR); SC(IMMU(1)); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x3b:
- {
- /** 0011 1011 subc %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 1011 subc %0, %1 */",
- op[0]);
- }
- SYNTAX("subc %0, %1");
- #line 1176 "rl78-decode.opc"
- ID(subc); DR(A); SM(None, SADDR); Fzac;
- }
- break;
- case 0x3c:
- {
- /** 0011 1100 subc %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 1100 subc %0, #%1 */",
- op[0]);
- }
- SYNTAX("subc %0, #%1");
- #line 1167 "rl78-decode.opc"
- ID(subc); DR(A); SC(IMMU(1)); Fzac;
- }
- break;
- case 0x3d:
- {
- /** 0011 1101 subc %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 1101 subc %0, %e1 */",
- op[0]);
- }
- SYNTAX("subc %0, %e1");
- #line 1155 "rl78-decode.opc"
- ID(subc); DR(A); SM(HL, 0); Fzac;
- }
- break;
- case 0x3e:
- {
- /** 0011 1110 subc %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 1110 subc %0, %ea1 */",
- op[0]);
- }
- SYNTAX("subc %0, %ea1");
- #line 1164 "rl78-decode.opc"
- ID(subc); DR(A); SM(HL, IMMU(1)); Fzac;
- }
- break;
- case 0x3f:
- {
- /** 0011 1111 subc %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0011 1111 subc %0, %e!1 */",
- op[0]);
- }
- SYNTAX("subc %0, %e!1");
- #line 1152 "rl78-decode.opc"
- ID(subc); DR(A); SM(None, IMMU(2)); Fzac;
- }
- break;
- case 0x40:
- {
- /** 0100 0000 cmp %e!0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 0000 cmp %e!0, #%1 */",
- op[0]);
- }
- SYNTAX("cmp %e!0, #%1");
- #line 480 "rl78-decode.opc"
- ID(cmp); DM(None, IMMU(2)); SC(IMMU(1)); Fzac;
- }
- break;
- case 0x41:
- {
- /** 0100 0001 mov %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 0001 mov %0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %0, #%1");
- #line 717 "rl78-decode.opc"
- ID(mov); DR(ES); SC(IMMU(1));
- }
- break;
- case 0x42:
- {
- /** 0100 0010 cmpw %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 0010 cmpw %0, %e!1 */",
- op[0]);
- }
- SYNTAX("cmpw %0, %e!1");
- #line 531 "rl78-decode.opc"
- ID(cmp); W(); DR(AX); SM(None, IMMU(2)); Fzac;
- }
- break;
- case 0x43:
- case 0x45:
- case 0x47:
- {
- /** 0100 0ra1 cmpw %0, %1 */
- #line 540 "rl78-decode.opc"
- int ra AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 0ra1 cmpw %0, %1 */",
- op[0]);
- printf (" ra = 0x%x\n", ra);
- }
- SYNTAX("cmpw %0, %1");
- #line 540 "rl78-decode.opc"
- ID(cmp); W(); DR(AX); SRW(ra); Fzac;
- }
- break;
- case 0x44:
- {
- /** 0100 0100 cmpw %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 0100 cmpw %0, #%1 */",
- op[0]);
- }
- SYNTAX("cmpw %0, #%1");
- #line 537 "rl78-decode.opc"
- ID(cmp); W(); DR(AX); SC(IMMU(2)); Fzac;
- }
- break;
- case 0x46:
- {
- /** 0100 0110 cmpw %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 0110 cmpw %0, %1 */",
- op[0]);
- }
- SYNTAX("cmpw %0, %1");
- #line 543 "rl78-decode.opc"
- ID(cmp); W(); DR(AX); SM(None, SADDR); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x48:
- {
- /** 0100 1000 mov %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 1000 mov %e0, %1 */",
- op[0]);
- }
- SYNTAX("mov %e0, %1");
- #line 735 "rl78-decode.opc"
- ID(mov); DM(BC, IMMU(2)); SR(A);
- }
- break;
- case 0x49:
- {
- /** 0100 1001 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 1001 mov %0, %e1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e1");
- #line 681 "rl78-decode.opc"
- ID(mov); DR(A); SM(BC, IMMU(2));
- }
- break;
- case 0x4a:
- {
- /** 0100 1010 cmp %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 1010 cmp %0, #%1 */",
- op[0]);
- }
- SYNTAX("cmp %0, #%1");
- #line 483 "rl78-decode.opc"
- ID(cmp); DM(None, SADDR); SC(IMMU(1)); Fzac;
- }
- break;
- case 0x4b:
- {
- /** 0100 1011 cmp %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 1011 cmp %0, %1 */",
- op[0]);
- }
- SYNTAX("cmp %0, %1");
- #line 510 "rl78-decode.opc"
- ID(cmp); DR(A); SM(None, SADDR); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x4c:
- {
- /** 0100 1100 cmp %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 1100 cmp %0, #%1 */",
- op[0]);
- }
- SYNTAX("cmp %0, #%1");
- #line 501 "rl78-decode.opc"
- ID(cmp); DR(A); SC(IMMU(1)); Fzac;
- }
- break;
- case 0x4d:
- {
- /** 0100 1101 cmp %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 1101 cmp %0, %e1 */",
- op[0]);
- }
- SYNTAX("cmp %0, %e1");
- #line 489 "rl78-decode.opc"
- ID(cmp); DR(A); SM(HL, 0); Fzac;
- }
- break;
- case 0x4e:
- {
- /** 0100 1110 cmp %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 1110 cmp %0, %ea1 */",
- op[0]);
- }
- SYNTAX("cmp %0, %ea1");
- #line 498 "rl78-decode.opc"
- ID(cmp); DR(A); SM(HL, IMMU(1)); Fzac;
- }
- break;
- case 0x4f:
- {
- /** 0100 1111 cmp %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0100 1111 cmp %0, %e!1 */",
- op[0]);
- }
- SYNTAX("cmp %0, %e!1");
- #line 486 "rl78-decode.opc"
- ID(cmp); DR(A); SM(None, IMMU(2)); Fzac;
- }
- break;
- case 0x50:
- case 0x51:
- case 0x52:
- case 0x53:
- case 0x54:
- case 0x55:
- case 0x56:
- case 0x57:
- {
- /** 0101 0reg mov %0, #%1 */
- #line 669 "rl78-decode.opc"
- int reg AU = op[0] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 0reg mov %0, #%1 */",
- op[0]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("mov %0, #%1");
- #line 669 "rl78-decode.opc"
- ID(mov); DRB(reg); SC(IMMU(1));
- }
- break;
- case 0x58:
- {
- /** 0101 1000 movw %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 1000 movw %e0, %1 */",
- op[0]);
- }
- SYNTAX("movw %e0, %1");
- #line 871 "rl78-decode.opc"
- ID(mov); W(); DM(B, IMMU(2)); SR(AX);
- }
- break;
- case 0x59:
- {
- /** 0101 1001 movw %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 1001 movw %0, %e1 */",
- op[0]);
- }
- SYNTAX("movw %0, %e1");
- #line 862 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(B, IMMU(2));
- }
- break;
- case 0x5a:
- {
- /** 0101 1010 and %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 1010 and %0, #%1 */",
- op[0]);
- }
- SYNTAX("and %0, #%1");
- #line 312 "rl78-decode.opc"
- ID(and); DM(None, SADDR); SC(IMMU(1)); Fz;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x5b:
- {
- /** 0101 1011 and %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 1011 and %0, %1 */",
- op[0]);
- }
- SYNTAX("and %0, %1");
- #line 309 "rl78-decode.opc"
- ID(and); DR(A); SM(None, SADDR); Fz;
- }
- break;
- case 0x5c:
- {
- /** 0101 1100 and %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 1100 and %0, #%1 */",
- op[0]);
- }
- SYNTAX("and %0, #%1");
- #line 300 "rl78-decode.opc"
- ID(and); DR(A); SC(IMMU(1)); Fz;
- }
- break;
- case 0x5d:
- {
- /** 0101 1101 and %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 1101 and %0, %e1 */",
- op[0]);
- }
- SYNTAX("and %0, %e1");
- #line 288 "rl78-decode.opc"
- ID(and); DR(A); SM(HL, 0); Fz;
- }
- break;
- case 0x5e:
- {
- /** 0101 1110 and %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 1110 and %0, %ea1 */",
- op[0]);
- }
- SYNTAX("and %0, %ea1");
- #line 294 "rl78-decode.opc"
- ID(and); DR(A); SM(HL, IMMU(1)); Fz;
- }
- break;
- case 0x5f:
- {
- /** 0101 1111 and %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0101 1111 and %0, %e!1 */",
- op[0]);
- }
- SYNTAX("and %0, %e!1");
- #line 285 "rl78-decode.opc"
- ID(and); DR(A); SM(None, IMMU(2)); Fz;
- }
- break;
- case 0x60:
- case 0x62:
- case 0x63:
- case 0x64:
- case 0x65:
- case 0x66:
- case 0x67:
- {
- /** 0110 0rba mov %0, %1 */
- #line 672 "rl78-decode.opc"
- int rba AU = op[0] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 0rba mov %0, %1 */",
- op[0]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("mov %0, %1");
- #line 672 "rl78-decode.opc"
- ID(mov); DR(A); SRB(rba);
- }
- break;
- case 0x61:
- GETBYTE ();
- switch (op[1] & 0xff)
- {
- case 0x00:
- case 0x01:
- case 0x02:
- case 0x03:
- case 0x04:
- case 0x05:
- case 0x06:
- case 0x07:
- {
- /** 0110 0001 0000 0reg add %0, %1 */
- #line 225 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0000 0reg add %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("add %0, %1");
- #line 225 "rl78-decode.opc"
- ID(add); DRB(reg); SR(A); Fzac;
- }
- break;
- case 0x08:
- case 0x0a:
- case 0x0b:
- case 0x0c:
- case 0x0d:
- case 0x0e:
- case 0x0f:
- {
- /** 0110 0001 0000 1rba add %0, %1 */
- #line 219 "rl78-decode.opc"
- int rba AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0000 1rba add %0, %1 */",
- op[0], op[1]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("add %0, %1");
- #line 219 "rl78-decode.opc"
- ID(add); DR(A); SRB(rba); Fzac;
- }
- break;
- case 0x09:
- {
- /** 0110 0001 0000 1001 addw %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0000 1001 addw %0, %ea1 */",
- op[0], op[1]);
- }
- SYNTAX("addw %0, %ea1");
- #line 268 "rl78-decode.opc"
- ID(add); W(); DR(AX); SM(HL, IMMU(1)); Fzac;
- }
- break;
- case 0x10:
- case 0x11:
- case 0x12:
- case 0x13:
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17:
- {
- /** 0110 0001 0001 0reg addc %0, %1 */
- #line 254 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0001 0reg addc %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("addc %0, %1");
- #line 254 "rl78-decode.opc"
- ID(addc); DRB(reg); SR(A); Fzac;
- }
- break;
- case 0x18:
- case 0x1a:
- case 0x1b:
- case 0x1c:
- case 0x1d:
- case 0x1e:
- case 0x1f:
- {
- /** 0110 0001 0001 1rba addc %0, %1 */
- #line 251 "rl78-decode.opc"
- int rba AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0001 1rba addc %0, %1 */",
- op[0], op[1]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("addc %0, %1");
- #line 251 "rl78-decode.opc"
- ID(addc); DR(A); SRB(rba); Fzac;
- }
- break;
- case 0x20:
- case 0x21:
- case 0x22:
- case 0x23:
- case 0x24:
- case 0x25:
- case 0x26:
- case 0x27:
- {
- /** 0110 0001 0010 0reg sub %0, %1 */
- #line 1144 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0010 0reg sub %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("sub %0, %1");
- #line 1144 "rl78-decode.opc"
- ID(sub); DRB(reg); SR(A); Fzac;
- }
- break;
- case 0x28:
- case 0x2a:
- case 0x2b:
- case 0x2c:
- case 0x2d:
- case 0x2e:
- case 0x2f:
- {
- /** 0110 0001 0010 1rba sub %0, %1 */
- #line 1138 "rl78-decode.opc"
- int rba AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0010 1rba sub %0, %1 */",
- op[0], op[1]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("sub %0, %1");
- #line 1138 "rl78-decode.opc"
- ID(sub); DR(A); SRB(rba); Fzac;
- }
- break;
- case 0x29:
- {
- /** 0110 0001 0010 1001 subw %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0010 1001 subw %0, %ea1 */",
- op[0], op[1]);
- }
- SYNTAX("subw %0, %ea1");
- #line 1187 "rl78-decode.opc"
- ID(sub); W(); DR(AX); SM(HL, IMMU(1)); Fzac;
- }
- break;
- case 0x30:
- case 0x31:
- case 0x32:
- case 0x33:
- case 0x34:
- case 0x35:
- case 0x36:
- case 0x37:
- {
- /** 0110 0001 0011 0reg subc %0, %1 */
- #line 1173 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0011 0reg subc %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("subc %0, %1");
- #line 1173 "rl78-decode.opc"
- ID(subc); DRB(reg); SR(A); Fzac;
- }
- break;
- case 0x38:
- case 0x3a:
- case 0x3b:
- case 0x3c:
- case 0x3d:
- case 0x3e:
- case 0x3f:
- {
- /** 0110 0001 0011 1rba subc %0, %1 */
- #line 1170 "rl78-decode.opc"
- int rba AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0011 1rba subc %0, %1 */",
- op[0], op[1]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("subc %0, %1");
- #line 1170 "rl78-decode.opc"
- ID(subc); DR(A); SRB(rba); Fzac;
- }
- break;
- case 0x40:
- case 0x41:
- case 0x42:
- case 0x43:
- case 0x44:
- case 0x45:
- case 0x46:
- case 0x47:
- {
- /** 0110 0001 0100 0reg cmp %0, %1 */
- #line 507 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0100 0reg cmp %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("cmp %0, %1");
- #line 507 "rl78-decode.opc"
- ID(cmp); DRB(reg); SR(A); Fzac;
- }
- break;
- case 0x48:
- case 0x4a:
- case 0x4b:
- case 0x4c:
- case 0x4d:
- case 0x4e:
- case 0x4f:
- {
- /** 0110 0001 0100 1rba cmp %0, %1 */
- #line 504 "rl78-decode.opc"
- int rba AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0100 1rba cmp %0, %1 */",
- op[0], op[1]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("cmp %0, %1");
- #line 504 "rl78-decode.opc"
- ID(cmp); DR(A); SRB(rba); Fzac;
- }
- break;
- case 0x49:
- {
- /** 0110 0001 0100 1001 cmpw %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0100 1001 cmpw %0, %ea1 */",
- op[0], op[1]);
- }
- SYNTAX("cmpw %0, %ea1");
- #line 534 "rl78-decode.opc"
- ID(cmp); W(); DR(AX); SM(HL, IMMU(1)); Fzac;
- }
- break;
- case 0x50:
- case 0x51:
- case 0x52:
- case 0x53:
- case 0x54:
- case 0x55:
- case 0x56:
- case 0x57:
- {
- /** 0110 0001 0101 0reg and %0, %1 */
- #line 306 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0101 0reg and %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("and %0, %1");
- #line 306 "rl78-decode.opc"
- ID(and); DRB(reg); SR(A); Fz;
- }
- break;
- case 0x58:
- case 0x5a:
- case 0x5b:
- case 0x5c:
- case 0x5d:
- case 0x5e:
- case 0x5f:
- {
- /** 0110 0001 0101 1rba and %0, %1 */
- #line 303 "rl78-decode.opc"
- int rba AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0101 1rba and %0, %1 */",
- op[0], op[1]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("and %0, %1");
- #line 303 "rl78-decode.opc"
- ID(and); DR(A); SRB(rba); Fz;
- }
- break;
- case 0x59:
- {
- /** 0110 0001 0101 1001 inc %ea0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0101 1001 inc %ea0 */",
- op[0], op[1]);
- }
- SYNTAX("inc %ea0");
- #line 584 "rl78-decode.opc"
- ID(add); DM(HL, IMMU(1)); SC(1); Fza;
- }
- break;
- case 0x60:
- case 0x61:
- case 0x62:
- case 0x63:
- case 0x64:
- case 0x65:
- case 0x66:
- case 0x67:
- {
- /** 0110 0001 0110 0reg or %0, %1 */
- #line 962 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0110 0reg or %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("or %0, %1");
- #line 962 "rl78-decode.opc"
- ID(or); DRB(reg); SR(A); Fz;
- }
- break;
- case 0x68:
- case 0x6a:
- case 0x6b:
- case 0x6c:
- case 0x6d:
- case 0x6e:
- case 0x6f:
- {
- /** 0110 0001 0110 1rba or %0, %1 */
- #line 959 "rl78-decode.opc"
- int rba AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0110 1rba or %0, %1 */",
- op[0], op[1]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("or %0, %1");
- #line 959 "rl78-decode.opc"
- ID(or); DR(A); SRB(rba); Fz;
- }
- break;
- case 0x69:
- {
- /** 0110 0001 0110 1001 dec %ea0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0110 1001 dec %ea0 */",
- op[0], op[1]);
- }
- SYNTAX("dec %ea0");
- #line 551 "rl78-decode.opc"
- ID(sub); DM(HL, IMMU(1)); SC(1); Fza;
- }
- break;
- case 0x70:
- case 0x71:
- case 0x72:
- case 0x73:
- case 0x74:
- case 0x75:
- case 0x76:
- case 0x77:
- {
- /** 0110 0001 0111 0reg xor %0, %1 */
- #line 1266 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0111 0reg xor %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("xor %0, %1");
- #line 1266 "rl78-decode.opc"
- ID(xor); DRB(reg); SR(A); Fz;
- }
- break;
- case 0x78:
- case 0x7a:
- case 0x7b:
- case 0x7c:
- case 0x7d:
- case 0x7e:
- case 0x7f:
- {
- /** 0110 0001 0111 1rba xor %0, %1 */
- #line 1263 "rl78-decode.opc"
- int rba AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0111 1rba xor %0, %1 */",
- op[0], op[1]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("xor %0, %1");
- #line 1263 "rl78-decode.opc"
- ID(xor); DR(A); SRB(rba); Fz;
- }
- break;
- case 0x79:
- {
- /** 0110 0001 0111 1001 incw %ea0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 0111 1001 incw %ea0 */",
- op[0], op[1]);
- }
- SYNTAX("incw %ea0");
- #line 598 "rl78-decode.opc"
- ID(add); W(); DM(HL, IMMU(1)); SC(1);
- }
- break;
- case 0x80:
- case 0x81:
- {
- /** 0110 0001 1000 000 add %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1000 000 add %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("add %0, %e1");
- #line 207 "rl78-decode.opc"
- ID(add); DR(A); SM2(HL, B, 0); Fzac;
- }
- break;
- case 0x82:
- {
- /** 0110 0001 1000 0010 add %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1000 0010 add %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("add %0, %e1");
- #line 213 "rl78-decode.opc"
- ID(add); DR(A); SM2(HL, C, 0); Fzac;
- }
- break;
- case 0x84:
- case 0x85:
- case 0x86:
- case 0x87:
- case 0x94:
- case 0x95:
- case 0x96:
- case 0x97:
- case 0xa4:
- case 0xa5:
- case 0xa6:
- case 0xa7:
- case 0xb4:
- case 0xb5:
- case 0xb6:
- case 0xb7:
- case 0xc4:
- case 0xc5:
- case 0xc6:
- case 0xc7:
- case 0xd4:
- case 0xd5:
- case 0xd6:
- case 0xd7:
- case 0xe4:
- case 0xe5:
- case 0xe6:
- case 0xe7:
- case 0xf4:
- case 0xf5:
- case 0xf6:
- case 0xf7:
- {
- /** 0110 0001 1nnn 01mm callt [%x0] */
- #line 433 "rl78-decode.opc"
- int nnn AU = (op[1] >> 4) & 0x07;
- #line 433 "rl78-decode.opc"
- int mm AU = op[1] & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1nnn 01mm callt [%x0] */",
- op[0], op[1]);
- printf (" nnn = 0x%x,", nnn);
- printf (" mm = 0x%x\n", mm);
- }
- SYNTAX("callt [%x0]");
- #line 433 "rl78-decode.opc"
- ID(call); DM(None, 0x80 + mm*16 + nnn*2);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x88:
- case 0x8a:
- case 0x8b:
- case 0x8c:
- case 0x8d:
- case 0x8e:
- case 0x8f:
- {
- /** 0110 0001 1000 1reg xch %0, %1 */
- #line 1225 "rl78-decode.opc"
- int reg AU = op[1] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1000 1reg xch %0, %1 */",
- op[0], op[1]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("xch %0, %1");
- #line 1225 "rl78-decode.opc"
- /* Note: DECW uses reg == X, so this must follow DECW */
- ID(xch); DR(A); SRB(reg);
- }
- break;
- case 0x89:
- {
- /** 0110 0001 1000 1001 decw %ea0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1000 1001 decw %ea0 */",
- op[0], op[1]);
- }
- SYNTAX("decw %ea0");
- #line 565 "rl78-decode.opc"
- ID(sub); W(); DM(HL, IMMU(1)); SC(1);
- }
- break;
- case 0x90:
- {
- /** 0110 0001 1001 0000 addc %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1001 0000 addc %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("addc %0, %e1");
- #line 239 "rl78-decode.opc"
- ID(addc); DR(A); SM2(HL, B, 0); Fzac;
- }
- break;
- case 0x92:
- {
- /** 0110 0001 1001 0010 addc %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1001 0010 addc %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("addc %0, %e1");
- #line 242 "rl78-decode.opc"
- ID(addc); DR(A); SM2(HL, C, 0); Fzac;
- }
- break;
- case 0xa0:
- case 0xa1:
- {
- /** 0110 0001 1010 000 sub %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 000 sub %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("sub %0, %e1");
- #line 1126 "rl78-decode.opc"
- ID(sub); DR(A); SM2(HL, B, 0); Fzac;
- }
- break;
- case 0xa2:
- {
- /** 0110 0001 1010 0010 sub %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 0010 sub %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("sub %0, %e1");
- #line 1132 "rl78-decode.opc"
- ID(sub); DR(A); SM2(HL, C, 0); Fzac;
- }
- break;
- case 0xa8:
- {
- /** 0110 0001 1010 1000 xch %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 1000 xch %0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %1");
- #line 1229 "rl78-decode.opc"
- ID(xch); DR(A); SM(None, SADDR);
- }
- break;
- case 0xa9:
- {
- /** 0110 0001 1010 1001 xch %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 1001 xch %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %e1");
- #line 1222 "rl78-decode.opc"
- ID(xch); DR(A); SM2(HL, C, 0);
- }
- break;
- case 0xaa:
- {
- /** 0110 0001 1010 1010 xch %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 1010 xch %0, %e!1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %e!1");
- #line 1204 "rl78-decode.opc"
- ID(xch); DR(A); SM(None, IMMU(2));
- }
- break;
- case 0xab:
- {
- /** 0110 0001 1010 1011 xch %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 1011 xch %0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %1");
- #line 1232 "rl78-decode.opc"
- ID(xch); DR(A); SM(None, SFR);
- }
- break;
- case 0xac:
- {
- /** 0110 0001 1010 1100 xch %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 1100 xch %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %e1");
- #line 1213 "rl78-decode.opc"
- ID(xch); DR(A); SM(HL, 0);
- }
- break;
- case 0xad:
- {
- /** 0110 0001 1010 1101 xch %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 1101 xch %0, %ea1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %ea1");
- #line 1219 "rl78-decode.opc"
- ID(xch); DR(A); SM(HL, IMMU(1));
- }
- break;
- case 0xae:
- {
- /** 0110 0001 1010 1110 xch %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 1110 xch %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %e1");
- #line 1207 "rl78-decode.opc"
- ID(xch); DR(A); SM(DE, 0);
- }
- break;
- case 0xaf:
- {
- /** 0110 0001 1010 1111 xch %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1010 1111 xch %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %e1");
- #line 1210 "rl78-decode.opc"
- ID(xch); DR(A); SM(DE, IMMU(1));
- }
- break;
- case 0xb0:
- {
- /** 0110 0001 1011 0000 subc %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1011 0000 subc %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("subc %0, %e1");
- #line 1158 "rl78-decode.opc"
- ID(subc); DR(A); SM2(HL, B, 0); Fzac;
- }
- break;
- case 0xb2:
- {
- /** 0110 0001 1011 0010 subc %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1011 0010 subc %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("subc %0, %e1");
- #line 1161 "rl78-decode.opc"
- ID(subc); DR(A); SM2(HL, C, 0); Fzac;
- }
- break;
- case 0xb8:
- {
- /** 0110 0001 1011 1000 mov %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1011 1000 mov %0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("mov %0, %1");
- #line 723 "rl78-decode.opc"
- ID(mov); DR(ES); SM(None, SADDR);
- }
- break;
- case 0xb9:
- {
- /** 0110 0001 1011 1001 xch %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1011 1001 xch %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("xch %0, %e1");
- #line 1216 "rl78-decode.opc"
- ID(xch); DR(A); SM2(HL, B, 0);
- }
- break;
- case 0xc0:
- {
- /** 0110 0001 1100 0000 cmp %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 0000 cmp %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("cmp %0, %e1");
- #line 492 "rl78-decode.opc"
- ID(cmp); DR(A); SM2(HL, B, 0); Fzac;
- }
- break;
- case 0xc2:
- {
- /** 0110 0001 1100 0010 cmp %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 0010 cmp %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("cmp %0, %e1");
- #line 495 "rl78-decode.opc"
- ID(cmp); DR(A); SM2(HL, C, 0); Fzac;
- }
- break;
- case 0xc3:
- {
- /** 0110 0001 1100 0011 bh $%a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 0011 bh $%a0 */",
- op[0], op[1]);
- }
- SYNTAX("bh $%a0");
- #line 340 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+3); SR(None); COND(H);
- }
- break;
- case 0xc8:
- {
- /** 0110 0001 1100 1000 sk%c1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 1000 sk%c1 */",
- op[0], op[1]);
- }
- SYNTAX("sk%c1");
- #line 1095 "rl78-decode.opc"
- ID(skip); COND(C);
- }
- break;
- case 0xc9:
- {
- /** 0110 0001 1100 1001 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 1001 mov %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("mov %0, %e1");
- #line 660 "rl78-decode.opc"
- ID(mov); DR(A); SM2(HL, B, 0);
- }
- break;
- case 0xca:
- case 0xda:
- case 0xea:
- case 0xfa:
- {
- /** 0110 0001 11rg 1010 call %0 */
- #line 430 "rl78-decode.opc"
- int rg AU = (op[1] >> 4) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 11rg 1010 call %0 */",
- op[0], op[1]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("call %0");
- #line 430 "rl78-decode.opc"
- ID(call); DRW(rg);
- }
- break;
- case 0xcb:
- {
- /** 0110 0001 1100 1011 br ax */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 1011 br ax */",
- op[0], op[1]);
- }
- SYNTAX("br ax");
- #line 380 "rl78-decode.opc"
- ID(branch); DR(AX);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xcc:
- {
- /** 0110 0001 1100 1100 brk */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 1100 brk */",
- op[0], op[1]);
- }
- SYNTAX("brk");
- #line 388 "rl78-decode.opc"
- ID(break);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xcd:
- {
- /** 0110 0001 1100 1101 pop %s0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 1101 pop %s0 */",
- op[0], op[1]);
- }
- SYNTAX("pop %s0");
- #line 990 "rl78-decode.opc"
- ID(mov); W(); DR(PSW); SPOP();
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xce:
- {
- /** 0110 0001 1100 1110 movs %ea0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1100 1110 movs %ea0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("movs %ea0, %1");
- #line 811 "rl78-decode.opc"
- ID(mov); DM(HL, IMMU(1)); SR(X); Fzc;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xcf:
- case 0xdf:
- case 0xef:
- case 0xff:
- {
- /** 0110 0001 11rb 1111 sel rb%1 */
- #line 1042 "rl78-decode.opc"
- int rb AU = (op[1] >> 4) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 11rb 1111 sel rb%1 */",
- op[0], op[1]);
- printf (" rb = 0x%x\n", rb);
- }
- SYNTAX("sel rb%1");
- #line 1042 "rl78-decode.opc"
- ID(sel); SC(rb);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xd0:
- {
- /** 0110 0001 1101 0000 and %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 0000 and %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("and %0, %e1");
- #line 291 "rl78-decode.opc"
- ID(and); DR(A); SM2(HL, B, 0); Fz;
- }
- break;
- case 0xd2:
- {
- /** 0110 0001 1101 0010 and %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 0010 and %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("and %0, %e1");
- #line 297 "rl78-decode.opc"
- ID(and); DR(A); SM2(HL, C, 0); Fz;
- }
- break;
- case 0xd3:
- {
- /** 0110 0001 1101 0011 bnh $%a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 0011 bnh $%a0 */",
- op[0], op[1]);
- }
- SYNTAX("bnh $%a0");
- #line 343 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+3); SR(None); COND(NH);
- }
- break;
- case 0xd8:
- {
- /** 0110 0001 1101 1000 sk%c1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 1000 sk%c1 */",
- op[0], op[1]);
- }
- SYNTAX("sk%c1");
- #line 1101 "rl78-decode.opc"
- ID(skip); COND(NC);
- }
- break;
- case 0xd9:
- {
- /** 0110 0001 1101 1001 mov %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 1001 mov %e0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("mov %e0, %1");
- #line 627 "rl78-decode.opc"
- ID(mov); DM2(HL, B, 0); SR(A);
- }
- break;
- case 0xdb:
- {
- /** 0110 0001 1101 1011 ror %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 1011 ror %0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("ror %0, %1");
- #line 1023 "rl78-decode.opc"
- ID(ror); DR(A); SC(1);
- }
- break;
- case 0xdc:
- {
- /** 0110 0001 1101 1100 rolc %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 1100 rolc %0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("rolc %0, %1");
- #line 1017 "rl78-decode.opc"
- ID(rolc); DR(A); SC(1);
- }
- break;
- case 0xdd:
- {
- /** 0110 0001 1101 1101 push %s1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 1101 push %s1 */",
- op[0], op[1]);
- }
- SYNTAX("push %s1");
- #line 998 "rl78-decode.opc"
- ID(mov); W(); DPUSH(); SR(PSW);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xde:
- {
- /** 0110 0001 1101 1110 cmps %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1101 1110 cmps %0, %ea1 */",
- op[0], op[1]);
- }
- SYNTAX("cmps %0, %ea1");
- #line 526 "rl78-decode.opc"
- ID(cmp); DR(X); SM(HL, IMMU(1)); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xe0:
- {
- /** 0110 0001 1110 0000 or %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1110 0000 or %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("or %0, %e1");
- #line 947 "rl78-decode.opc"
- ID(or); DR(A); SM2(HL, B, 0); Fz;
- }
- break;
- case 0xe2:
- {
- /** 0110 0001 1110 0010 or %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1110 0010 or %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("or %0, %e1");
- #line 953 "rl78-decode.opc"
- ID(or); DR(A); SM2(HL, C, 0); Fz;
- }
- break;
- case 0xe3:
- {
- /** 0110 0001 1110 0011 sk%c1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1110 0011 sk%c1 */",
- op[0], op[1]);
- }
- SYNTAX("sk%c1");
- #line 1098 "rl78-decode.opc"
- ID(skip); COND(H);
- }
- break;
- case 0xe8:
- {
- /** 0110 0001 1110 1000 sk%c1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1110 1000 sk%c1 */",
- op[0], op[1]);
- }
- SYNTAX("sk%c1");
- #line 1110 "rl78-decode.opc"
- ID(skip); COND(Z);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xe9:
- {
- /** 0110 0001 1110 1001 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1110 1001 mov %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("mov %0, %e1");
- #line 663 "rl78-decode.opc"
- ID(mov); DR(A); SM2(HL, C, 0);
- }
- break;
- case 0xeb:
- {
- /** 0110 0001 1110 1011 rol %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1110 1011 rol %0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("rol %0, %1");
- #line 1014 "rl78-decode.opc"
- ID(rol); DR(A); SC(1);
- }
- break;
- case 0xec:
- {
- /** 0110 0001 1110 1100 retb */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1110 1100 retb */",
- op[0], op[1]);
- }
- SYNTAX("retb");
- #line 1009 "rl78-decode.opc"
- ID(reti);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xed:
- {
- /** 0110 0001 1110 1101 halt */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1110 1101 halt */",
- op[0], op[1]);
- }
- SYNTAX("halt");
- #line 576 "rl78-decode.opc"
- ID(halt);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xee:
- case 0xfe:
- {
- /** 0110 0001 111r 1110 rolwc %0, %1 */
- #line 1020 "rl78-decode.opc"
- int r AU = (op[1] >> 4) & 0x01;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 111r 1110 rolwc %0, %1 */",
- op[0], op[1]);
- printf (" r = 0x%x\n", r);
- }
- SYNTAX("rolwc %0, %1");
- #line 1020 "rl78-decode.opc"
- ID(rolc); W(); DRW(r); SC(1);
- }
- break;
- case 0xf0:
- {
- /** 0110 0001 1111 0000 xor %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1111 0000 xor %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("xor %0, %e1");
- #line 1251 "rl78-decode.opc"
- ID(xor); DR(A); SM2(HL, B, 0); Fz;
- }
- break;
- case 0xf2:
- {
- /** 0110 0001 1111 0010 xor %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1111 0010 xor %0, %e1 */",
- op[0], op[1]);
- }
- SYNTAX("xor %0, %e1");
- #line 1257 "rl78-decode.opc"
- ID(xor); DR(A); SM2(HL, C, 0); Fz;
- }
- break;
- case 0xf3:
- {
- /** 0110 0001 1111 0011 sk%c1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1111 0011 sk%c1 */",
- op[0], op[1]);
- }
- SYNTAX("sk%c1");
- #line 1104 "rl78-decode.opc"
- ID(skip); COND(NH);
- }
- break;
- case 0xf8:
- {
- /** 0110 0001 1111 1000 sk%c1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1111 1000 sk%c1 */",
- op[0], op[1]);
- }
- SYNTAX("sk%c1");
- #line 1107 "rl78-decode.opc"
- ID(skip); COND(NZ);
- }
- break;
- case 0xf9:
- {
- /** 0110 0001 1111 1001 mov %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1111 1001 mov %e0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("mov %e0, %1");
- #line 636 "rl78-decode.opc"
- ID(mov); DM2(HL, C, 0); SR(A);
- }
- break;
- case 0xfb:
- {
- /** 0110 0001 1111 1011 rorc %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1111 1011 rorc %0, %1 */",
- op[0], op[1]);
- }
- SYNTAX("rorc %0, %1");
- #line 1026 "rl78-decode.opc"
- ID(rorc); DR(A); SC(1);
- /*----------------------------------------------------------------------*/
- /* Note that the branch insns need to be listed before the shift
- ones, as "shift count of zero" means "branch insn" */
- }
- break;
- case 0xfc:
- {
- /** 0110 0001 1111 1100 reti */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1111 1100 reti */",
- op[0], op[1]);
- }
- SYNTAX("reti");
- #line 1006 "rl78-decode.opc"
- ID(reti);
- }
- break;
- case 0xfd:
- {
- /** 0110 0001 1111 1101 stop */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0110 0001 1111 1101 stop */",
- op[0], op[1]);
- }
- SYNTAX("stop");
- #line 1115 "rl78-decode.opc"
- ID(stop);
- /*----------------------------------------------------------------------*/
- }
- break;
- default: UNSUPPORTED(); break;
- }
- break;
- case 0x68:
- {
- /** 0110 1000 movw %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 1000 movw %e0, %1 */",
- op[0]);
- }
- SYNTAX("movw %e0, %1");
- #line 874 "rl78-decode.opc"
- ID(mov); W(); DM(C, IMMU(2)); SR(AX);
- }
- break;
- case 0x69:
- {
- /** 0110 1001 movw %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 1001 movw %0, %e1 */",
- op[0]);
- }
- SYNTAX("movw %0, %e1");
- #line 865 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(C, IMMU(2));
- }
- break;
- case 0x6a:
- {
- /** 0110 1010 or %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 1010 or %0, #%1 */",
- op[0]);
- }
- SYNTAX("or %0, #%1");
- #line 968 "rl78-decode.opc"
- ID(or); DM(None, SADDR); SC(IMMU(1)); Fz;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x6b:
- {
- /** 0110 1011 or %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 1011 or %0, %1 */",
- op[0]);
- }
- SYNTAX("or %0, %1");
- #line 965 "rl78-decode.opc"
- ID(or); DR(A); SM(None, SADDR); Fz;
- }
- break;
- case 0x6c:
- {
- /** 0110 1100 or %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 1100 or %0, #%1 */",
- op[0]);
- }
- SYNTAX("or %0, #%1");
- #line 956 "rl78-decode.opc"
- ID(or); DR(A); SC(IMMU(1)); Fz;
- }
- break;
- case 0x6d:
- {
- /** 0110 1101 or %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 1101 or %0, %e1 */",
- op[0]);
- }
- SYNTAX("or %0, %e1");
- #line 944 "rl78-decode.opc"
- ID(or); DR(A); SM(HL, 0); Fz;
- }
- break;
- case 0x6e:
- {
- /** 0110 1110 or %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 1110 or %0, %ea1 */",
- op[0]);
- }
- SYNTAX("or %0, %ea1");
- #line 950 "rl78-decode.opc"
- ID(or); DR(A); SM(HL, IMMU(1)); Fz;
- }
- break;
- case 0x6f:
- {
- /** 0110 1111 or %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0110 1111 or %0, %e!1 */",
- op[0]);
- }
- SYNTAX("or %0, %e!1");
- #line 941 "rl78-decode.opc"
- ID(or); DR(A); SM(None, IMMU(2)); Fz;
- }
- break;
- case 0x70:
- case 0x72:
- case 0x73:
- case 0x74:
- case 0x75:
- case 0x76:
- case 0x77:
- {
- /** 0111 0rba mov %0, %1 */
- #line 696 "rl78-decode.opc"
- int rba AU = op[0] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 0rba mov %0, %1 */",
- op[0]);
- printf (" rba = 0x%x\n", rba);
- }
- SYNTAX("mov %0, %1");
- #line 696 "rl78-decode.opc"
- ID(mov); DRB(rba); SR(A);
- }
- break;
- case 0x71:
- GETBYTE ();
- switch (op[1] & 0xff)
- {
- case 0x00:
- case 0x10:
- case 0x20:
- case 0x30:
- case 0x40:
- case 0x50:
- case 0x60:
- case 0x70:
- {
- /** 0111 0001 0bit 0000 set1 %e!0 */
- #line 1047 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 0000 set1 %e!0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("set1 %e!0");
- #line 1047 "rl78-decode.opc"
- ID(mov); DM(None, IMMU(2)); DB(bit); SC(1);
- }
- break;
- case 0x01:
- case 0x11:
- case 0x21:
- case 0x31:
- case 0x41:
- case 0x51:
- case 0x61:
- case 0x71:
- {
- /** 0111 0001 0bit 0001 mov1 %0, cy */
- #line 803 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 0001 mov1 %0, cy */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("mov1 %0, cy");
- #line 803 "rl78-decode.opc"
- ID(mov); DM(None, SADDR); DB(bit); SCY();
- }
- break;
- case 0x02:
- case 0x12:
- case 0x22:
- case 0x32:
- case 0x42:
- case 0x52:
- case 0x62:
- case 0x72:
- {
- /** 0111 0001 0bit 0010 set1 %0 */
- #line 1065 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 0010 set1 %0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("set1 %0");
- #line 1065 "rl78-decode.opc"
- ID(mov); DM(None, SADDR); DB(bit); SC(1);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x03:
- case 0x13:
- case 0x23:
- case 0x33:
- case 0x43:
- case 0x53:
- case 0x63:
- case 0x73:
- {
- /** 0111 0001 0bit 0011 clr1 %0 */
- #line 456 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 0011 clr1 %0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("clr1 %0");
- #line 456 "rl78-decode.opc"
- ID(mov); DM(None, SADDR); DB(bit); SC(0);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x04:
- case 0x14:
- case 0x24:
- case 0x34:
- case 0x44:
- case 0x54:
- case 0x64:
- case 0x74:
- {
- /** 0111 0001 0bit 0100 mov1 cy, %1 */
- #line 797 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 0100 mov1 cy, %1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("mov1 cy, %1");
- #line 797 "rl78-decode.opc"
- ID(mov); DCY(); SM(None, SADDR); SB(bit);
- }
- break;
- case 0x05:
- case 0x15:
- case 0x25:
- case 0x35:
- case 0x45:
- case 0x55:
- case 0x65:
- case 0x75:
- {
- /** 0111 0001 0bit 0101 and1 cy, %s1 */
- #line 326 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 0101 and1 cy, %s1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("and1 cy, %s1");
- #line 326 "rl78-decode.opc"
- ID(and); DCY(); SM(None, SADDR); SB(bit);
- /*----------------------------------------------------------------------*/
- /* Note that the branch insns need to be listed before the shift
- ones, as "shift count of zero" means "branch insn" */
- }
- break;
- case 0x06:
- case 0x16:
- case 0x26:
- case 0x36:
- case 0x46:
- case 0x56:
- case 0x66:
- case 0x76:
- {
- /** 0111 0001 0bit 0110 or1 cy, %s1 */
- #line 982 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 0110 or1 cy, %s1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("or1 cy, %s1");
- #line 982 "rl78-decode.opc"
- ID(or); DCY(); SM(None, SADDR); SB(bit);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x07:
- case 0x17:
- case 0x27:
- case 0x37:
- case 0x47:
- case 0x57:
- case 0x67:
- case 0x77:
- {
- /** 0111 0001 0bit 0111 xor1 cy, %s1 */
- #line 1286 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 0111 xor1 cy, %s1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("xor1 cy, %s1");
- #line 1286 "rl78-decode.opc"
- ID(xor); DCY(); SM(None, SADDR); SB(bit);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x08:
- case 0x18:
- case 0x28:
- case 0x38:
- case 0x48:
- case 0x58:
- case 0x68:
- case 0x78:
- {
- /** 0111 0001 0bit 1000 clr1 %e!0 */
- #line 438 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 1000 clr1 %e!0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("clr1 %e!0");
- #line 438 "rl78-decode.opc"
- ID(mov); DM(None, IMMU(2)); DB(bit); SC(0);
- }
- break;
- case 0x09:
- case 0x19:
- case 0x29:
- case 0x39:
- case 0x49:
- case 0x59:
- case 0x69:
- case 0x79:
- {
- /** 0111 0001 0bit 1001 mov1 %s0, cy */
- #line 806 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 1001 mov1 %s0, cy */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("mov1 %s0, cy");
- #line 806 "rl78-decode.opc"
- ID(mov); DM(None, SFR); DB(bit); SCY();
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x0a:
- case 0x1a:
- case 0x2a:
- case 0x3a:
- case 0x4a:
- case 0x5a:
- case 0x6a:
- case 0x7a:
- {
- /** 0111 0001 0bit 1010 set1 %s0 */
- #line 1059 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 1010 set1 %s0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("set1 %s0");
- #line 1059 "rl78-decode.opc"
- op0 = SFR;
- ID(mov); DM(None, op0); DB(bit); SC(1);
- if (op0 == RL78_SFR_PSW && bit == 7)
- rl78->syntax = "ei";
- }
- break;
- case 0x0b:
- case 0x1b:
- case 0x2b:
- case 0x3b:
- case 0x4b:
- case 0x5b:
- case 0x6b:
- case 0x7b:
- {
- /** 0111 0001 0bit 1011 clr1 %s0 */
- #line 450 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 1011 clr1 %s0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("clr1 %s0");
- #line 450 "rl78-decode.opc"
- op0 = SFR;
- ID(mov); DM(None, op0); DB(bit); SC(0);
- if (op0 == RL78_SFR_PSW && bit == 7)
- rl78->syntax = "di";
- }
- break;
- case 0x0c:
- case 0x1c:
- case 0x2c:
- case 0x3c:
- case 0x4c:
- case 0x5c:
- case 0x6c:
- case 0x7c:
- {
- /** 0111 0001 0bit 1100 mov1 cy, %s1 */
- #line 800 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 1100 mov1 cy, %s1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("mov1 cy, %s1");
- #line 800 "rl78-decode.opc"
- ID(mov); DCY(); SM(None, SFR); SB(bit);
- }
- break;
- case 0x0d:
- case 0x1d:
- case 0x2d:
- case 0x3d:
- case 0x4d:
- case 0x5d:
- case 0x6d:
- case 0x7d:
- {
- /** 0111 0001 0bit 1101 and1 cy, %s1 */
- #line 323 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 1101 and1 cy, %s1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("and1 cy, %s1");
- #line 323 "rl78-decode.opc"
- ID(and); DCY(); SM(None, SFR); SB(bit);
- }
- break;
- case 0x0e:
- case 0x1e:
- case 0x2e:
- case 0x3e:
- case 0x4e:
- case 0x5e:
- case 0x6e:
- case 0x7e:
- {
- /** 0111 0001 0bit 1110 or1 cy, %s1 */
- #line 979 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 1110 or1 cy, %s1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("or1 cy, %s1");
- #line 979 "rl78-decode.opc"
- ID(or); DCY(); SM(None, SFR); SB(bit);
- }
- break;
- case 0x0f:
- case 0x1f:
- case 0x2f:
- case 0x3f:
- case 0x4f:
- case 0x5f:
- case 0x6f:
- case 0x7f:
- {
- /** 0111 0001 0bit 1111 xor1 cy, %s1 */
- #line 1283 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 0bit 1111 xor1 cy, %s1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("xor1 cy, %s1");
- #line 1283 "rl78-decode.opc"
- ID(xor); DCY(); SM(None, SFR); SB(bit);
- }
- break;
- case 0x80:
- {
- /** 0111 0001 1000 0000 set1 cy */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1000 0000 set1 cy */",
- op[0], op[1]);
- }
- SYNTAX("set1 cy");
- #line 1056 "rl78-decode.opc"
- ID(mov); DCY(); SC(1);
- }
- break;
- case 0x81:
- case 0x91:
- case 0xa1:
- case 0xb1:
- case 0xc1:
- case 0xd1:
- case 0xe1:
- case 0xf1:
- {
- /** 0111 0001 1bit 0001 mov1 %e0, cy */
- #line 785 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 0001 mov1 %e0, cy */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("mov1 %e0, cy");
- #line 785 "rl78-decode.opc"
- ID(mov); DM(HL, 0); DB(bit); SCY();
- }
- break;
- case 0x82:
- case 0x92:
- case 0xa2:
- case 0xb2:
- case 0xc2:
- case 0xd2:
- case 0xe2:
- case 0xf2:
- {
- /** 0111 0001 1bit 0010 set1 %e0 */
- #line 1050 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 0010 set1 %e0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("set1 %e0");
- #line 1050 "rl78-decode.opc"
- ID(mov); DM(HL, 0); DB(bit); SC(1);
- }
- break;
- case 0x83:
- case 0x93:
- case 0xa3:
- case 0xb3:
- case 0xc3:
- case 0xd3:
- case 0xe3:
- case 0xf3:
- {
- /** 0111 0001 1bit 0011 clr1 %e0 */
- #line 441 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 0011 clr1 %e0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("clr1 %e0");
- #line 441 "rl78-decode.opc"
- ID(mov); DM(HL, 0); DB(bit); SC(0);
- }
- break;
- case 0x84:
- case 0x94:
- case 0xa4:
- case 0xb4:
- case 0xc4:
- case 0xd4:
- case 0xe4:
- case 0xf4:
- {
- /** 0111 0001 1bit 0100 mov1 cy, %e1 */
- #line 791 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 0100 mov1 cy, %e1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("mov1 cy, %e1");
- #line 791 "rl78-decode.opc"
- ID(mov); DCY(); SM(HL, 0); SB(bit);
- }
- break;
- case 0x85:
- case 0x95:
- case 0xa5:
- case 0xb5:
- case 0xc5:
- case 0xd5:
- case 0xe5:
- case 0xf5:
- {
- /** 0111 0001 1bit 0101 and1 cy, %e1 */
- #line 317 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 0101 and1 cy, %e1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("and1 cy, %e1");
- #line 317 "rl78-decode.opc"
- ID(and); DCY(); SM(HL, 0); SB(bit);
- }
- break;
- case 0x86:
- case 0x96:
- case 0xa6:
- case 0xb6:
- case 0xc6:
- case 0xd6:
- case 0xe6:
- case 0xf6:
- {
- /** 0111 0001 1bit 0110 or1 cy, %e1 */
- #line 973 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 0110 or1 cy, %e1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("or1 cy, %e1");
- #line 973 "rl78-decode.opc"
- ID(or); DCY(); SM(HL, 0); SB(bit);
- }
- break;
- case 0x87:
- case 0x97:
- case 0xa7:
- case 0xb7:
- case 0xc7:
- case 0xd7:
- case 0xe7:
- case 0xf7:
- {
- /** 0111 0001 1bit 0111 xor1 cy, %e1 */
- #line 1277 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 0111 xor1 cy, %e1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("xor1 cy, %e1");
- #line 1277 "rl78-decode.opc"
- ID(xor); DCY(); SM(HL, 0); SB(bit);
- }
- break;
- case 0x88:
- {
- /** 0111 0001 1000 1000 clr1 cy */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1000 1000 clr1 cy */",
- op[0], op[1]);
- }
- SYNTAX("clr1 cy");
- #line 447 "rl78-decode.opc"
- ID(mov); DCY(); SC(0);
- }
- break;
- case 0x89:
- case 0x99:
- case 0xa9:
- case 0xb9:
- case 0xc9:
- case 0xd9:
- case 0xe9:
- case 0xf9:
- {
- /** 0111 0001 1bit 1001 mov1 %e0, cy */
- #line 788 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 1001 mov1 %e0, cy */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("mov1 %e0, cy");
- #line 788 "rl78-decode.opc"
- ID(mov); DR(A); DB(bit); SCY();
- }
- break;
- case 0x8a:
- case 0x9a:
- case 0xaa:
- case 0xba:
- case 0xca:
- case 0xda:
- case 0xea:
- case 0xfa:
- {
- /** 0111 0001 1bit 1010 set1 %0 */
- #line 1053 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 1010 set1 %0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("set1 %0");
- #line 1053 "rl78-decode.opc"
- ID(mov); DR(A); DB(bit); SC(1);
- }
- break;
- case 0x8b:
- case 0x9b:
- case 0xab:
- case 0xbb:
- case 0xcb:
- case 0xdb:
- case 0xeb:
- case 0xfb:
- {
- /** 0111 0001 1bit 1011 clr1 %0 */
- #line 444 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 1011 clr1 %0 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("clr1 %0");
- #line 444 "rl78-decode.opc"
- ID(mov); DR(A); DB(bit); SC(0);
- }
- break;
- case 0x8c:
- case 0x9c:
- case 0xac:
- case 0xbc:
- case 0xcc:
- case 0xdc:
- case 0xec:
- case 0xfc:
- {
- /** 0111 0001 1bit 1100 mov1 cy, %e1 */
- #line 794 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 1100 mov1 cy, %e1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("mov1 cy, %e1");
- #line 794 "rl78-decode.opc"
- ID(mov); DCY(); SR(A); SB(bit);
- }
- break;
- case 0x8d:
- case 0x9d:
- case 0xad:
- case 0xbd:
- case 0xcd:
- case 0xdd:
- case 0xed:
- case 0xfd:
- {
- /** 0111 0001 1bit 1101 and1 cy, %1 */
- #line 320 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 1101 and1 cy, %1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("and1 cy, %1");
- #line 320 "rl78-decode.opc"
- ID(and); DCY(); SR(A); SB(bit);
- }
- break;
- case 0x8e:
- case 0x9e:
- case 0xae:
- case 0xbe:
- case 0xce:
- case 0xde:
- case 0xee:
- case 0xfe:
- {
- /** 0111 0001 1bit 1110 or1 cy, %1 */
- #line 976 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 1110 or1 cy, %1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("or1 cy, %1");
- #line 976 "rl78-decode.opc"
- ID(or); DCY(); SR(A); SB(bit);
- }
- break;
- case 0x8f:
- case 0x9f:
- case 0xaf:
- case 0xbf:
- case 0xcf:
- case 0xdf:
- case 0xef:
- case 0xff:
- {
- /** 0111 0001 1bit 1111 xor1 cy, %1 */
- #line 1280 "rl78-decode.opc"
- int bit AU = (op[1] >> 4) & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1bit 1111 xor1 cy, %1 */",
- op[0], op[1]);
- printf (" bit = 0x%x\n", bit);
- }
- SYNTAX("xor1 cy, %1");
- #line 1280 "rl78-decode.opc"
- ID(xor); DCY(); SR(A); SB(bit);
- }
- break;
- case 0xc0:
- {
- /** 0111 0001 1100 0000 not1 cy */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x %02x\n",
- "/** 0111 0001 1100 0000 not1 cy */",
- op[0], op[1]);
- }
- SYNTAX("not1 cy");
- #line 917 "rl78-decode.opc"
- ID(xor); DCY(); SC(1);
- /*----------------------------------------------------------------------*/
- }
- break;
- default: UNSUPPORTED(); break;
- }
- break;
- case 0x78:
- {
- /** 0111 1000 movw %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 1000 movw %e0, %1 */",
- op[0]);
- }
- SYNTAX("movw %e0, %1");
- #line 877 "rl78-decode.opc"
- ID(mov); W(); DM(BC, IMMU(2)); SR(AX);
- }
- break;
- case 0x79:
- {
- /** 0111 1001 movw %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 1001 movw %0, %e1 */",
- op[0]);
- }
- SYNTAX("movw %0, %e1");
- #line 868 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(BC, IMMU(2));
- }
- break;
- case 0x7a:
- {
- /** 0111 1010 xor %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 1010 xor %0, #%1 */",
- op[0]);
- }
- SYNTAX("xor %0, #%1");
- #line 1272 "rl78-decode.opc"
- ID(xor); DM(None, SADDR); SC(IMMU(1)); Fz;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x7b:
- {
- /** 0111 1011 xor %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 1011 xor %0, %1 */",
- op[0]);
- }
- SYNTAX("xor %0, %1");
- #line 1269 "rl78-decode.opc"
- ID(xor); DR(A); SM(None, SADDR); Fz;
- }
- break;
- case 0x7c:
- {
- /** 0111 1100 xor %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 1100 xor %0, #%1 */",
- op[0]);
- }
- SYNTAX("xor %0, #%1");
- #line 1260 "rl78-decode.opc"
- ID(xor); DR(A); SC(IMMU(1)); Fz;
- }
- break;
- case 0x7d:
- {
- /** 0111 1101 xor %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 1101 xor %0, %e1 */",
- op[0]);
- }
- SYNTAX("xor %0, %e1");
- #line 1248 "rl78-decode.opc"
- ID(xor); DR(A); SM(HL, 0); Fz;
- }
- break;
- case 0x7e:
- {
- /** 0111 1110 xor %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 1110 xor %0, %ea1 */",
- op[0]);
- }
- SYNTAX("xor %0, %ea1");
- #line 1254 "rl78-decode.opc"
- ID(xor); DR(A); SM(HL, IMMU(1)); Fz;
- }
- break;
- case 0x7f:
- {
- /** 0111 1111 xor %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 0111 1111 xor %0, %e!1 */",
- op[0]);
- }
- SYNTAX("xor %0, %e!1");
- #line 1245 "rl78-decode.opc"
- ID(xor); DR(A); SM(None, IMMU(2)); Fz;
- }
- break;
- case 0x80:
- case 0x81:
- case 0x82:
- case 0x83:
- case 0x84:
- case 0x85:
- case 0x86:
- case 0x87:
- {
- /** 1000 0reg inc %0 */
- #line 587 "rl78-decode.opc"
- int reg AU = op[0] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 0reg inc %0 */",
- op[0]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("inc %0");
- #line 587 "rl78-decode.opc"
- ID(add); DRB(reg); SC(1); Fza;
- }
- break;
- case 0x88:
- {
- /** 1000 1000 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 1000 mov %0, %e1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e1");
- #line 666 "rl78-decode.opc"
- ID(mov); DR(A); SM(SP, IMMU(1));
- }
- break;
- case 0x89:
- {
- /** 1000 1001 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 1001 mov %0, %e1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e1");
- #line 648 "rl78-decode.opc"
- ID(mov); DR(A); SM(DE, 0);
- }
- break;
- case 0x8a:
- {
- /** 1000 1010 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 1010 mov %0, %e1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e1");
- #line 651 "rl78-decode.opc"
- ID(mov); DR(A); SM(DE, IMMU(1));
- }
- break;
- case 0x8b:
- {
- /** 1000 1011 mov %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 1011 mov %0, %e1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e1");
- #line 654 "rl78-decode.opc"
- ID(mov); DR(A); SM(HL, 0);
- }
- break;
- case 0x8c:
- {
- /** 1000 1100 mov %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 1100 mov %0, %ea1 */",
- op[0]);
- }
- SYNTAX("mov %0, %ea1");
- #line 657 "rl78-decode.opc"
- ID(mov); DR(A); SM(HL, IMMU(1));
- }
- break;
- case 0x8d:
- {
- /** 1000 1101 mov %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 1101 mov %0, %1 */",
- op[0]);
- }
- SYNTAX("mov %0, %1");
- #line 690 "rl78-decode.opc"
- ID(mov); DR(A); SM(None, SADDR);
- }
- break;
- case 0x8e:
- {
- /** 1000 1110 mov %0, %s1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 1110 mov %0, %s1 */",
- op[0]);
- }
- SYNTAX("mov %0, %s1");
- #line 687 "rl78-decode.opc"
- ID(mov); DR(A); SM(None, SFR);
- }
- break;
- case 0x8f:
- {
- /** 1000 1111 mov %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1000 1111 mov %0, %e!1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e!1");
- #line 645 "rl78-decode.opc"
- ID(mov); DR(A); SM(None, IMMU(2));
- }
- break;
- case 0x90:
- case 0x91:
- case 0x92:
- case 0x93:
- case 0x94:
- case 0x95:
- case 0x96:
- case 0x97:
- {
- /** 1001 0reg dec %0 */
- #line 554 "rl78-decode.opc"
- int reg AU = op[0] & 0x07;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 0reg dec %0 */",
- op[0]);
- printf (" reg = 0x%x\n", reg);
- }
- SYNTAX("dec %0");
- #line 554 "rl78-decode.opc"
- ID(sub); DRB(reg); SC(1); Fza;
- }
- break;
- case 0x98:
- {
- /** 1001 1000 mov %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 1000 mov %0, %1 */",
- op[0]);
- }
- SYNTAX("mov %0, %1");
- #line 642 "rl78-decode.opc"
- ID(mov); DM(SP, IMMU(1)); SR(A);
- }
- break;
- case 0x99:
- {
- /** 1001 1001 mov %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 1001 mov %e0, %1 */",
- op[0]);
- }
- SYNTAX("mov %e0, %1");
- #line 615 "rl78-decode.opc"
- ID(mov); DM(DE, 0); SR(A);
- }
- break;
- case 0x9a:
- {
- /** 1001 1010 mov %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 1010 mov %e0, %1 */",
- op[0]);
- }
- SYNTAX("mov %e0, %1");
- #line 621 "rl78-decode.opc"
- ID(mov); DM(DE, IMMU(1)); SR(A);
- }
- break;
- case 0x9b:
- {
- /** 1001 1011 mov %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 1011 mov %e0, %1 */",
- op[0]);
- }
- SYNTAX("mov %e0, %1");
- #line 624 "rl78-decode.opc"
- ID(mov); DM(HL, 0); SR(A);
- }
- break;
- case 0x9c:
- {
- /** 1001 1100 mov %ea0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 1100 mov %ea0, %1 */",
- op[0]);
- }
- SYNTAX("mov %ea0, %1");
- #line 633 "rl78-decode.opc"
- ID(mov); DM(HL, IMMU(1)); SR(A);
- }
- break;
- case 0x9d:
- {
- /** 1001 1101 mov %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 1101 mov %0, %1 */",
- op[0]);
- }
- SYNTAX("mov %0, %1");
- #line 747 "rl78-decode.opc"
- ID(mov); DM(None, SADDR); SR(A);
- }
- break;
- case 0x9e:
- {
- /** 1001 1110 mov %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 1110 mov %0, %1 */",
- op[0]);
- }
- SYNTAX("mov %0, %1");
- #line 780 "rl78-decode.opc"
- ID(mov); DM(None, SFR); SR(A);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0x9f:
- {
- /** 1001 1111 mov %e!0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1001 1111 mov %e!0, %1 */",
- op[0]);
- }
- SYNTAX("mov %e!0, %1");
- #line 612 "rl78-decode.opc"
- ID(mov); DM(None, IMMU(2)); SR(A);
- }
- break;
- case 0xa0:
- {
- /** 1010 0000 inc %e!0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 0000 inc %e!0 */",
- op[0]);
- }
- SYNTAX("inc %e!0");
- #line 581 "rl78-decode.opc"
- ID(add); DM(None, IMMU(2)); SC(1); Fza;
- }
- break;
- case 0xa1:
- case 0xa3:
- case 0xa5:
- case 0xa7:
- {
- /** 1010 0rg1 incw %0 */
- #line 601 "rl78-decode.opc"
- int rg AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 0rg1 incw %0 */",
- op[0]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("incw %0");
- #line 601 "rl78-decode.opc"
- ID(add); W(); DRW(rg); SC(1);
- }
- break;
- case 0xa2:
- {
- /** 1010 0010 incw %e!0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 0010 incw %e!0 */",
- op[0]);
- }
- SYNTAX("incw %e!0");
- #line 595 "rl78-decode.opc"
- ID(add); W(); DM(None, IMMU(2)); SC(1);
- }
- break;
- case 0xa4:
- {
- /** 1010 0100 inc %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 0100 inc %0 */",
- op[0]);
- }
- SYNTAX("inc %0");
- #line 590 "rl78-decode.opc"
- ID(add); DM(None, SADDR); SC(1); Fza;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xa6:
- {
- /** 1010 0110 incw %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 0110 incw %0 */",
- op[0]);
- }
- SYNTAX("incw %0");
- #line 604 "rl78-decode.opc"
- ID(add); W(); DM(None, SADDR); SC(1);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xa8:
- {
- /** 1010 1000 movw %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 1000 movw %0, %1 */",
- op[0]);
- }
- SYNTAX("movw %0, %1");
- #line 850 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(SP, IMMU(1));
- }
- break;
- case 0xa9:
- {
- /** 1010 1001 movw %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 1001 movw %0, %e1 */",
- op[0]);
- }
- SYNTAX("movw %0, %e1");
- #line 838 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(DE, 0);
- }
- break;
- case 0xaa:
- {
- /** 1010 1010 movw %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 1010 movw %0, %e1 */",
- op[0]);
- }
- SYNTAX("movw %0, %e1");
- #line 841 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(DE, IMMU(1));
- }
- break;
- case 0xab:
- {
- /** 1010 1011 movw %0, %e1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 1011 movw %0, %e1 */",
- op[0]);
- }
- SYNTAX("movw %0, %e1");
- #line 844 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(HL, 0);
- }
- break;
- case 0xac:
- {
- /** 1010 1100 movw %0, %ea1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 1100 movw %0, %ea1 */",
- op[0]);
- }
- SYNTAX("movw %0, %ea1");
- #line 847 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(HL, IMMU(1));
- }
- break;
- case 0xad:
- {
- /** 1010 1101 movw %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 1101 movw %0, %1 */",
- op[0]);
- }
- SYNTAX("movw %0, %1");
- #line 880 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(None, SADDR);
- }
- break;
- case 0xae:
- {
- /** 1010 1110 movw %0, %s1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 1110 movw %0, %s1 */",
- op[0]);
- }
- SYNTAX("movw %0, %s1");
- #line 883 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(None, SFR);
- }
- break;
- case 0xaf:
- {
- /** 1010 1111 movw %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1010 1111 movw %0, %e!1 */",
- op[0]);
- }
- SYNTAX("movw %0, %e!1");
- #line 834 "rl78-decode.opc"
- ID(mov); W(); DR(AX); SM(None, IMMU(2));
- }
- break;
- case 0xb0:
- {
- /** 1011 0000 dec %e!0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 0000 dec %e!0 */",
- op[0]);
- }
- SYNTAX("dec %e!0");
- #line 548 "rl78-decode.opc"
- ID(sub); DM(None, IMMU(2)); SC(1); Fza;
- }
- break;
- case 0xb1:
- case 0xb3:
- case 0xb5:
- case 0xb7:
- {
- /** 1011 0rg1 decw %0 */
- #line 568 "rl78-decode.opc"
- int rg AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 0rg1 decw %0 */",
- op[0]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("decw %0");
- #line 568 "rl78-decode.opc"
- ID(sub); W(); DRW(rg); SC(1);
- }
- break;
- case 0xb2:
- {
- /** 1011 0010 decw %e!0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 0010 decw %e!0 */",
- op[0]);
- }
- SYNTAX("decw %e!0");
- #line 562 "rl78-decode.opc"
- ID(sub); W(); DM(None, IMMU(2)); SC(1);
- }
- break;
- case 0xb4:
- {
- /** 1011 0100 dec %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 0100 dec %0 */",
- op[0]);
- }
- SYNTAX("dec %0");
- #line 557 "rl78-decode.opc"
- ID(sub); DM(None, SADDR); SC(1); Fza;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xb6:
- {
- /** 1011 0110 decw %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 0110 decw %0 */",
- op[0]);
- }
- SYNTAX("decw %0");
- #line 571 "rl78-decode.opc"
- ID(sub); W(); DM(None, SADDR); SC(1);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xb8:
- {
- /** 1011 1000 movw %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 1000 movw %0, %1 */",
- op[0]);
- }
- SYNTAX("movw %0, %1");
- #line 831 "rl78-decode.opc"
- ID(mov); W(); DM(SP, IMMU(1)); SR(AX);
- }
- break;
- case 0xb9:
- {
- /** 1011 1001 movw %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 1001 movw %e0, %1 */",
- op[0]);
- }
- SYNTAX("movw %e0, %1");
- #line 819 "rl78-decode.opc"
- ID(mov); W(); DM(DE, 0); SR(AX);
- }
- break;
- case 0xba:
- {
- /** 1011 1010 movw %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 1010 movw %e0, %1 */",
- op[0]);
- }
- SYNTAX("movw %e0, %1");
- #line 822 "rl78-decode.opc"
- ID(mov); W(); DM(DE, IMMU(1)); SR(AX);
- }
- break;
- case 0xbb:
- {
- /** 1011 1011 movw %e0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 1011 movw %e0, %1 */",
- op[0]);
- }
- SYNTAX("movw %e0, %1");
- #line 825 "rl78-decode.opc"
- ID(mov); W(); DM(HL, 0); SR(AX);
- }
- break;
- case 0xbc:
- {
- /** 1011 1100 movw %ea0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 1100 movw %ea0, %1 */",
- op[0]);
- }
- SYNTAX("movw %ea0, %1");
- #line 828 "rl78-decode.opc"
- ID(mov); W(); DM(HL, IMMU(1)); SR(AX);
- }
- break;
- case 0xbd:
- {
- /** 1011 1101 movw %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 1101 movw %0, %1 */",
- op[0]);
- }
- SYNTAX("movw %0, %1");
- #line 895 "rl78-decode.opc"
- ID(mov); W(); DM(None, SADDR); SR(AX);
- }
- break;
- case 0xbe:
- {
- /** 1011 1110 movw %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 1110 movw %0, %1 */",
- op[0]);
- }
- SYNTAX("movw %0, %1");
- #line 901 "rl78-decode.opc"
- ID(mov); W(); DM(None, SFR); SR(AX);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xbf:
- {
- /** 1011 1111 movw %e!0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1011 1111 movw %e!0, %1 */",
- op[0]);
- }
- SYNTAX("movw %e!0, %1");
- #line 816 "rl78-decode.opc"
- ID(mov); W(); DM(None, IMMU(2)); SR(AX);
- }
- break;
- case 0xc0:
- case 0xc2:
- case 0xc4:
- case 0xc6:
- {
- /** 1100 0rg0 pop %0 */
- #line 987 "rl78-decode.opc"
- int rg AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 0rg0 pop %0 */",
- op[0]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("pop %0");
- #line 987 "rl78-decode.opc"
- ID(mov); W(); DRW(rg); SPOP();
- }
- break;
- case 0xc1:
- case 0xc3:
- case 0xc5:
- case 0xc7:
- {
- /** 1100 0rg1 push %1 */
- #line 995 "rl78-decode.opc"
- int rg AU = (op[0] >> 1) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 0rg1 push %1 */",
- op[0]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("push %1");
- #line 995 "rl78-decode.opc"
- ID(mov); W(); DPUSH(); SRW(rg);
- }
- break;
- case 0xc8:
- {
- /** 1100 1000 mov %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 1000 mov %0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %0, #%1");
- #line 639 "rl78-decode.opc"
- ID(mov); DM(SP, IMMU(1)); SC(IMMU(1));
- }
- break;
- case 0xc9:
- {
- /** 1100 1001 movw %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 1001 movw %0, #%1 */",
- op[0]);
- }
- SYNTAX("movw %0, #%1");
- #line 892 "rl78-decode.opc"
- ID(mov); W(); DM(None, SADDR); SC(IMMU(2));
- }
- break;
- case 0xca:
- {
- /** 1100 1010 mov %e0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 1010 mov %e0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %e0, #%1");
- #line 618 "rl78-decode.opc"
- ID(mov); DM(DE, IMMU(1)); SC(IMMU(1));
- }
- break;
- case 0xcb:
- {
- /** 1100 1011 movw %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 1011 movw %0, #%1 */",
- op[0]);
- }
- SYNTAX("movw %0, #%1");
- #line 898 "rl78-decode.opc"
- ID(mov); W(); DM(None, SFR); SC(IMMU(2));
- }
- break;
- case 0xcc:
- {
- /** 1100 1100 mov %ea0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 1100 mov %ea0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %ea0, #%1");
- #line 630 "rl78-decode.opc"
- ID(mov); DM(HL, IMMU(1)); SC(IMMU(1));
- }
- break;
- case 0xcd:
- {
- /** 1100 1101 mov %0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 1101 mov %0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %0, #%1");
- #line 744 "rl78-decode.opc"
- ID(mov); DM(None, SADDR); SC(IMMU(1));
- }
- break;
- case 0xce:
- {
- /** 1100 1110 mov %s0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 1110 mov %s0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %s0, #%1");
- #line 750 "rl78-decode.opc"
- op0 = SFR;
- op1 = IMMU(1);
- ID(mov); DM(None, op0); SC(op1);
- if (op0 == 0xffffb && isa == RL78_ISA_G14)
- switch (op1)
- {
- case 0x01:
- rl78->syntax = "mulhu"; ID(mulhu);
- break;
- case 0x02:
- rl78->syntax = "mulh"; ID(mulh);
- break;
- case 0x03:
- rl78->syntax = "divhu"; ID(divhu);
- break;
- case 0x04:
- rl78->syntax = "divwu <old-encoding>"; ID(divwu);
- break;
- case 0x05:
- rl78->syntax = "machu"; ID(machu);
- break;
- case 0x06:
- rl78->syntax = "mach"; ID(mach);
- break;
- case 0x0b:
- rl78->syntax = "divwu"; ID(divwu);
- break;
- }
- }
- break;
- case 0xcf:
- {
- /** 1100 1111 mov %e!0, #%1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1100 1111 mov %e!0, #%1 */",
- op[0]);
- }
- SYNTAX("mov %e!0, #%1");
- #line 609 "rl78-decode.opc"
- ID(mov); DM(None, IMMU(2)); SC(IMMU(1));
- }
- break;
- case 0xd0:
- case 0xd1:
- case 0xd2:
- case 0xd3:
- {
- /** 1101 00rg cmp0 %0 */
- #line 518 "rl78-decode.opc"
- int rg AU = op[0] & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 00rg cmp0 %0 */",
- op[0]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("cmp0 %0");
- #line 518 "rl78-decode.opc"
- ID(cmp); DRB(rg); SC(0); Fzac;
- }
- break;
- case 0xd4:
- {
- /** 1101 0100 cmp0 %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 0100 cmp0 %0 */",
- op[0]);
- }
- SYNTAX("cmp0 %0");
- #line 521 "rl78-decode.opc"
- ID(cmp); DM(None, SADDR); SC(0); Fzac;
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xd5:
- {
- /** 1101 0101 cmp0 %e!0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 0101 cmp0 %e!0 */",
- op[0]);
- }
- SYNTAX("cmp0 %e!0");
- #line 515 "rl78-decode.opc"
- ID(cmp); DM(None, IMMU(2)); SC(0); Fzac;
- }
- break;
- case 0xd6:
- {
- /** 1101 0110 mulu x */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 0110 mulu x */",
- op[0]);
- }
- SYNTAX("mulu x");
- #line 906 "rl78-decode.opc"
- if (isa == RL78_ISA_G14)
- ID(mulu);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xd7:
- {
- /** 1101 0111 ret */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 0111 ret */",
- op[0]);
- }
- SYNTAX("ret");
- #line 1003 "rl78-decode.opc"
- ID(ret);
- }
- break;
- case 0xd8:
- {
- /** 1101 1000 mov %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 1000 mov %0, %1 */",
- op[0]);
- }
- SYNTAX("mov %0, %1");
- #line 711 "rl78-decode.opc"
- ID(mov); DR(X); SM(None, SADDR);
- }
- break;
- case 0xd9:
- {
- /** 1101 1001 mov %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 1001 mov %0, %e!1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e!1");
- #line 708 "rl78-decode.opc"
- ID(mov); DR(X); SM(None, IMMU(2));
- }
- break;
- case 0xda:
- case 0xea:
- case 0xfa:
- {
- /** 11ra 1010 movw %0, %1 */
- #line 889 "rl78-decode.opc"
- int ra AU = (op[0] >> 4) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 11ra 1010 movw %0, %1 */",
- op[0]);
- printf (" ra = 0x%x\n", ra);
- }
- SYNTAX("movw %0, %1");
- #line 889 "rl78-decode.opc"
- ID(mov); W(); DRW(ra); SM(None, SADDR);
- }
- break;
- case 0xdb:
- case 0xeb:
- case 0xfb:
- {
- /** 11ra 1011 movw %0, %e!1 */
- #line 886 "rl78-decode.opc"
- int ra AU = (op[0] >> 4) & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 11ra 1011 movw %0, %e!1 */",
- op[0]);
- printf (" ra = 0x%x\n", ra);
- }
- SYNTAX("movw %0, %e!1");
- #line 886 "rl78-decode.opc"
- ID(mov); W(); DRW(ra); SM(None, IMMU(2));
- }
- break;
- case 0xdc:
- {
- /** 1101 1100 bc $%a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 1100 bc $%a0 */",
- op[0]);
- }
- SYNTAX("bc $%a0");
- #line 334 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+2); SR(None); COND(C);
- }
- break;
- case 0xdd:
- {
- /** 1101 1101 bz $%a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 1101 bz $%a0 */",
- op[0]);
- }
- SYNTAX("bz $%a0");
- #line 346 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+2); SR(None); COND(Z);
- }
- break;
- case 0xde:
- {
- /** 1101 1110 bnc $%a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 1110 bnc $%a0 */",
- op[0]);
- }
- SYNTAX("bnc $%a0");
- #line 337 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+2); SR(None); COND(NC);
- }
- break;
- case 0xdf:
- {
- /** 1101 1111 bnz $%a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1101 1111 bnz $%a0 */",
- op[0]);
- }
- SYNTAX("bnz $%a0");
- #line 349 "rl78-decode.opc"
- ID(branch_cond); DC(pc+IMMS(1)+2); SR(None); COND(NZ);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xe0:
- case 0xe1:
- case 0xe2:
- case 0xe3:
- {
- /** 1110 00rg oneb %0 */
- #line 925 "rl78-decode.opc"
- int rg AU = op[0] & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 00rg oneb %0 */",
- op[0]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("oneb %0");
- #line 925 "rl78-decode.opc"
- ID(mov); DRB(rg); SC(1);
- }
- break;
- case 0xe4:
- {
- /** 1110 0100 oneb %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 0100 oneb %0 */",
- op[0]);
- }
- SYNTAX("oneb %0");
- #line 928 "rl78-decode.opc"
- ID(mov); DM(None, SADDR); SC(1);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xe5:
- {
- /** 1110 0101 oneb %e!0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 0101 oneb %e!0 */",
- op[0]);
- }
- SYNTAX("oneb %e!0");
- #line 922 "rl78-decode.opc"
- ID(mov); DM(None, IMMU(2)); SC(1);
- }
- break;
- case 0xe6:
- {
- /** 1110 0110 onew %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 0110 onew %0 */",
- op[0]);
- }
- SYNTAX("onew %0");
- #line 933 "rl78-decode.opc"
- ID(mov); DR(AX); SC(1);
- }
- break;
- case 0xe7:
- {
- /** 1110 0111 onew %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 0111 onew %0 */",
- op[0]);
- }
- SYNTAX("onew %0");
- #line 936 "rl78-decode.opc"
- ID(mov); DR(BC); SC(1);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xe8:
- {
- /** 1110 1000 mov %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 1000 mov %0, %1 */",
- op[0]);
- }
- SYNTAX("mov %0, %1");
- #line 699 "rl78-decode.opc"
- ID(mov); DR(B); SM(None, SADDR);
- }
- break;
- case 0xe9:
- {
- /** 1110 1001 mov %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 1001 mov %0, %e!1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e!1");
- #line 693 "rl78-decode.opc"
- ID(mov); DR(B); SM(None, IMMU(2));
- }
- break;
- case 0xec:
- {
- /** 1110 1100 br !%!a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 1100 br !%!a0 */",
- op[0]);
- }
- SYNTAX("br !%!a0");
- #line 368 "rl78-decode.opc"
- ID(branch); DC(IMMU(3));
- }
- break;
- case 0xed:
- {
- /** 1110 1101 br %!a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 1101 br %!a0 */",
- op[0]);
- }
- SYNTAX("br %!a0");
- #line 371 "rl78-decode.opc"
- ID(branch); DC(IMMU(2));
- }
- break;
- case 0xee:
- {
- /** 1110 1110 br $%!a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 1110 br $%!a0 */",
- op[0]);
- }
- SYNTAX("br $%!a0");
- #line 374 "rl78-decode.opc"
- ID(branch); DC(pc+IMMS(2)+3);
- }
- break;
- case 0xef:
- {
- /** 1110 1111 br $%a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1110 1111 br $%a0 */",
- op[0]);
- }
- SYNTAX("br $%a0");
- #line 377 "rl78-decode.opc"
- ID(branch); DC(pc+IMMS(1)+2);
- }
- break;
- case 0xf0:
- case 0xf1:
- case 0xf2:
- case 0xf3:
- {
- /** 1111 00rg clrb %0 */
- #line 464 "rl78-decode.opc"
- int rg AU = op[0] & 0x03;
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 00rg clrb %0 */",
- op[0]);
- printf (" rg = 0x%x\n", rg);
- }
- SYNTAX("clrb %0");
- #line 464 "rl78-decode.opc"
- ID(mov); DRB(rg); SC(0);
- }
- break;
- case 0xf4:
- {
- /** 1111 0100 clrb %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 0100 clrb %0 */",
- op[0]);
- }
- SYNTAX("clrb %0");
- #line 467 "rl78-decode.opc"
- ID(mov); DM(None, SADDR); SC(0);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xf5:
- {
- /** 1111 0101 clrb %e!0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 0101 clrb %e!0 */",
- op[0]);
- }
- SYNTAX("clrb %e!0");
- #line 461 "rl78-decode.opc"
- ID(mov); DM(None, IMMU(2)); SC(0);
- }
- break;
- case 0xf6:
- {
- /** 1111 0110 clrw %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 0110 clrw %0 */",
- op[0]);
- }
- SYNTAX("clrw %0");
- #line 472 "rl78-decode.opc"
- ID(mov); DR(AX); SC(0);
- }
- break;
- case 0xf7:
- {
- /** 1111 0111 clrw %0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 0111 clrw %0 */",
- op[0]);
- }
- SYNTAX("clrw %0");
- #line 475 "rl78-decode.opc"
- ID(mov); DR(BC); SC(0);
- /*----------------------------------------------------------------------*/
- }
- break;
- case 0xf8:
- {
- /** 1111 1000 mov %0, %1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 1000 mov %0, %1 */",
- op[0]);
- }
- SYNTAX("mov %0, %1");
- #line 705 "rl78-decode.opc"
- ID(mov); DR(C); SM(None, SADDR);
- }
- break;
- case 0xf9:
- {
- /** 1111 1001 mov %0, %e!1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 1001 mov %0, %e!1 */",
- op[0]);
- }
- SYNTAX("mov %0, %e!1");
- #line 702 "rl78-decode.opc"
- ID(mov); DR(C); SM(None, IMMU(2));
- }
- break;
- case 0xfc:
- {
- /** 1111 1100 call !%!a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 1100 call !%!a0 */",
- op[0]);
- }
- SYNTAX("call !%!a0");
- #line 421 "rl78-decode.opc"
- ID(call); DC(IMMU(3));
- }
- break;
- case 0xfd:
- {
- /** 1111 1101 call %!a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 1101 call %!a0 */",
- op[0]);
- }
- SYNTAX("call %!a0");
- #line 424 "rl78-decode.opc"
- ID(call); DC(IMMU(2));
- }
- break;
- case 0xfe:
- {
- /** 1111 1110 call $%!a0 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 1110 call $%!a0 */",
- op[0]);
- }
- SYNTAX("call $%!a0");
- #line 427 "rl78-decode.opc"
- ID(call); DC(pc+IMMS(2)+3);
- }
- break;
- case 0xff:
- {
- /** 1111 1111 brk1 */
- if (trace)
- {
- printf ("\033[33m%s\033[0m %02x\n",
- "/** 1111 1111 brk1 */",
- op[0]);
- }
- SYNTAX("brk1");
- #line 385 "rl78-decode.opc"
- ID(break);
- }
- break;
- }
- #line 1291 "rl78-decode.opc"
- return rl78->n_bytes;
- }
|