123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364 |
- #include "Interpreter.h"
- #include <cmath>
- #include <algorithm>
- #include "vm/Object.h"
- #include "vm/Class.h"
- #include "vm/ClassInlines.h"
- #include "vm/Array.h"
- #include "vm/Image.h"
- #include "vm/Exception.h"
- #include "vm/Thread.h"
- #include "vm/Runtime.h"
- #include "vm/Reflection.h"
- #include "metadata/GenericMetadata.h"
- #if HYBRIDCLR_UNITY_2020_OR_NEW
- #include "vm-utils/icalls/mscorlib/System.Threading/Interlocked.h"
- #else
- #include "icalls/mscorlib/System.Threading/Interlocked.h"
- #endif
- #include "../metadata/MetadataModule.h"
- #include "Instruction.h"
- #include "MethodBridge.h"
- #include "InstrinctDef.h"
- #include "MemoryUtil.h"
- #include "InterpreterModule.h"
- #include "InterpreterUtil.h"
- #include "gc/WriteBarrier.h"
- using namespace hybridclr::metadata;
- namespace hybridclr
- {
- namespace interpreter
- {
- #pragma region memory
- #define LOCAL_ALLOC(size) interpFrameGroup.AllocLoc(size, imi->initLocals)
- #pragma endregion
- #pragma region arith
- inline bool CheckAddOverflow(int32_t a, int32_t b)
- {
- return b >= 0 ? (INT32_MAX - b < a) : (INT32_MIN - b > a);
- }
- inline bool CheckSubOverflow(int32_t a, int32_t b)
- {
- return b >= 0 ? (INT32_MAX - b < a) : (INT32_MIN - b > a);
- }
- inline bool CheckAddOverflowUn(uint32_t a, uint32_t b)
- {
- return UINT32_MAX - b < a;
- }
- inline bool CheckSubOverflowUn(uint32_t a, uint32_t b)
- {
- return a < b;
- }
- inline bool CheckAddOverflow64(int64_t a, int64_t b)
- {
- return b >= 0 ? (INT64_MAX - b < a) : (INT64_MIN - b > a);
- }
- inline bool CheckSubOverflow64(int64_t a, int64_t b)
- {
- return b < 0 ? (INT64_MAX + b < a) : (INT64_MIN + b > a);
- }
- inline bool CheckAddOverflow64Un(uint64_t a, uint64_t b)
- {
- return UINT64_MAX - b < a;
- }
- inline bool CheckSubOverflow64Un(uint64_t a, uint64_t b)
- {
- return a < b;
- }
- inline bool CheckMulOverflow(int32_t a, int32_t b)
- {
- int64_t c = (int64_t)a * (int64_t)b;
- return c <= INT32_MIN || c >= INT32_MAX;
- }
- inline bool CheckMulOverflowUn(uint32_t a, uint32_t b)
- {
- return (uint64_t)a * (uint64_t)b >= UINT32_MAX;
- }
- inline bool CheckMulOverflow64(int64_t a, int64_t b)
- {
- if (a == 0 || b == 0)
- {
- return false;
- }
- if (a > 0 && b == -1)
- {
- return false;
- }
- if (a < 0 && b == -1)
- {
- return a == INT64_MIN;
- }
- if (a > 0 && b > 0)
- {
- return a > INT64_MAX / b;
- }
- if (a > 0 && b < 0)
- {
- return a > INT64_MIN / b;
- }
- if (a < 0 && b > 0)
- {
- return a < INT64_MIN / b;
- }
- return a < INT64_MAX / b;
- }
- inline bool CheckMulOverflow64Un(uint64_t a, uint64_t b)
- {
- return a != 0 && b > UINT64_MAX / a;
- }
- inline bool CheckConvertOverflow_i4_i1(int32_t x)
- {
- return ((x < INT8_MIN) || (x > INT8_MAX));
- }
- inline bool CheckConvertOverflow_i4_u1(int32_t x)
- {
- return (uint32_t)x > UINT8_MAX;
- }
- inline bool CheckConvertOverflow_i4_i2(int32_t x)
- {
- return ((x < INT16_MIN) || (x > INT16_MAX));
- }
- inline bool CheckConvertOverflow_i4_u2(int32_t x)
- {
- return (uint32_t)x > UINT16_MAX;
- }
- inline bool CheckConvertOverflow_i4_i4(int32_t x)
- {
- return false;
- }
- inline bool CheckConvertOverflow_i4_u4(int32_t x)
- {
- return x < 0;
- }
- inline bool CheckConvertOverflow_i4_i8(int32_t x)
- {
- return false;
- }
- inline bool CheckConvertOverflow_i4_u8(int32_t x)
- {
- return x < 0;
- }
- inline bool CheckConvertOverflow_u4_i1(uint32_t x)
- {
- return x > INT8_MAX;
- }
- inline bool CheckConvertOverflow_u4_u1(uint32_t x)
- {
- return x > UINT8_MAX;
- }
- inline bool CheckConvertOverflow_u4_i2(uint32_t x)
- {
- return x > INT16_MAX;
- }
- inline bool CheckConvertOverflow_u4_u2(uint32_t x)
- {
- return x > UINT16_MAX;
- }
- inline bool CheckConvertOverflow_u4_i4(uint32_t x)
- {
- return x > INT32_MAX;
- }
- inline bool CheckConvertOverflow_u4_u4(uint32_t x)
- {
- return false;
- }
- inline bool CheckConvertOverflow_u4_i8(uint32_t x)
- {
- return false;
- }
- inline bool CheckConvertOverflow_u4_u8(uint32_t x)
- {
- return false;
- }
- inline bool CheckConvertOverflow_i8_i1(int64_t x)
- {
- return ((x < INT8_MIN) || (x > INT8_MAX));
- }
- inline bool CheckConvertOverflow_i8_u1(int64_t x)
- {
- return (uint64_t)x > UINT8_MAX;
- }
- inline bool CheckConvertOverflow_i8_i2(int64_t x)
- {
- return ((x < INT16_MIN) || (x > INT16_MAX));
- }
- inline bool CheckConvertOverflow_i8_u2(int64_t x)
- {
- return (uint64_t)x > UINT16_MAX;
- }
- inline bool CheckConvertOverflow_i8_i4(int64_t x)
- {
- return ((x < INT32_MIN) || (x > INT32_MAX));
- }
- inline bool CheckConvertOverflow_i8_u4(int64_t x)
- {
- return (uint64_t)x > UINT32_MAX;
- }
- inline bool CheckConvertOverflow_i8_i8(int64_t x)
- {
- return false;
- }
- inline bool CheckConvertOverflow_i8_u8(int64_t x)
- {
- return x < 0;
- }
- inline bool CheckConvertOverflow_u8_i1(uint64_t x)
- {
- return x > INT8_MAX;
- }
- inline bool CheckConvertOverflow_u8_u1(uint64_t x)
- {
- return x > UINT8_MAX;
- }
- inline bool CheckConvertOverflow_u8_i2(uint64_t x)
- {
- return x > INT16_MAX;
- }
- inline bool CheckConvertOverflow_u8_u2(uint64_t x)
- {
- return x > UINT16_MAX;
- }
- inline bool CheckConvertOverflow_u8_i4(uint64_t x)
- {
- return x > INT32_MAX;
- }
- inline bool CheckConvertOverflow_u8_u4(uint64_t x)
- {
- return x > UINT32_MAX;
- }
- inline bool CheckConvertOverflow_u8_i8(uint64_t x)
- {
- return x > INT64_MAX;
- }
- inline bool CheckConvertOverflow_u8_u8(uint64_t x)
- {
- return false;
- }
- inline bool CheckConvertOverflow_f4_i1(float x)
- {
- return x < INT8_MIN || x > INT8_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f4_u1(float x)
- {
- return x < 0 || x > UINT8_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f4_i2(float x)
- {
- return x < INT16_MIN || x > INT16_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f4_u2(float x)
- {
- return x < 0 || x > UINT16_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f4_i4(float x)
- {
- if (isnan(x))
- {
- return true;
- }
- float y = truncf(x);
- return y != (int32_t)x;
- }
- inline bool CheckConvertOverflow_f4_u4(float x)
- {
- if (isnan(x) || x < 0)
- {
- return true;
- }
- float y = truncf(x);
- return y != (uint32_t)x;
- }
- inline bool CheckConvertOverflow_f4_i8(float x)
- {
- if (isnan(x))
- {
- return true;
- }
- float y = truncf(x);
- return y != (int64_t)x;
- }
- inline bool CheckConvertOverflow_f4_u8(float x)
- {
- if (isnan(x) || x < 0)
- {
- return true;
- }
- float y = truncf(x);
- return y != (uint64_t)x;
- }
- inline bool CheckConvertOverflow_f8_i1(double x)
- {
- return x < INT8_MIN || x > INT8_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f8_u1(double x)
- {
- return x < 0 || x > UINT8_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f8_i2(double x)
- {
- return x < INT16_MIN || x > INT16_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f8_u2(double x)
- {
- return x < 0 || x > UINT16_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f8_i4(double x)
- {
- return x < INT32_MIN || x > INT32_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f8_u4(double x)
- {
- return x < 0 || x > UINT32_MAX || isnan(x);
- }
- inline bool CheckConvertOverflow_f8_i8(double x)
- {
- if (isnan(x))
- {
- return true;
- }
- double y = trunc(x);
- return y != (int64_t)x;
- }
- inline bool CheckConvertOverflow_f8_u8(double x)
- {
- if (isnan(x) || x < 0)
- {
- return true;
- }
- double y = trunc(x);
- return y != (uint64_t)x;
- }
- inline int32_t HiDiv(int32_t a, int32_t b)
- {
- if (b == 0)
- {
- il2cpp::vm::Exception::RaiseDivideByZeroException();
- }
- else if (a == kIl2CppInt32Min && b == -1)
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- return a / b;
- }
- inline int64_t HiDiv(int64_t a, int64_t b)
- {
- if (b == 0)
- {
- il2cpp::vm::Exception::RaiseDivideByZeroException();
- }
- else if (a == kIl2CppInt64Min && b == -1)
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- return a / b;
- }
- inline float HiDiv(float a, float b)
- {
- return a / b;
- }
- inline double HiDiv(double a, double b)
- {
- return a / b;
- }
- inline int32_t HiMulUn(int32_t a, int32_t b)
- {
- return (uint32_t)a * (uint32_t)b;
- }
- inline int64_t HiMulUn(int64_t a, int64_t b)
- {
- return (uint64_t)a * (uint64_t)b;
- }
- inline int32_t HiDivUn(int32_t a, int32_t b)
- {
- if (b == 0)
- {
- il2cpp::vm::Exception::RaiseDivideByZeroException();
- }
- return (uint32_t)a / (uint32_t)b;
- }
- inline int64_t HiDivUn(int64_t a, int64_t b)
- {
- if (b == 0)
- {
- il2cpp::vm::Exception::RaiseDivideByZeroException();
- }
- return (uint64_t)a / (uint64_t)b;
- }
- inline float HiRem(float a, float b)
- {
- return std::fmod(a, b);
- }
- inline double HiRem(double a, double b)
- {
- return std::fmod(a, b);
- }
- inline int32_t HiRem(int32_t a, int32_t b)
- {
- if (b == 0)
- {
- il2cpp::vm::Exception::RaiseDivideByZeroException();
- }
- else if (a == kIl2CppInt32Min && b == -1)
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- return a % b;
- }
- inline int64_t HiRem(int64_t a, int64_t b)
- {
- if (b == 0)
- {
- il2cpp::vm::Exception::RaiseDivideByZeroException();
- }
- else if (a == kIl2CppInt64Min && b == -1)
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- return a % b;
- }
- inline uint32_t HiRemUn(int32_t a, int32_t b)
- {
- if (b == 0)
- {
- il2cpp::vm::Exception::RaiseDivideByZeroException();
- }
- return (uint32_t)a % (uint32_t)b;
- }
- inline uint64_t HiRemUn(int64_t a, int64_t b)
- {
- if (b == 0)
- {
- il2cpp::vm::Exception::RaiseDivideByZeroException();
- }
- return (uint64_t)a % (uint64_t)b;
- }
- inline uint32_t HiShrUn(int32_t a, int64_t b)
- {
- return (uint32_t)a >> b;
- }
- inline uint32_t HiShrUn(int32_t a, int32_t b)
- {
- return (uint32_t)a >> b;
- }
- inline uint64_t HiShrUn(int64_t a, int32_t b)
- {
- return (uint64_t)a >> b;
- }
- inline uint64_t HiShrUn(int64_t a, int64_t b)
- {
- return (uint64_t)a >> b;
- }
- inline void HiCheckFinite(float x)
- {
- if (std::isinf(x) || std::isnan(x))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- }
- inline void HiCheckFinite(double x)
- {
- if (std::isinf(x) || std::isnan(x))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- }
- template<typename T> bool CompareCeq(T a, T b) { return a == b; }
- template<typename T> bool CompareCne(T a, T b) { return a != b; }
- template<typename T> bool CompareCgt(T a, T b) { return a > b; }
- template<typename T> bool CompareCge(T a, T b) { return a >= b; }
- template<typename T> bool CompareClt(T a, T b) { return a < b; }
- template<typename T> bool CompareCle(T a, T b) { return a <= b; }
- inline bool CompareCneUn(int32_t a, int32_t b) { return (uint32_t)a != (uint32_t)b; }
- inline bool CompareCgtUn(int32_t a, int32_t b) { return (uint32_t)a > (uint32_t)b; }
- inline bool CompareCgeUn(int32_t a, int32_t b) { return (uint32_t)a >= (uint32_t)b; }
- inline bool CompareCltUn(int32_t a, int32_t b) { return (uint32_t)a < (uint32_t)b; }
- inline bool CompareCleUn(int32_t a, int32_t b) { return (uint32_t)a <= (uint32_t)b; }
- inline bool CompareCneUn(int64_t a, int64_t b) { return (uint64_t)a != (uint64_t)b; }
- inline bool CompareCgtUn(int64_t a, int64_t b) { return (uint64_t)a > (uint64_t)b; }
- inline bool CompareCgeUn(int64_t a, int64_t b) { return (uint64_t)a >= (uint64_t)b; }
- inline bool CompareCltUn(int64_t a, int64_t b) { return (uint64_t)a < (uint64_t)b; }
- inline bool CompareCleUn(int64_t a, int64_t b) { return (uint64_t)a <= (uint64_t)b; }
- inline bool CompareCneUn(float a, float b) { return a != b; }
- inline bool CompareCgtUn(float a, float b) { return a > b; }
- inline bool CompareCgeUn(float a, float b) { return a >= b; }
- inline bool CompareCltUn(float a, float b) { return a < b; }
- inline bool CompareCleUn(float a, float b) { return a <= b; }
- inline bool CompareCneUn(double a, double b) { return a != b; }
- inline bool CompareCgtUn(double a, double b) { return a > b; }
- inline bool CompareCgeUn(double a, double b) { return a >= b; }
- inline bool CompareCltUn(double a, double b) { return a < b; }
- inline bool CompareCleUn(double a, double b) { return a <= b; }
- #pragma endregion
- #pragma region object
- inline void INIT_CLASS(Il2CppClass* klass)
- {
- il2cpp::vm::ClassInlines::InitFromCodegen(klass);
- }
- inline void CHECK_NOT_NULL_THROW(const void* ptr)
- {
- if (!ptr)
- {
- il2cpp::vm::Exception::RaiseNullReferenceException();
- }
- }
- inline void CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(Il2CppArray* arr, int64_t index)
- {
- CHECK_NOT_NULL_THROW(arr);
- if (arr->max_length <= (il2cpp_array_size_t)index)
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetIndexOutOfRangeException());
- }
- }
- inline void CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(Il2CppArray* arr, int32_t startIndex, int32_t length)
- {
- CHECK_NOT_NULL_THROW(arr);
- if (arr->max_length <= (il2cpp_array_size_t)startIndex || arr->max_length - (il2cpp_array_size_t)startIndex < (il2cpp_array_size_t)length)
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetIndexOutOfRangeException());
- }
- }
- inline void CHECK_NOT_NULL_AND_ARRAY_BOUNDARY2(Il2CppArray* arr, int32_t startIndex, int32_t length)
- {
- CHECK_NOT_NULL_THROW(arr);
- if (arr->max_length <= (il2cpp_array_size_t)startIndex || arr->max_length - (il2cpp_array_size_t)startIndex < (il2cpp_array_size_t)length)
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetArgumentOutOfRangeException(""));
- }
- }
- inline void CHECK_TYPE_MATCH_ELSE_THROW(Il2CppClass* klass1, Il2CppClass* klass2)
- {
- if (klass1 != klass2)
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetArrayTypeMismatchException());
- }
- }
- inline void CheckArrayElementTypeMatch(Il2CppClass* arrKlass, Il2CppClass* eleKlass)
- {
- if (il2cpp::vm::Class::GetElementClass(arrKlass) != eleKlass)
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetArrayTypeMismatchException());
- }
- }
- inline void CheckArrayElementTypeCompatible(Il2CppArray* arr, Il2CppObject* ele)
- {
- if (ele && !il2cpp::vm::Class::IsAssignableFrom(arr->klass->element_class, ele->klass))
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetArrayTypeMismatchException());
- }
- }
- inline MethodInfo* GET_OBJECT_VIRTUAL_METHOD(Il2CppObject* obj, const MethodInfo* method)
- {
- CHECK_NOT_NULL_THROW(obj);
- const MethodInfo* result;
- if (hybridclr::metadata::IsVirtualMethod(method->flags))
- {
- if (hybridclr::metadata::IsInterface(method->klass->flags))
- {
- result = il2cpp_codegen_get_interface_invoke_data(method->slot, obj, method->klass).method;
- }
- else
- {
- result = il2cpp_codegen_get_virtual_invoke_data(method->slot, obj).method;
- }
- IL2CPP_ASSERT(!method->genericMethod || method->is_inflated);
- if (method->genericMethod && method->genericMethod->context.method_inst/* && method->genericMethod*/) // means it's genericInstance method 或generic method
- {
- result = GetGenericVirtualMethod(result, method);
- }
- }
- else
- {
- result = method;
- }
- return const_cast<MethodInfo*>(result);
- }
- #define GET_OBJECT_INTERFACE_METHOD(obj, intfKlass, slot) (MethodInfo*)nullptr
- inline void* HiUnbox(Il2CppObject* obj, Il2CppClass* klass)
- {
- if (il2cpp::vm::Class::IsNullable(klass))
- {
- if (!obj)
- {
- return nullptr;
- }
- klass = il2cpp::vm::Class::GetNullableArgument(klass);
- }
- return UnBox(obj, klass);
- }
- inline void CopyObjectData2StackDataByType(void* dst, void* src, Il2CppClass* klass)
- {
- IL2CPP_ASSERT(IS_CLASS_VALUE_TYPE(klass));
- Il2CppTypeEnum type = klass->enumtype ? klass->castClass->byval_arg.type : klass->byval_arg.type;
- switch (type)
- {
- case IL2CPP_TYPE_BOOLEAN:
- case IL2CPP_TYPE_I1:
- *(int32_t*)dst = *(int8_t*)src;
- break;
- case IL2CPP_TYPE_U1:
- *(int32_t*)dst = *(uint8_t*)src;
- break;
- case IL2CPP_TYPE_I2:
- *(int32_t*)dst = *(int16_t*)src;
- break;
- case IL2CPP_TYPE_U2:
- case IL2CPP_TYPE_CHAR:
- *(int32_t*)dst = *(uint16_t*)src;
- break;
- case IL2CPP_TYPE_I4:
- case IL2CPP_TYPE_U4:
- case IL2CPP_TYPE_R4:
- *(int32_t*)dst = *(int32_t*)src;
- break;
- case IL2CPP_TYPE_I8:
- case IL2CPP_TYPE_U8:
- case IL2CPP_TYPE_R8:
- *(int64_t*)dst = *(int64_t*)src;
- break;
- case IL2CPP_TYPE_I:
- case IL2CPP_TYPE_U:
- #if HYBRIDCLR_ARCH_64
- * (int64_t*)dst = *(int64_t*)src;
- #else
- * (int32_t*)dst = *(int32_t*)src;
- #endif
- break;
- default:
- int32_t dataSize = klass->instance_size - sizeof(Il2CppObject);
- if (dataSize <= sizeof(StackObject))
- {
- *(StackObject*)dst = *(StackObject*)src;
- }
- else
- {
- std::memmove(dst, src, dataSize);
- }
- break;
- }
- }
- inline void HiUnboxAny2StackObject(Il2CppObject* obj, Il2CppClass* klass, void* data)
- {
- if (il2cpp::vm::Class::IsNullable(klass))
- {
- #if HYBRIDCLR_UNITY_2021_OR_NEW
- // il2cpp modify argument meaning in 2021
- UnBoxNullable(obj, klass, data);
- #else
- UnBoxNullable(obj, klass->element_class, data);
- #endif
- }
- else
- {
- CopyObjectData2StackDataByType(data, UnBox(obj, klass), klass);
- }
- }
- inline void HiCastClass(Il2CppObject* obj, Il2CppClass* klass)
- {
- if (obj != nullptr && !il2cpp::vm::Class::IsAssignableFrom(klass, obj->klass))
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetInvalidCastException("cast fail"), nullptr);
- }
- }
- inline Il2CppTypedRef MAKE_TYPEDREFERENCE(Il2CppClass* klazz, void* ptr)
- {
- return Il2CppTypedRef{ &klazz->byval_arg, ptr, klazz };
- }
- inline void* RefAnyType(Il2CppTypedRef ref)
- {
- return (void*)ref.type;
- }
- inline void* RefAnyValue(Il2CppTypedRef ref, Il2CppClass* klass)
- {
- if (klass != ref.klass)
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetInvalidCastException(klass->name));
- }
- return ref.value;
- }
- #define MAX_DIMENSION 10
- inline void SetArrayElementWithSize(Il2CppArray* array, uint32_t elementSize, int32_t index, void* value)
- {
- void* __p = (void*) il2cpp_array_addr_with_size (array, elementSize, index);
- memcpy(__p, value, elementSize);
- }
-
- inline Il2CppArray* NewMdArray(Il2CppClass* fullArrKlass, StackObject* lengths, StackObject* lowerBounds)
- {
- il2cpp_array_size_t arrLengths[MAX_DIMENSION];
- il2cpp_array_size_t arrLowerBounds[MAX_DIMENSION];
- switch (fullArrKlass->rank)
- {
- case 1:
- {
- arrLengths[0] = lengths[0].i32;
- if (lowerBounds)
- {
- arrLowerBounds[0] = lowerBounds[0].i32;
- }
- break;
- }
- case 2:
- {
- arrLengths[0] = lengths[0].i32;
- arrLengths[1] = lengths[1].i32;
- if (lowerBounds)
- {
- arrLowerBounds[0] = lowerBounds[0].i32;
- arrLowerBounds[1] = lowerBounds[1].i32;
- }
- break;
- }
- default:
- {
- for (uint8_t i = 0; i < fullArrKlass->rank; i++)
- {
- arrLengths[i] = lengths[i].i32;
- if (lowerBounds)
- {
- arrLowerBounds[i] = lowerBounds[i].i32;
- }
- }
- break;
- }
- }
- return il2cpp::vm::Array::NewFull(fullArrKlass, arrLengths, lowerBounds ? arrLowerBounds : nullptr);
- }
- inline void* GetMdArrayElementAddress(Il2CppArray* arr, StackObject* indexs)
- {
- CHECK_NOT_NULL_THROW(arr);
- Il2CppClass* klass = arr->klass;
- uint32_t eleSize = klass->element_size;
- Il2CppArrayBounds* bounds = arr->bounds;
- char* arrayStart = il2cpp::vm::Array::GetFirstElementAddress(arr);
- switch (klass->rank)
- {
- case 1:
- {
- Il2CppArrayBounds& bound = bounds[0];
- il2cpp_array_size_t idx = (il2cpp_array_size_t)(indexs[0].i32 - bound.lower_bound);
- if (idx < bound.length)
- {
- return arrayStart + (idx * eleSize);
- }
- else
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetIndexOutOfRangeException());
- }
- break;
- }
- case 2:
- {
- Il2CppArrayBounds& bound0 = bounds[0];
- il2cpp_array_size_t idx0 = (il2cpp_array_size_t)(indexs[0].i32 - bound0.lower_bound);
- Il2CppArrayBounds& bound1 = bounds[1];
- il2cpp_array_size_t idx1 = (il2cpp_array_size_t)(indexs[1].i32 - bound1.lower_bound);
- if (idx0 < bound0.length && idx1 < bound1.length)
- {
- return arrayStart + ((idx0 * bound1.length) + idx1) * eleSize;
- }
- else
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetIndexOutOfRangeException());
- }
- break;
- }
- case 3:
- {
- Il2CppArrayBounds& bound0 = bounds[0];
- il2cpp_array_size_t idx0 = (il2cpp_array_size_t)(indexs[0].i32 - bound0.lower_bound);
- Il2CppArrayBounds& bound1 = bounds[1];
- il2cpp_array_size_t idx1 = (il2cpp_array_size_t)(indexs[1].i32 - bound1.lower_bound);
- Il2CppArrayBounds& bound2 = bounds[2];
- il2cpp_array_size_t idx2 = (il2cpp_array_size_t)(indexs[2].i32 - bound2.lower_bound);
- if (idx0 < bound0.length && idx1 < bound1.length && idx2 < bound2.length)
- {
- return arrayStart + ((idx0 * bound1.length + idx1) * bound2.length + idx2) * eleSize;
- }
- else
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetIndexOutOfRangeException());
- }
- break;
- }
- default:
- {
- IL2CPP_ASSERT(klass->rank > 0);
- il2cpp_array_size_t totalIdx = 0;
- for (uint8_t i = 0; i < klass->rank; i++)
- {
- Il2CppArrayBounds& bound = bounds[i];
- il2cpp_array_size_t idx = (il2cpp_array_size_t)(indexs[i].i32 - bound.lower_bound);
- if (idx < bound.length)
- {
- totalIdx = totalIdx * bound.length + idx;
- }
- else
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetIndexOutOfRangeException());
- }
- }
- return arrayStart + totalIdx * eleSize;
- }
- }
- }
- template<typename T> void GetMdArrayElementExpandToStack(Il2CppArray* arr, StackObject* indexs, void* value)
- {
- CHECK_NOT_NULL_THROW(arr);
- *(int32_t*)value = *(T*)GetMdArrayElementAddress(arr, indexs);
- }
- template<typename T> void GetMdArrayElementCopyToStack(Il2CppArray* arr, StackObject* indexs, void* value)
- {
- CHECK_NOT_NULL_THROW(arr);
- *(T*)value = *(T*)GetMdArrayElementAddress(arr, indexs);
- }
- inline void GetMdArrayElementBySize(Il2CppArray* arr, StackObject* indexs, void* value)
- {
- CopyBySize(value, GetMdArrayElementAddress(arr, indexs), arr->klass->element_size);
- }
- inline void SetMdArrayElement(Il2CppArray* arr, StackObject* indexs, void* value)
- {
- CopyBySize(GetMdArrayElementAddress(arr, indexs), value, arr->klass->element_size);
- }
- inline void SetMdArrayElementWriteBarrier(Il2CppArray* arr, StackObject* indexs, void* value)
- {
- void* dst = GetMdArrayElementAddress(arr, indexs);
- uint32_t eleSize = arr->klass->element_size;
- CopyBySize(dst, value, eleSize);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)dst, eleSize);
- }
- #pragma endregion
- #pragma region nullable
- inline void InitNullableValueType(void* nullableValueTypeObj, void* data, Il2CppClass* klass)
- {
- IL2CPP_ASSERT(klass->castClass->size_inited);
- uint32_t size = klass->castClass->instance_size - sizeof(Il2CppObject);
- void* dataPtr = GetNulllableDataOffset(nullableValueTypeObj, klass);
- std::memmove(dataPtr, data, size);
- #if HYBRIDCLR_ENABLE_WRITE_BARRIERS
- if (klass->castClass->has_references)
- {
- HYBRIDCLR_SET_WRITE_BARRIER((void**)dataPtr, size);
- }
- #endif
- *GetNulllableHasValueOffset(nullableValueTypeObj, klass) = 1;
- }
- inline void NewNullableValueType(void* nullableValueTypeObj, void* data, Il2CppClass* klass)
- {
- IL2CPP_ASSERT(klass->castClass->size_inited);
- uint32_t size = klass->castClass->instance_size - sizeof(Il2CppObject);
- std::memmove(GetNulllableDataOffset(nullableValueTypeObj, klass), data, size);
- *GetNulllableHasValueOffset(nullableValueTypeObj, klass) = 1;
- }
- inline bool IsNullableHasValue(void* nullableValueObj, Il2CppClass* klass)
- {
- IL2CPP_ASSERT(klass->castClass->size_inited);
- return *(GetNulllableHasValueOffset(nullableValueObj, klass));
- }
-
- inline void GetNullableValueOrDefault2StackDataByType(void* dst, void* nullableValueObj, Il2CppClass* klass)
- {
- Il2CppClass* eleClass = klass->castClass;
- IL2CPP_ASSERT(eleClass->size_inited);
- uint32_t size = eleClass->instance_size - sizeof(Il2CppObject);
- bool notNull = *GetNulllableHasValueOffset(nullableValueObj, klass);
- void* srcData = GetNulllableDataOffset(nullableValueObj, klass);
- LabelGet:
- IL2CPP_ASSERT(IS_CLASS_VALUE_TYPE(eleClass));
- switch (eleClass->byval_arg.type)
- {
- case IL2CPP_TYPE_BOOLEAN:
- {
- *(int32_t*)dst = notNull ? *(uint8_t*)srcData : 0;
- break;
- }
- case IL2CPP_TYPE_I1:
- {
- *(int32_t*)dst = notNull ? *(int8_t*)srcData : 0;
- break;
- }
- case IL2CPP_TYPE_U1:
- {
- *(int32_t*)dst = notNull ? *(uint8_t*)srcData : 0;
- break;
- }
- case IL2CPP_TYPE_I2:
- {
- *(int32_t*)dst = notNull ? *(int16_t*)srcData : 0;
- break;
- }
- case IL2CPP_TYPE_U2:
- case IL2CPP_TYPE_CHAR:
- {
- *(int32_t*)dst = notNull ? *(uint16_t*)srcData : 0;
- break;
- }
- case IL2CPP_TYPE_I4:
- case IL2CPP_TYPE_U4:
- {
- *(int32_t*)dst = notNull ? *(int32_t*)srcData : 0;
- break;
- }
- case IL2CPP_TYPE_I8:
- case IL2CPP_TYPE_U8:
- {
- *(int64_t*)dst = notNull ? *(int64_t*)srcData : 0;
- break;
- }
- case IL2CPP_TYPE_R4:
- {
- *(float*)dst = notNull ? *(float*)srcData : 0;
- break;
- }
- case IL2CPP_TYPE_R8:
- {
- *(double*)dst = notNull ? *(double*)srcData : 0.0;
- break;
- }
- case IL2CPP_TYPE_I:
- case IL2CPP_TYPE_U:
- {
- #if HYBRIDCLR_ARCH_64
- * (int64_t*)dst = notNull ? *(int64_t*)srcData : 0;
- #else
- * (int32_t*)dst = notNull ? *(int32_t*)srcData : 0;
- #endif
- break;
- }
- case IL2CPP_TYPE_VALUETYPE:
- case IL2CPP_TYPE_GENERICINST:
- {
- if (eleClass->enumtype)
- {
- eleClass = eleClass->castClass;
- goto LabelGet;
- }
- if (notNull)
- {
- std::memmove(dst, srcData, size);
- }
- else
- {
- std::memset(dst, 0, size);
- }
- break;
- }
- default:
- {
- RaiseExecutionEngineException("GetNullableValueOrDefault2StackDataByType");
- }
- }
- }
- inline void GetNullableValueOrDefault2StackDataByType(void* dst, void* nullableValueObj, void* defaultData, Il2CppClass* klass)
- {
- Il2CppClass* eleClass = klass->castClass;
- IL2CPP_ASSERT(eleClass->size_inited);
- uint32_t size = eleClass->instance_size - sizeof(Il2CppObject);
- void* srcData;
- bool notNull = *GetNulllableHasValueOffset(nullableValueObj, klass);
- if (notNull)
- {
- srcData = GetNulllableDataOffset(nullableValueObj, klass);
- }
- else
- {
- if (defaultData == nullptr)
- {
- il2cpp::vm::Exception::Raise(il2cpp::vm::Exception::GetInvalidOperationException("Nullable object must have a value."));
- }
- srcData = defaultData;
- }
- LabelGet:
- switch (eleClass->byval_arg.type)
- {
- case IL2CPP_TYPE_BOOLEAN:
- {
- *(int32_t*)dst = *(uint8_t*)srcData;
- break;
- }
- case IL2CPP_TYPE_CHAR:
- {
- *(int32_t*)dst = *(uint16_t*)srcData;
- break;
- }
- case IL2CPP_TYPE_I1:
- {
- *(int32_t*)dst = *(int8_t*)srcData;
- break;
- }
- case IL2CPP_TYPE_U1:
- {
- *(int32_t*)dst = *(uint8_t*)srcData;
- break;
- }
- case IL2CPP_TYPE_I2:
- {
- *(int32_t*)dst = *(int16_t*)srcData;
- break;
- }
- case IL2CPP_TYPE_U2:
- {
- *(int32_t*)dst = *(uint16_t*)srcData;
- break;
- }
- case IL2CPP_TYPE_I4:
- case IL2CPP_TYPE_U4:
- {
- *(int32_t*)dst = *(int32_t*)srcData;
- break;
- }
- case IL2CPP_TYPE_I8:
- case IL2CPP_TYPE_U8:
- {
- *(int64_t*)dst = *(int64_t*)srcData;
- break;
- }
- case IL2CPP_TYPE_R4:
- {
- *(float*)dst = *(float*)srcData;
- break;
- }
- case IL2CPP_TYPE_R8:
- {
- *(double*)dst = *(double*)srcData;
- break;
- }
- case IL2CPP_TYPE_I:
- case IL2CPP_TYPE_U:
- {
- #if HYBRIDCLR_ARCH_64
- * (int64_t*)dst = *(int64_t*)srcData;
- #else
- * (int32_t*)dst = *(int32_t*)srcData;
- #endif
- break;
- }
- case IL2CPP_TYPE_VALUETYPE:
- case IL2CPP_TYPE_GENERICINST:
- {
- if (eleClass->enumtype)
- {
- eleClass = eleClass->castClass;
- goto LabelGet;
- }
- std::memmove(dst, srcData, size);
- break;
- }
- default:
- {
- RaiseExecutionEngineException("GetNullableValue2StackDataByType");
- }
- }
- }
- #pragma endregion
- #pragma region misc
- // not boxed data
- inline int32_t HiInterlockedCompareExchange(int32_t* location, int32_t newValue, int32_t oldValue)
- {
- return il2cpp::icalls::mscorlib::System::Threading::Interlocked::CompareExchange(location, newValue, oldValue);
- }
- inline int64_t HiInterlockedCompareExchange(int64_t* location, int64_t newValue, int64_t oldValue)
- {
- return il2cpp::icalls::mscorlib::System::Threading::Interlocked::CompareExchange64(location, newValue, oldValue);
- }
- inline void* HiInterlockedCompareExchange(void** location, void* newValue, void* oldValue)
- {
- return il2cpp::icalls::mscorlib::System::Threading::Interlocked::CompareExchange_T(location, newValue, oldValue);
- }
- inline int32_t HiInterlockedExchange(int32_t* location, int32_t newValue)
- {
- return il2cpp::icalls::mscorlib::System::Threading::Interlocked::Exchange(location, newValue);
- }
- inline int64_t HiInterlockedExchange(int64_t* location, int64_t newValue)
- {
- return il2cpp::icalls::mscorlib::System::Threading::Interlocked::Exchange64(location, newValue);
- }
- inline void* HiInterlockedExchange(void** location, void* newValue)
- {
- return il2cpp::icalls::mscorlib::System::Threading::Interlocked::ExchangePointer(location, newValue);
- }
- #define MEMORY_BARRIER() il2cpp::os::Atomic::FullMemoryBarrier()
- inline int32_t UnsafeEnumCast(void* src, uint16_t type)
- {
- switch ((Il2CppTypeEnum)type)
- {
- case IL2CPP_TYPE_BOOLEAN: return *(int8_t*)src;
- case IL2CPP_TYPE_CHAR: return *(uint16_t*)src;
- case IL2CPP_TYPE_I1: return *(int8_t*)src;
- case IL2CPP_TYPE_U1: return *(uint8_t*)src;
- case IL2CPP_TYPE_I2: return *(int16_t*)src;
- case IL2CPP_TYPE_U2: return *(uint16_t*)src;
- case IL2CPP_TYPE_I4: return *(int32_t*)src;
- case IL2CPP_TYPE_U4: return *(uint32_t*)src;
- default: RaiseExecutionEngineException("UnsafeEnumCast not support type"); return -1;
- }
- }
- // align with the implementation of Enum::get_hashcode
- inline int32_t GetEnumLongHashCode(void* data)
- {
- int64_t value = *((int64_t*)data);
- return (int32_t)(value & 0xffffffff) ^ (int32_t)(value >> 32);
- }
- inline void ConstructorDelegate2(MethodInfo* ctor, Il2CppDelegate* del, Il2CppObject* target, MethodInfo* method)
- {
- #if HYBRIDCLR_UNITY_2021_OR_NEW
- void* ctorArgs[2] = { target, (void*)&method };
- ctor->invoker_method(ctor->methodPointer, ctor, del, ctorArgs, NULL);
- #else
- RaiseNotSupportedException("ConstructorDelegate2");
- #endif
- }
- #pragma endregion
- #pragma region function
- #define SAVE_CUR_FRAME(nextIp) { \
- frame->ip = nextIp; \
- }
- #define LOAD_PREV_FRAME() { \
- imi = (const InterpMethodInfo*)frame->method->interpData; \
- ip = frame->ip; \
- frame->ip = (byte*)&ip; \
- ipBase = imi->codes; \
- localVarBase = frame->stackBasePtr; \
- }
- #define PREPARE_NEW_FRAME_FROM_NATIVE(newMethodInfo, argBasePtr, retPtr) { \
- imi = newMethodInfo->interpData ? (InterpMethodInfo*)newMethodInfo->interpData : InterpreterModule::GetInterpMethodInfo(newMethodInfo); \
- frame = interpFrameGroup.EnterFrameFromNative(newMethodInfo, argBasePtr); \
- frame->ret = retPtr; \
- frame->ip = (byte*)&ip; \
- ip = ipBase = imi->codes; \
- localVarBase = frame->stackBasePtr; \
- }
- #define PREPARE_NEW_FRAME_FROM_INTERPRETER(newMethodInfo, argBasePtr, retPtr) { \
- imi = newMethodInfo->interpData ? (InterpMethodInfo*)newMethodInfo->interpData : InterpreterModule::GetInterpMethodInfo(newMethodInfo); \
- frame = interpFrameGroup.EnterFrameFromInterpreter(newMethodInfo, argBasePtr); \
- frame->ret = retPtr; \
- frame->ip = (byte*)&ip; \
- ip = ipBase = imi->codes; \
- localVarBase = frame->stackBasePtr; \
- }
- #define LEAVE_FRAME() { \
- frame = interpFrameGroup.LeaveFrame(); \
- if (frame) \
- { \
- LOAD_PREV_FRAME(); \
- }\
- else \
- { \
- goto ExitEvalLoop; \
- } \
- }
- #define SET_RET_AND_LEAVE_FRAME(nativeSize, interpSize) { \
- void* _curRet = frame->ret; \
- frame = interpFrameGroup.LeaveFrame(); \
- if (frame) \
- { \
- Copy##interpSize(_curRet, (void*)(localVarBase + __ret)); \
- LOAD_PREV_FRAME(); \
- }\
- else \
- { \
- Copy##nativeSize(_curRet, (void*)(localVarBase + __ret)); \
- goto ExitEvalLoop; \
- } \
- }
- #define CALL_INTERP_VOID(nextIp, methodInfo, argBasePtr) { \
- SAVE_CUR_FRAME(nextIp) \
- PREPARE_NEW_FRAME_FROM_INTERPRETER(methodInfo, argBasePtr, nullptr); \
- }
- #define CALL_INTERP_RET(nextIp, methodInfo, argBasePtr, retPtr) { \
- SAVE_CUR_FRAME(nextIp) \
- PREPARE_NEW_FRAME_FROM_INTERPRETER(methodInfo, argBasePtr, retPtr); \
- }
- #pragma endregion
- #pragma region delegate
- inline void InvokeSingleDelegate(uint16_t invokeParamCount, const MethodInfo * method, Il2CppObject * obj, Managed2NativeCallMethod staticM2NMethod, Managed2NativeCallMethod instanceM2NMethod, uint16_t * argIdxs, StackObject * localVarBase, void* ret)
- {
- if (!InitAndGetInterpreterDirectlyCallMethodPointer(method))
- {
- RaiseAOTGenericMethodNotInstantiatedException(method);
- }
- if (!InterpreterModule::HasImplementCallNative2Managed(method))
- {
- instanceM2NMethod = staticM2NMethod = InterpreterModule::Managed2NativeCallByReflectionInvoke;
- }
- StackObject* target;
- switch ((int32_t)invokeParamCount - (int32_t)method->parameters_count)
- {
- case 0:
- {
- if (hybridclr::metadata::IsInstanceMethod(method))
- {
- CHECK_NOT_NULL_THROW(obj);
- target = localVarBase + argIdxs[0];
- target->obj = obj + IS_CLASS_VALUE_TYPE(method->klass);
- instanceM2NMethod(method, argIdxs, localVarBase, ret);
- }
- else
- {
- RuntimeInitClassCCtor(method);
- staticM2NMethod(method, argIdxs + 1, localVarBase, ret);
- }
- break;
- }
- case -1:
- {
- IL2CPP_ASSERT(!hybridclr::metadata::IsInstanceMethod(method));
- target = localVarBase + argIdxs[0];
- target->obj = obj;
- instanceM2NMethod(method, argIdxs, localVarBase, ret);
- break;
- }
- case 1:
- {
- IL2CPP_ASSERT(invokeParamCount == method->parameters_count + 1);
- IL2CPP_ASSERT(hybridclr::metadata::IsInstanceMethod(method));
- target = localVarBase + argIdxs[1];
- CHECK_NOT_NULL_THROW(target->obj);
- staticM2NMethod(method, argIdxs + 1, localVarBase, ret);
- break;
- }
- default:
- {
- RaiseExecutionEngineException("bad delegate");
- }
- }
- }
- inline Il2CppObject* InvokeDelegateBeginInvoke(const MethodInfo* method, uint16_t* argIdxs, StackObject* localVarBase)
- {
- int32_t paramCount = method->parameters_count;
- RuntimeDelegate* del = (RuntimeDelegate*)localVarBase[argIdxs[0]].obj;
- CHECK_NOT_NULL_THROW(del);
- RuntimeDelegate* callBack = (RuntimeDelegate*)localVarBase[argIdxs[paramCount - 1]].obj;
- RuntimeObject* ctx = (RuntimeObject*)localVarBase[argIdxs[paramCount]].obj;
- void* newArgs[256];
- newArgs[paramCount - 1] = {};
- for (int i = 0; i < paramCount - 2; i++)
- {
- const Il2CppType* argType = GET_METHOD_PARAMETER_TYPE(method->parameters[i]);
- StackObject* argSrc = localVarBase + argIdxs[i+1];
- void** argDst = newArgs + i;
- if (argType->byref)
- {
- argSrc = (StackObject*)argSrc->ptr;
- }
- if (hybridclr::metadata::IsValueType(argType))
- {
- *argDst = il2cpp::vm::Object::Box(il2cpp::vm::Class::FromIl2CppType(argType), argSrc);
- }
- else
- {
- *argDst = argSrc->ptr;
- }
- }
- return (RuntimeObject*)il2cpp_codegen_delegate_begin_invoke((RuntimeDelegate*)del, (void**)newArgs, callBack, ctx);
- }
- inline void InvokeDelegateEndInvokeVoid(MethodInfo* method, Il2CppAsyncResult* asyncResult)
- {
- il2cpp_codegen_delegate_end_invoke(asyncResult, 0);
- }
- inline void InvokeDelegateEndInvokeRet(MethodInfo* method, Il2CppAsyncResult* asyncResult, void* ret)
- {
- Il2CppObject* result = il2cpp_codegen_delegate_end_invoke(asyncResult, 0);
- Il2CppClass* retKlass = il2cpp::vm::Class::FromIl2CppType(method->return_type);
- HiUnboxAny2StackObject(result, retKlass, ret);
- }
- #pragma endregion
- #pragma region exception
- constexpr int EXCEPTION_FLOW_INFO_ALLOC_BATCH_NUM = 3;
- inline void PushExceptionFlowInfo(InterpFrame* frame, MachineState& machine, const ExceptionFlowInfo& newExFlowInfo)
- {
- if (frame->exFlowCount >= frame->exFlowCapaticy)
- {
- ExceptionFlowInfo* newEfi = machine.AllocExceptionFlow(EXCEPTION_FLOW_INFO_ALLOC_BATCH_NUM);
- if (frame->exFlowBase == nullptr)
- {
- frame->exFlowBase = newEfi;
- }
- frame->exFlowCapaticy += EXCEPTION_FLOW_INFO_ALLOC_BATCH_NUM;
- }
- frame->exFlowBase[frame->exFlowCount++] = newExFlowInfo;
- }
- inline void PopPrevExceptionFlowInfo(InterpFrame* frame, ExceptionFlowInfo** curEx)
- {
- if (frame->exFlowCount >= 2)
- {
- frame->exFlowBase[frame->exFlowCount - 2] = frame->exFlowBase[frame->exFlowCount - 1];
- --frame->exFlowCount;
- if (curEx)
- {
- *curEx = frame->exFlowBase + frame->exFlowCount - 1;
- }
- }
- }
- inline void PopCurExceptionFlowInfo(InterpFrame* frame)
- {
- if (frame->exFlowCount >= 1)
- {
- --frame->exFlowCount;
- }
- }
- #define PREPARE_EXCEPTION(_ex_, _firstHanlderIndex_) PushExceptionFlowInfo(frame, machine, {ExceptionFlowType::Exception, (int32_t)(ip - ipBase), _ex_, _firstHanlderIndex_, 0});
- #define FIND_NEXT_EX_HANDLER_OR_UNWIND() \
- while (true) \
- { \
- ExceptionFlowInfo* efi = frame->GetCurExFlow(); \
- IL2CPP_ASSERT(efi && efi->exFlowType == ExceptionFlowType::Exception); \
- IL2CPP_ASSERT(efi->ex); \
- int32_t exClauseNum = (int32_t)imi->exClauseCount; \
- for (; efi->nextExClauseIndex < exClauseNum; ) \
- { \
- for (ExceptionFlowInfo* prevExFlow; (prevExFlow = frame->GetPrevExFlow()) && efi->nextExClauseIndex >= prevExFlow->nextExClauseIndex ;) {\
- const InterpExceptionClause* prevIec = &imi->exClauses[prevExFlow->nextExClauseIndex - 1]; \
- if (!(prevIec->handlerBeginOffset <= efi->throwOffset && efi->throwOffset < prevIec->handlerEndOffset)) { \
- PopPrevExceptionFlowInfo(frame, &efi);\
- } \
- else \
- { \
- break; \
- } \
- }\
- const InterpExceptionClause* iec = &imi->exClauses[efi->nextExClauseIndex++]; \
- if (iec->tryBeginOffset <= efi->throwOffset && efi->throwOffset < iec->tryEndOffset) \
- { \
- switch (iec->flags) \
- { \
- case CorILExceptionClauseType::Exception: \
- { \
- if (il2cpp::vm::Class::IsAssignableFrom(iec->exKlass, efi->ex->klass)) \
- { \
- ip = ipBase + iec->handlerBeginOffset; \
- StackObject* exObj = localVarBase + imi->evalStackBaseOffset; \
- exObj->obj = efi->ex; \
- efi->exFlowType = ExceptionFlowType::Catch;\
- goto LoopStart; \
- } \
- break; \
- } \
- case CorILExceptionClauseType::Filter: \
- { \
- ip = ipBase + iec->filterBeginOffset; \
- StackObject* exObj = localVarBase + imi->evalStackBaseOffset; \
- exObj->obj = efi->ex; \
- goto LoopStart; \
- } \
- case CorILExceptionClauseType::Finally: \
- { \
- ip = ipBase + iec->handlerBeginOffset; \
- goto LoopStart; \
- } \
- case CorILExceptionClauseType::Fault: \
- { \
- ip = ipBase + iec->handlerBeginOffset; \
- goto LoopStart; \
- } \
- default: \
- { \
- RaiseExecutionEngineException(""); \
- } \
- } \
- } \
- } \
- frame = interpFrameGroup.LeaveFrame(); \
- if (frame) \
- { \
- LOAD_PREV_FRAME(); \
- PREPARE_EXCEPTION(efi->ex, 0); \
- }\
- else \
- { \
- lastUnwindException = efi->ex; \
- goto UnWindFail; \
- } \
- }
- #define THROW_EX(_ex_, _firstHandlerIndex_) { \
- Il2CppException* ex = _ex_; \
- il2cpp::vm::Exception::PrepareExceptionForThrow(ex, const_cast<MethodInfo*>(frame->method));\
- CHECK_NOT_NULL_THROW(ex); \
- PREPARE_EXCEPTION(ex, _firstHandlerIndex_); \
- FIND_NEXT_EX_HANDLER_OR_UNWIND(); \
- }
- #define RETHROW_EX() { \
- ExceptionFlowInfo* curExFlow = frame->GetCurExFlow(); \
- IL2CPP_ASSERT(curExFlow->exFlowType == ExceptionFlowType::Catch); \
- il2cpp::vm::Exception::Raise(curExFlow->ex, const_cast<MethodInfo*>(frame->method)); \
- }
- #define CONTINUE_NEXT_FINALLY() { \
- ExceptionFlowInfo* efi = frame->GetCurExFlow(); \
- IL2CPP_ASSERT(efi && efi->exFlowType == ExceptionFlowType::Leave); \
- int32_t exClauseNum = (int32_t)imi->exClauseCount; \
- for (; efi->nextExClauseIndex < exClauseNum; ) \
- { \
- const InterpExceptionClause* iec = &imi->exClauses[efi->nextExClauseIndex++]; \
- if (iec->tryBeginOffset <= efi->throwOffset && efi->throwOffset < iec->tryEndOffset) \
- { \
- if (iec->tryBeginOffset <= efi->leaveTarget && efi->leaveTarget < iec->tryEndOffset) \
- { \
- break; \
- } \
- switch (iec->flags) \
- { \
- case CorILExceptionClauseType::Finally: \
- { \
- ip = ipBase + iec->handlerBeginOffset; \
- goto LoopStart; \
- } \
- case CorILExceptionClauseType::Exception: \
- case CorILExceptionClauseType::Filter: \
- case CorILExceptionClauseType::Fault: \
- { \
- break; \
- } \
- default: \
- { \
- RaiseExecutionEngineException(""); \
- } \
- } \
- } \
- } \
- ip = ipBase + efi->leaveTarget; \
- PopCurExceptionFlowInfo(frame); \
- }
- #define POP_PREV_CATCH_HANDLERS(leaveTarget)\
- { \
- for (ExceptionFlowInfo* prevExFlow; (prevExFlow = frame->GetPrevExFlow()) && prevExFlow->exFlowType == ExceptionFlowType::Catch ;) { \
- const InterpExceptionClause* prevIec = &imi->exClauses[prevExFlow->nextExClauseIndex - 1]; \
- if (!(prevIec->handlerBeginOffset <= leaveTarget && leaveTarget < prevIec->handlerEndOffset)) { \
- PopPrevExceptionFlowInfo(frame, nullptr); \
- } \
- else \
- { \
- break; \
- } \
- }\
- }
- #define LEAVE_EX(target, firstHandlerIndex) { \
- PushExceptionFlowInfo(frame, machine, {ExceptionFlowType::Leave, (int32_t)(ip - ipBase), nullptr, firstHandlerIndex + 1, target}); \
- const InterpExceptionClause* iec = &imi->exClauses[firstHandlerIndex]; \
- POP_PREV_CATCH_HANDLERS(target); \
- ip = ipBase + iec->handlerBeginOffset; \
- }
- #define POP_CUR_CATCH_HANDLERS(leaveTarget)\
- { \
- for (ExceptionFlowInfo* prevExFlow; (prevExFlow = frame->GetCurExFlow()) && prevExFlow->exFlowType == ExceptionFlowType::Catch ;) { \
- const InterpExceptionClause* prevIec = &imi->exClauses[prevExFlow->nextExClauseIndex - 1]; \
- if (!(prevIec->handlerBeginOffset <= leaveTarget && leaveTarget < prevIec->handlerEndOffset)) { \
- PopCurExceptionFlowInfo(frame); \
- } \
- else \
- { \
- break; \
- } \
- }\
- }
- #define LEAVE_EX_DIRECTLY(target) { \
- POP_CUR_CATCH_HANDLERS(target); \
- ip = ipBase + target; \
- }
- #define ENDFILTER_EX(value) {\
- ExceptionFlowInfo* curExFlow = frame->GetCurExFlow(); \
- IL2CPP_ASSERT(curExFlow->exFlowType == ExceptionFlowType::Exception); \
- if(!(value)) \
- {\
- FIND_NEXT_EX_HANDLER_OR_UNWIND();\
- } \
- else \
- { \
- curExFlow->exFlowType = ExceptionFlowType::Catch;\
- }\
- }
- #define ENDFINALLY_EX() {\
- ExceptionFlowInfo* curExFlow = frame->GetCurExFlow(); \
- if (curExFlow->exFlowType == ExceptionFlowType::Exception) \
- { \
- FIND_NEXT_EX_HANDLER_OR_UNWIND(); \
- } \
- else \
- { \
- CONTINUE_NEXT_FINALLY();\
- }\
- }
- #pragma endregion
- const int32_t kMaxRetValueTypeStackObjectSize = 1024;
- void Interpreter::Execute(const MethodInfo* methodInfo, StackObject* args, void* ret)
- {
- MachineState& machine = InterpreterModule::GetCurrentThreadMachineState();
- InterpFrameGroup interpFrameGroup(machine);
- const InterpMethodInfo* imi;
- InterpFrame* frame;
- StackObject* localVarBase;
- byte* ipBase;
- byte* ip;
- Il2CppException* lastUnwindException;
- StackObject* tempRet = nullptr;
- PREPARE_NEW_FRAME_FROM_NATIVE(methodInfo, args, ret);
- LoopStart:
- try
- {
- for (;;)
- {
- switch (*(HiOpcodeEnum*)ip)
- {
- #pragma region memory
- //!!!{{MEMORY
- case HiOpcodeEnum::InitLocals_n_2:
- {
- uint16_t __size = *(uint16_t*)(ip + 2);
- InitDefaultN(localVarBase + imi->localVarBaseOffset, __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitLocals_n_4:
- {
- uint32_t __size = *(uint32_t*)(ip + 4);
- InitDefaultN(localVarBase + imi->localVarBaseOffset, __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitInlineLocals_n_2:
- {
- uint16_t __size = *(uint16_t*)(ip + 2);
- uint32_t __offset = *(uint32_t*)(ip + 4);
- InitDefaultN(localVarBase + __offset, __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitInlineLocals_n_4:
- {
- uint32_t __size = *(uint32_t*)(ip + 4);
- uint32_t __offset = *(uint32_t*)(ip + 8);
- InitDefaultN(localVarBase + __offset, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdlocVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(uint64_t*)(localVarBase + __dst)) = (*(uint64_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdlocExpandVarVar_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(int8_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdlocExpandVarVar_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(uint8_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdlocExpandVarVar_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(int16_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdlocExpandVarVar_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(uint16_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdlocVarVarSize:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- std::memmove((void*)(localVarBase + __dst), (void*)(localVarBase + __src), __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdlocVarAddress:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(void**)(localVarBase + __dst)) = (void*)(localVarBase + __src);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdcVarConst_1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 4);
- uint8_t __src = *(uint8_t*)(ip + 2);
- (*(int32_t*)(localVarBase + __dst)) = __src;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdcVarConst_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = __src;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdcVarConst_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint32_t __src = *(uint32_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = __src;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdcVarConst_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint64_t __src = *(uint64_t*)(ip + 8);
- (*(uint64_t*)(localVarBase + __dst)) = __src;
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdnullVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- (*(void**)(localVarBase + __dst)) = nullptr;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(int8_t*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(uint8_t*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(int16_t*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(uint16_t*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(int32_t*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (*(uint32_t*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (*(int64_t*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)(localVarBase + __dst)) = (*(float*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdindVarVar_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)(localVarBase + __dst)) = (*(double*)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StindVarVar_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int8_t*)*(void**)(localVarBase + __dst)) = (*(int8_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StindVarVar_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int16_t*)*(void**)(localVarBase + __dst)) = (*(int16_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StindVarVar_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)*(void**)(localVarBase + __dst)) = (*(int32_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StindVarVar_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)*(void**)(localVarBase + __dst)) = (*(int64_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StindVarVar_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)*(void**)(localVarBase + __dst)) = (*(float*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StindVarVar_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)*(void**)(localVarBase + __dst)) = (*(double*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StindVarVar_ref:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(Il2CppObject**)*(void**)(localVarBase + __dst)) = (*(Il2CppObject**)(localVarBase + __src)); HYBRIDCLR_SET_WRITE_BARRIER((void**)(*(void**)(localVarBase + __dst)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LocalAllocVarVar_n_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __size = *(uint16_t*)(ip + 4);
- (*(void**)(localVarBase + __dst)) = LOCAL_ALLOC((*(uint16_t*)(localVarBase + __size)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LocalAllocVarVar_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __size = *(uint16_t*)(ip + 4);
- (*(void**)(localVarBase + __dst)) = LOCAL_ALLOC((*(uint32_t*)(localVarBase + __size)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitblkVarVarVar:
- {
- uint16_t __addr = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- std::memset((*(void**)(localVarBase + __addr)), (*(uint8_t*)(localVarBase + __value)), (*(uint32_t*)(localVarBase + __size)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpblkVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- std::memmove((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)), (*(uint32_t*)(localVarBase + __size)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::MemoryBarrier:
- {
- MEMORY_BARRIER();
- ip += 8;
- continue;
- }
- //!!!}}MEMORY
- #pragma endregion
- #pragma region CONVERT
- //!!!{{CONVERT
- case HiOpcodeEnum::ConvertVarVar_i4_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int8_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint8_t)(uint32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int16_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint16_t)(uint32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint32_t)(uint32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (int64_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (uint64_t)(uint32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)(localVarBase + __dst)) = (float)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i4_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)(localVarBase + __dst)) = (double)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int8_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint8_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int16_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint16_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int32_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint32_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (int64_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (uint64_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)(localVarBase + __dst)) = (float)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u4_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)(localVarBase + __dst)) = (double)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int8_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint8_t)(uint64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int16_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint16_t)(uint64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int32_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint32_t)(uint64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (int64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (uint64_t)(uint64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)(localVarBase + __dst)) = (float)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_i8_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)(localVarBase + __dst)) = (double)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int8_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint8_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int16_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint16_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (int32_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = (uint32_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (int64_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = (uint64_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)(localVarBase + __dst)) = (float)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_u8_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)(localVarBase + __dst)) = (double)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int8_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint8_t, int32_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int16_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint16_t, int32_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int32_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint32_t, int32_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int64_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint64_t, int64_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)(localVarBase + __dst)) = (float)((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f4_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)(localVarBase + __dst)) = (double)((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int8_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint8_t, int32_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int16_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint16_t, int32_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int32_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint32_t, int32_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int64_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint64_t, int64_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)(localVarBase + __dst)) = (float)((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertVarVar_f8_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)(localVarBase + __dst)) = (double)((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i4_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int32_t val = (*(int32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i4_i1(*(int32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int8_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i4_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int32_t val = (*(int32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i4_u1(*(int32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint8_t)(uint32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i4_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int32_t val = (*(int32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i4_i2(*(int32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int16_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i4_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int32_t val = (*(int32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i4_u2(*(int32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint16_t)(uint32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i4_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int32_t val = (*(int32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i4_i4(*(int32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i4_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int32_t val = (*(int32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i4_u4(*(int32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint32_t)(uint32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i4_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int32_t val = (*(int32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i4_i8(*(int32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = (int64_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i4_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int32_t val = (*(int32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i4_u8(*(int32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = (uint64_t)(uint32_t)((*(int32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u4_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t val = (*(uint32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u4_i1(*(uint32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int8_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u4_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t val = (*(uint32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u4_u1(*(uint32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint8_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u4_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t val = (*(uint32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u4_i2(*(uint32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int16_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u4_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t val = (*(uint32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u4_u2(*(uint32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint16_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u4_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t val = (*(uint32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u4_i4(*(uint32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int32_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u4_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t val = (*(uint32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u4_u4(*(uint32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint32_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u4_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t val = (*(uint32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u4_i8(*(uint32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = (int64_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u4_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t val = (*(uint32_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u4_u8(*(uint32_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = (uint64_t)((*(uint32_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i8_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int64_t val = (*(int64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i8_i1(*(int64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int8_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i8_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int64_t val = (*(int64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i8_u1(*(int64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint8_t)(uint64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i8_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int64_t val = (*(int64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i8_i2(*(int64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int16_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i8_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int64_t val = (*(int64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i8_u2(*(int64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint16_t)(uint64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i8_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int64_t val = (*(int64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i8_i4(*(int64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int32_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i8_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int64_t val = (*(int64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i8_u4(*(int64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint32_t)(uint64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i8_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int64_t val = (*(int64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i8_i8(*(int64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = (int64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_i8_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- int64_t val = (*(int64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_i8_u8(*(int64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = (uint64_t)(uint64_t)((*(int64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u8_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint64_t val = (*(uint64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u8_i1(*(uint64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int8_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u8_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint64_t val = (*(uint64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u8_u1(*(uint64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint8_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u8_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint64_t val = (*(uint64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u8_i2(*(uint64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int16_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u8_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint64_t val = (*(uint64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u8_u2(*(uint64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint16_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u8_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint64_t val = (*(uint64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u8_i4(*(uint64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (int32_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u8_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint64_t val = (*(uint64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u8_u4(*(uint64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = (uint32_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u8_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint64_t val = (*(uint64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u8_i8(*(uint64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = (int64_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_u8_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint64_t val = (*(uint64_t*)(localVarBase + __src));
- if (CheckConvertOverflow_u8_u8(*(uint64_t*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = (uint64_t)((*(uint64_t*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f4_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- float val = (*(float*)(localVarBase + __src));
- if (CheckConvertOverflow_f4_i1(*(float*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int8_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f4_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- float val = (*(float*)(localVarBase + __src));
- if (CheckConvertOverflow_f4_u1(*(float*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint8_t, int32_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f4_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- float val = (*(float*)(localVarBase + __src));
- if (CheckConvertOverflow_f4_i2(*(float*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int16_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f4_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- float val = (*(float*)(localVarBase + __src));
- if (CheckConvertOverflow_f4_u2(*(float*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint16_t, int32_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f4_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- float val = (*(float*)(localVarBase + __src));
- if (CheckConvertOverflow_f4_i4(*(float*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int32_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f4_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- float val = (*(float*)(localVarBase + __src));
- if (CheckConvertOverflow_f4_u4(*(float*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint32_t, int32_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f4_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- float val = (*(float*)(localVarBase + __src));
- if (CheckConvertOverflow_f4_i8(*(float*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int64_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f4_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- float val = (*(float*)(localVarBase + __src));
- if (CheckConvertOverflow_f4_u8(*(float*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint64_t, int64_t>((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f8_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- double val = (*(double*)(localVarBase + __src));
- if (CheckConvertOverflow_f8_i1(*(double*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int8_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f8_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- double val = (*(double*)(localVarBase + __src));
- if (CheckConvertOverflow_f8_u1(*(double*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint8_t, int32_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f8_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- double val = (*(double*)(localVarBase + __src));
- if (CheckConvertOverflow_f8_i2(*(double*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int16_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f8_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- double val = (*(double*)(localVarBase + __src));
- if (CheckConvertOverflow_f8_u2(*(double*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint16_t, int32_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f8_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- double val = (*(double*)(localVarBase + __src));
- if (CheckConvertOverflow_f8_i4(*(double*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int32_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f8_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- double val = (*(double*)(localVarBase + __src));
- if (CheckConvertOverflow_f8_u4(*(double*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint32_t, int32_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f8_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- double val = (*(double*)(localVarBase + __src));
- if (CheckConvertOverflow_f8_i8(*(double*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_double_to_int<int64_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ConvertOverflowVarVar_f8_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- double val = (*(double*)(localVarBase + __src));
- if (CheckConvertOverflow_f8_u8(*(double*)(localVarBase + __src)))
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_codegen_cast_floating_point<uint64_t, int64_t>((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- //!!!}}CONVERT
- #pragma endregion
- #pragma region ARITH
- //!!!{{ARITH
- case HiOpcodeEnum::BinOpVarVarVar_Add_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __op1)) + (*(int32_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Sub_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __op1)) - (*(int32_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Mul_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __op1)) * (*(int32_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_MulUn_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = HiMulUn((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Div_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = HiDiv((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_DivUn_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = HiDivUn((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Rem_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = HiRem((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_RemUn_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = HiRemUn((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_And_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __op1)) & (*(int32_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Or_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __op1)) | (*(int32_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Xor_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __op1)) ^ (*(int32_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Add_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __op1)) + (*(int64_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Sub_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __op1)) - (*(int64_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Mul_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __op1)) * (*(int64_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_MulUn_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = HiMulUn((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Div_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = HiDiv((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_DivUn_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = HiDivUn((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Rem_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = HiRem((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_RemUn_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = HiRemUn((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_And_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __op1)) & (*(int64_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Or_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __op1)) | (*(int64_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Xor_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __op1)) ^ (*(int64_t*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Add_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(float*)(localVarBase + __ret)) = (*(float*)(localVarBase + __op1)) + (*(float*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Sub_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(float*)(localVarBase + __ret)) = (*(float*)(localVarBase + __op1)) - (*(float*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Mul_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(float*)(localVarBase + __ret)) = (*(float*)(localVarBase + __op1)) * (*(float*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Div_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(float*)(localVarBase + __ret)) = HiDiv((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Rem_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(float*)(localVarBase + __ret)) = HiRem((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Add_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(double*)(localVarBase + __ret)) = (*(double*)(localVarBase + __op1)) + (*(double*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Sub_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(double*)(localVarBase + __ret)) = (*(double*)(localVarBase + __op1)) - (*(double*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Mul_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(double*)(localVarBase + __ret)) = (*(double*)(localVarBase + __op1)) * (*(double*)(localVarBase + __op2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Div_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(double*)(localVarBase + __ret)) = HiDiv((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpVarVarVar_Rem_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- (*(double*)(localVarBase + __ret)) = HiRem((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Add_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- int32_t op1 = (*(int32_t*)(localVarBase + __op1));
- int32_t op2 = (*(int32_t*)(localVarBase + __op2));
- if ((CheckAddOverflow(op1, op2)) == 0)
- {
- (*(int32_t*)(localVarBase + __ret)) = op1 + op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Sub_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- int32_t op1 = (*(int32_t*)(localVarBase + __op1));
- int32_t op2 = (*(int32_t*)(localVarBase + __op2));
- if ((CheckSubOverflow(op1, op2)) == 0)
- {
- (*(int32_t*)(localVarBase + __ret)) = op1 - op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Mul_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- int32_t op1 = (*(int32_t*)(localVarBase + __op1));
- int32_t op2 = (*(int32_t*)(localVarBase + __op2));
- if ((CheckMulOverflow(op1, op2)) == 0)
- {
- (*(int32_t*)(localVarBase + __ret)) = op1 * op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Add_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- int64_t op1 = (*(int64_t*)(localVarBase + __op1));
- int64_t op2 = (*(int64_t*)(localVarBase + __op2));
- if ((CheckAddOverflow64(op1, op2)) == 0)
- {
- (*(int64_t*)(localVarBase + __ret)) = op1 + op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Sub_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- int64_t op1 = (*(int64_t*)(localVarBase + __op1));
- int64_t op2 = (*(int64_t*)(localVarBase + __op2));
- if ((CheckSubOverflow64(op1, op2)) == 0)
- {
- (*(int64_t*)(localVarBase + __ret)) = op1 - op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Mul_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- int64_t op1 = (*(int64_t*)(localVarBase + __op1));
- int64_t op2 = (*(int64_t*)(localVarBase + __op2));
- if ((CheckMulOverflow64(op1, op2)) == 0)
- {
- (*(int64_t*)(localVarBase + __ret)) = op1 * op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Add_u4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- uint32_t op1 = (*(uint32_t*)(localVarBase + __op1));
- uint32_t op2 = (*(uint32_t*)(localVarBase + __op2));
- if ((CheckAddOverflowUn(op1, op2)) == 0)
- {
- (*(uint32_t*)(localVarBase + __ret)) = op1 + op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Sub_u4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- uint32_t op1 = (*(uint32_t*)(localVarBase + __op1));
- uint32_t op2 = (*(uint32_t*)(localVarBase + __op2));
- if ((CheckSubOverflowUn(op1, op2)) == 0)
- {
- (*(uint32_t*)(localVarBase + __ret)) = op1 - op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Mul_u4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- uint32_t op1 = (*(uint32_t*)(localVarBase + __op1));
- uint32_t op2 = (*(uint32_t*)(localVarBase + __op2));
- if ((CheckMulOverflowUn(op1, op2)) == 0)
- {
- (*(uint32_t*)(localVarBase + __ret)) = op1 * op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Add_u8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- uint64_t op1 = (*(uint64_t*)(localVarBase + __op1));
- uint64_t op2 = (*(uint64_t*)(localVarBase + __op2));
- if ((CheckAddOverflow64Un(op1, op2)) == 0)
- {
- (*(uint64_t*)(localVarBase + __ret)) = op1 + op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Sub_u8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- uint64_t op1 = (*(uint64_t*)(localVarBase + __op1));
- uint64_t op2 = (*(uint64_t*)(localVarBase + __op2));
- if ((CheckSubOverflow64Un(op1, op2)) == 0)
- {
- (*(uint64_t*)(localVarBase + __ret)) = op1 - op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BinOpOverflowVarVarVar_Mul_u8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __op1 = *(uint16_t*)(ip + 4);
- uint16_t __op2 = *(uint16_t*)(ip + 6);
- uint64_t op1 = (*(uint64_t*)(localVarBase + __op1));
- uint64_t op2 = (*(uint64_t*)(localVarBase + __op2));
- if ((CheckMulOverflow64Un(op1, op2)) == 0)
- {
- (*(uint64_t*)(localVarBase + __ret)) = op1 * op2;
- }
- else
- {
- il2cpp::vm::Exception::RaiseOverflowException();
- }
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_Shl_i4_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __value)) << (*(int32_t*)(localVarBase + __shiftAmount));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_Shr_i4_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __value)) >> (*(int32_t*)(localVarBase + __shiftAmount));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_ShrUn_i4_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = HiShrUn((*(int32_t*)(localVarBase + __value)), (*(int32_t*)(localVarBase + __shiftAmount)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_Shl_i4_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __value)) << (*(int64_t*)(localVarBase + __shiftAmount));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_Shr_i4_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = (*(int32_t*)(localVarBase + __value)) >> (*(int64_t*)(localVarBase + __shiftAmount));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_ShrUn_i4_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = HiShrUn((*(int32_t*)(localVarBase + __value)), (*(int64_t*)(localVarBase + __shiftAmount)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_Shl_i8_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __value)) << (*(int32_t*)(localVarBase + __shiftAmount));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_Shr_i8_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __value)) >> (*(int32_t*)(localVarBase + __shiftAmount));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_ShrUn_i8_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = HiShrUn((*(int64_t*)(localVarBase + __value)), (*(int32_t*)(localVarBase + __shiftAmount)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_Shl_i8_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __value)) << (*(int64_t*)(localVarBase + __shiftAmount));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_Shr_i8_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = (*(int64_t*)(localVarBase + __value)) >> (*(int64_t*)(localVarBase + __shiftAmount));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BitShiftBinOpVarVarVar_ShrUn_i8_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __value = *(uint16_t*)(ip + 4);
- uint16_t __shiftAmount = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = HiShrUn((*(int64_t*)(localVarBase + __value)), (*(int64_t*)(localVarBase + __shiftAmount)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::UnaryOpVarVar_Neg_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = - (*(int32_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::UnaryOpVarVar_Not_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = ~ (*(int32_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::UnaryOpVarVar_Neg_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = - (*(int64_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::UnaryOpVarVar_Not_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int64_t*)(localVarBase + __dst)) = ~ (*(int64_t*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::UnaryOpVarVar_Neg_f4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(float*)(localVarBase + __dst)) = - (*(float*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::UnaryOpVarVar_Neg_f8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(double*)(localVarBase + __dst)) = - (*(double*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CheckFiniteVar_f4:
- {
- uint16_t __src = *(uint16_t*)(ip + 2);
- HiCheckFinite((*(float*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CheckFiniteVar_f8:
- {
- uint16_t __src = *(uint16_t*)(ip + 2);
- HiCheckFinite((*(double*)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- //!!!}}ARITH
- #pragma endregion
- #pragma region COMPARE
- //!!!{{COMPARE
- case HiOpcodeEnum::CompOpVarVarVar_Ceq_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCeq((*(int32_t*)(localVarBase + __c1)), (*(int32_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Ceq_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCeq((*(int64_t*)(localVarBase + __c1)), (*(int64_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Ceq_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCeq((*(float*)(localVarBase + __c1)), (*(float*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Ceq_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCeq((*(double*)(localVarBase + __c1)), (*(double*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Cgt_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCgt((*(int32_t*)(localVarBase + __c1)), (*(int32_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Cgt_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCgt((*(int64_t*)(localVarBase + __c1)), (*(int64_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Cgt_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCgt((*(float*)(localVarBase + __c1)), (*(float*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Cgt_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCgt((*(double*)(localVarBase + __c1)), (*(double*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_CgtUn_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCgtUn((*(int32_t*)(localVarBase + __c1)), (*(int32_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_CgtUn_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCgtUn((*(int64_t*)(localVarBase + __c1)), (*(int64_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_CgtUn_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCgtUn((*(float*)(localVarBase + __c1)), (*(float*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_CgtUn_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCgtUn((*(double*)(localVarBase + __c1)), (*(double*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Clt_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareClt((*(int32_t*)(localVarBase + __c1)), (*(int32_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Clt_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareClt((*(int64_t*)(localVarBase + __c1)), (*(int64_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Clt_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareClt((*(float*)(localVarBase + __c1)), (*(float*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_Clt_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareClt((*(double*)(localVarBase + __c1)), (*(double*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_CltUn_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCltUn((*(int32_t*)(localVarBase + __c1)), (*(int32_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_CltUn_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCltUn((*(int64_t*)(localVarBase + __c1)), (*(int64_t*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_CltUn_f4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCltUn((*(float*)(localVarBase + __c1)), (*(float*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CompOpVarVarVar_CltUn_f8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __c1 = *(uint16_t*)(ip + 4);
- uint16_t __c2 = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = CompareCltUn((*(double*)(localVarBase + __c1)), (*(double*)(localVarBase + __c2)));
- ip += 8;
- continue;
- }
- //!!!}}COMPARE
- #pragma endregion
- #pragma region BRANCH
- //!!!{{BRANCH
- case HiOpcodeEnum::BranchUncondition_4:
- {
- int32_t __offset = *(int32_t*)(ip + 4);
- ip = ipBase + __offset;
- continue;
- }
- case HiOpcodeEnum::BranchTrueVar_i4:
- {
- uint16_t __op = *(uint16_t*)(ip + 2);
- int32_t __offset = *(int32_t*)(ip + 4);
- if ((*(int32_t*)(localVarBase + __op)))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 8;
- }
- continue;
- }
- case HiOpcodeEnum::BranchTrueVar_i8:
- {
- uint16_t __op = *(uint16_t*)(ip + 2);
- int32_t __offset = *(int32_t*)(ip + 4);
- if ((*(int64_t*)(localVarBase + __op)))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 8;
- }
- continue;
- }
- case HiOpcodeEnum::BranchFalseVar_i4:
- {
- uint16_t __op = *(uint16_t*)(ip + 2);
- int32_t __offset = *(int32_t*)(ip + 4);
- if (!(*(int32_t*)(localVarBase + __op)))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 8;
- }
- continue;
- }
- case HiOpcodeEnum::BranchFalseVar_i8:
- {
- uint16_t __op = *(uint16_t*)(ip + 2);
- int32_t __offset = *(int32_t*)(ip + 4);
- if (!(*(int64_t*)(localVarBase + __op)))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 8;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Ceq_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCeq((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Ceq_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCeq((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Ceq_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCeq((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Ceq_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCeq((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CneUn_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCneUn((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CneUn_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCneUn((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CneUn_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCneUn((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CneUn_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCneUn((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip = ipBase + __offset;
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cgt_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCle((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cgt_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCle((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cgt_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCle((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cgt_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCle((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CgtUn_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCleUn((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CgtUn_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCleUn((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CgtUn_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCleUn((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CgtUn_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCleUn((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cge_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareClt((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cge_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareClt((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cge_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareClt((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cge_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareClt((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CgeUn_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCltUn((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CgeUn_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCltUn((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CgeUn_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCltUn((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CgeUn_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCltUn((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Clt_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCge((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Clt_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCge((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Clt_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCge((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Clt_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCge((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CltUn_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgeUn((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CltUn_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgeUn((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CltUn_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgeUn((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CltUn_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgeUn((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cle_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgt((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cle_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgt((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cle_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgt((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_Cle_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgt((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CleUn_i4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgtUn((*(int32_t*)(localVarBase + __op1)), (*(int32_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CleUn_i8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgtUn((*(int64_t*)(localVarBase + __op1)), (*(int64_t*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CleUn_f4:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgtUn((*(float*)(localVarBase + __op1)), (*(float*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchVarVar_CleUn_f8:
- {
- uint16_t __op1 = *(uint16_t*)(ip + 2);
- uint16_t __op2 = *(uint16_t*)(ip + 4);
- int32_t __offset = *(int32_t*)(ip + 8);
- if (CompareCgtUn((*(double*)(localVarBase + __op1)), (*(double*)(localVarBase + __op2))))
- {
- ip += 16;
- }
- else
- {
- ip = ipBase + __offset;
- }
- continue;
- }
- case HiOpcodeEnum::BranchJump:
- {
- uint32_t __token = *(uint32_t*)(ip + 4);
- IL2CPP_ASSERT(false);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BranchSwitch:
- {
- uint16_t __value = *(uint16_t*)(ip + 2);
- uint32_t __caseNum = *(uint32_t*)(ip + 4);
- uint32_t __caseOffsets = *(uint32_t*)(ip + 8);
- uint32_t __idx = (*(uint32_t*)(localVarBase + __value));
- if (__idx < __caseNum)
- {
- ip = ipBase + ((uint32_t*)&imi->resolveDatas[__caseOffsets])[__idx];
- }
- else
- {
- ip += 16;
- }
- continue;
- }
- //!!!}}BRANCH
- #pragma endregion
- #pragma region FUNCTION
- //!!!{{FUNCTION
- case HiOpcodeEnum::NewClassVar:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- void* __managed2NativeMethod = ((void*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- MethodInfo* __method = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t* _argIdxs = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- Il2CppObject* _obj = il2cpp::vm::Object::New(__method->klass);
- *(Il2CppObject**)(localVarBase + _argIdxs[0]) = _obj;
- ((Managed2NativeCallMethod)__managed2NativeMethod)(__method, _argIdxs, localVarBase, nullptr);
- (*(Il2CppObject**)(localVarBase + __obj)) = _obj;
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NewClassVar_Ctor_0:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- MethodInfo* __method = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- Il2CppObject* _obj = il2cpp::vm::Object::New(__method->klass);
- ((NativeClassCtor0)(__method->methodPointerCallByInterp))(_obj, __method);
- (*(Il2CppObject**)(localVarBase + __obj)) = _obj;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewClassVar_NotCtor:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- (*(Il2CppObject**)(localVarBase + __obj)) = il2cpp::vm::Object::New(__klass);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewValueTypeVar:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- void* __managed2NativeMethod = ((void*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- MethodInfo* __method = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t* _argIdxs = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- int32_t _typeSize = GetTypeValueSize(__method->klass);
- // arg1, arg2, ..., argN, value type, __this
- StackObject* _frameBasePtr = localVarBase + _argIdxs[0];
- Il2CppObject* _this = (Il2CppObject*)(_frameBasePtr - GetStackSizeByByteSize(_typeSize));
- _frameBasePtr->ptr = _this;
- ((Managed2NativeCallMethod)__managed2NativeMethod)(__method, _argIdxs, localVarBase, nullptr);
- std::memmove((void*)(localVarBase + __obj), _this, _typeSize);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NewClassInterpVar:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- MethodInfo* __method = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 12)]);
- uint16_t __argBase = *(uint16_t*)(ip + 4);
- uint16_t __argStackObjectNum = *(uint16_t*)(ip + 6);
- uint16_t __ctorFrameBase = *(uint16_t*)(ip + 8);
- IL2CPP_ASSERT(__obj < __ctorFrameBase);
- Il2CppObject* _newObj = il2cpp::vm::Object::New(__method->klass);
- StackObject* _frameBasePtr = (StackObject*)(void*)(localVarBase + __ctorFrameBase);
- std::memmove(_frameBasePtr + 1, (void*)(localVarBase + __argBase), __argStackObjectNum * sizeof(StackObject)); // move arg
- _frameBasePtr->obj = _newObj; // prepare this
- (*(Il2CppObject**)(localVarBase + __obj)) = _newObj; // set must after move
- CALL_INTERP_VOID((ip + 16), __method, _frameBasePtr);
- continue;
- }
- case HiOpcodeEnum::NewClassInterpVar_Ctor_0:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- MethodInfo* __method = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __ctorFrameBase = *(uint16_t*)(ip + 4);
- IL2CPP_ASSERT(__obj < __ctorFrameBase);
- Il2CppObject* _newObj = il2cpp::vm::Object::New(__method->klass);
- StackObject* _frameBasePtr = (StackObject*)(void*)(localVarBase + __ctorFrameBase);
- _frameBasePtr->obj = _newObj; // prepare this
- (*(Il2CppObject**)(localVarBase + __obj)) = _newObj;
- CALL_INTERP_VOID((ip + 16), __method, _frameBasePtr);
- continue;
- }
- case HiOpcodeEnum::NewValueTypeInterpVar:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- MethodInfo* __method = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 12)]);
- uint16_t __argBase = *(uint16_t*)(ip + 4);
- uint16_t __argStackObjectNum = *(uint16_t*)(ip + 6);
- uint16_t __ctorFrameBase = *(uint16_t*)(ip + 8);
- IL2CPP_ASSERT(__obj < __ctorFrameBase);
- StackObject* _frameBasePtr = (StackObject*)(void*)(localVarBase + __ctorFrameBase);
- std::memmove(_frameBasePtr + 1, (void*)(localVarBase + __argBase), __argStackObjectNum * sizeof(StackObject)); // move arg
- _frameBasePtr->ptr = (StackObject*)(void*)(localVarBase + __obj);
- int32_t _typeSize = GetTypeValueSize(__method->klass);
- CALL_INTERP_VOID((ip + 16), __method, _frameBasePtr);
- continue;
- }
- case HiOpcodeEnum::AdjustValueTypeRefVar:
- {
- uint16_t __data = *(uint16_t*)(ip + 2);
- // ref => fake value type boxed object value. // fake obj = ref(value_type) - sizeof(Il2CppObject)
- StackObject* _thisSo = ((StackObject*)((void*)(localVarBase + __data)));
- _thisSo->obj -= 1;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::BoxRefVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(Il2CppObject**)(localVarBase + __dst)) = il2cpp::vm::Object::Box(__klass, (*(void**)(localVarBase + __src)));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdvirftnVarVar:
- {
- uint16_t __resultMethod = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- MethodInfo* __virtualMethod = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(MethodInfo**)(localVarBase + __resultMethod)) = GET_OBJECT_VIRTUAL_METHOD((*(Il2CppObject**)(localVarBase + __obj)), __virtualMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_1:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(1, 8);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_2:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(2, 8);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(4, 8);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(8, 8);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_12:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(12, 12);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_16:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(16, 16);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_20:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(20, 20);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_24:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(24, 24);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_28:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(28, 28);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_32:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- SET_RET_AND_LEAVE_FRAME(32, 32);
- continue;
- }
- case HiOpcodeEnum::RetVar_ret_n:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint32_t __size = *(uint32_t*)(ip + 4);
- std::memmove(frame->ret, (void*)(localVarBase + __ret), __size);
- LEAVE_FRAME();
- continue;
- }
- case HiOpcodeEnum::RetVar_void:
- {
- LEAVE_FRAME();
- continue;
- }
- case HiOpcodeEnum::CallNativeInstance_void:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 4);
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t* _resolvedArgIdxs = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- CHECK_NOT_NULL_THROW((localVarBase + _resolvedArgIdxs[0])->obj);
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(((MethodInfo*)imi->resolveDatas[__methodInfo]), _resolvedArgIdxs, localVarBase, nullptr);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallNativeInstance_ret:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 4);
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t* _resolvedArgIdxs = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- CHECK_NOT_NULL_THROW((localVarBase + _resolvedArgIdxs[0])->obj);
- void* _ret = (void*)(localVarBase + __ret);
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(((MethodInfo*)imi->resolveDatas[__methodInfo]), _resolvedArgIdxs, localVarBase, _ret);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallNativeInstance_ret_expand:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 8);
- uint32_t __methodInfo = *(uint32_t*)(ip + 12);
- uint32_t __argIdxs = *(uint32_t*)(ip + 16);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- uint8_t __retLocationType = *(uint8_t*)(ip + 2);
- uint16_t* _resolvedArgIdxs = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- CHECK_NOT_NULL_THROW((localVarBase + _resolvedArgIdxs[0])->obj);
- void* _ret = (void*)(localVarBase + __ret);
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(((MethodInfo*)imi->resolveDatas[__methodInfo]), _resolvedArgIdxs, localVarBase, _ret);
- ExpandLocationData2StackDataByType(_ret, (LocationDataType)__retLocationType);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallNativeStatic_void:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 4);
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__methodInfo]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(_resolvedMethod, ((uint16_t*)&imi->resolveDatas[__argIdxs]), localVarBase, nullptr);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallNativeStatic_ret:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 4);
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__methodInfo]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- void* _ret = (void*)(localVarBase + __ret);
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(_resolvedMethod, ((uint16_t*)&imi->resolveDatas[__argIdxs]), localVarBase, _ret);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallNativeStatic_ret_expand:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 8);
- uint32_t __methodInfo = *(uint32_t*)(ip + 12);
- uint32_t __argIdxs = *(uint32_t*)(ip + 16);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- uint8_t __retLocationType = *(uint8_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__methodInfo]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- void* _ret = (void*)(localVarBase + __ret);
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(_resolvedMethod, ((uint16_t*)&imi->resolveDatas[__argIdxs]), localVarBase, _ret);
- ExpandLocationData2StackDataByType(_ret, (LocationDataType)__retLocationType);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallInterp_void:
- {
- MethodInfo* __methodInfo = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- uint16_t __argBase = *(uint16_t*)(ip + 2);
- if (metadata::IsInstanceMethod(__methodInfo))
- {
- CHECK_NOT_NULL_THROW((localVarBase + __argBase)->obj);
- }
- CALL_INTERP_VOID((ip + 8), __methodInfo, (StackObject*)(void*)(localVarBase + __argBase));
- continue;
- }
- case HiOpcodeEnum::CallInterp_ret:
- {
- MethodInfo* __methodInfo = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __argBase = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- if (metadata::IsInstanceMethod(__methodInfo))
- {
- CHECK_NOT_NULL_THROW((localVarBase + __argBase)->obj);
- }
- CALL_INTERP_RET((ip + 16), __methodInfo, (StackObject*)(void*)(localVarBase + __argBase), (void*)(localVarBase + __ret));
- continue;
- }
- case HiOpcodeEnum::CallVirtual_void:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 4);
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t* _argIdxData = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- StackObject* _objPtr = localVarBase + _argIdxData[0];
- MethodInfo* _actualMethod = GET_OBJECT_VIRTUAL_METHOD( _objPtr->obj, ((MethodInfo*)imi->resolveDatas[__methodInfo]));
- if (IS_CLASS_VALUE_TYPE(_actualMethod->klass))
- {
- _objPtr->obj += 1;
- }
- if (hybridclr::metadata::IsInterpreterImplement(_actualMethod))
- {
- CALL_INTERP_VOID((ip + 16), _actualMethod, _objPtr);
- }
- else
- {
- if (!InitAndGetInterpreterDirectlyCallMethodPointer(_actualMethod))
- {
- RaiseAOTGenericMethodNotInstantiatedException(_actualMethod);
- }
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(_actualMethod, _argIdxData, localVarBase, nullptr);
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::CallVirtual_ret:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 4);
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t* _argIdxData = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- StackObject* _objPtr = localVarBase + _argIdxData[0];
- MethodInfo* _actualMethod = GET_OBJECT_VIRTUAL_METHOD(_objPtr->obj, ((MethodInfo*)imi->resolveDatas[__methodInfo]));
- void* _ret = (void*)(localVarBase + __ret);
- if (IS_CLASS_VALUE_TYPE(_actualMethod->klass))
- {
- _objPtr->obj += 1;
- }
- if (hybridclr::metadata::IsInterpreterImplement(_actualMethod))
- {
- CALL_INTERP_RET((ip + 16), _actualMethod, _objPtr, _ret);
- }
- else
- {
- if (!InitAndGetInterpreterDirectlyCallMethodPointer(_actualMethod))
- {
- RaiseAOTGenericMethodNotInstantiatedException(_actualMethod);
- }
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(_actualMethod, _argIdxData, localVarBase, _ret);
- ip += 16;
- }
- continue;
- }
- case HiOpcodeEnum::CallVirtual_ret_expand:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 8);
- uint32_t __methodInfo = *(uint32_t*)(ip + 12);
- uint32_t __argIdxs = *(uint32_t*)(ip + 16);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- uint8_t __retLocationType = *(uint8_t*)(ip + 2);
- uint16_t* _argIdxData = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- StackObject* _objPtr = localVarBase + _argIdxData[0];
- MethodInfo* _actualMethod = GET_OBJECT_VIRTUAL_METHOD(_objPtr->obj, ((MethodInfo*)imi->resolveDatas[__methodInfo]));
- void* _ret = (void*)(localVarBase + __ret);
- if (IS_CLASS_VALUE_TYPE(_actualMethod->klass))
- {
- _objPtr->obj += 1;
- }
- if (hybridclr::metadata::IsInterpreterImplement(_actualMethod))
- {
- CALL_INTERP_RET((ip + 24), _actualMethod, _objPtr, _ret);
- }
- else
- {
- if (!InitAndGetInterpreterDirectlyCallMethodPointer(_actualMethod))
- {
- RaiseAOTGenericMethodNotInstantiatedException(_actualMethod);
- }
- ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod])(_actualMethod, _argIdxData, localVarBase, _ret);
- ExpandLocationData2StackDataByType(_ret, (LocationDataType)__retLocationType);
- ip += 24;
- }
- continue;
- }
- case HiOpcodeEnum::CallInterpVirtual_void:
- {
- MethodInfo* __method = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- uint16_t __argBase = *(uint16_t*)(ip + 2);
- StackObject* _argBasePtr = (StackObject*)(void*)(localVarBase + __argBase);
- MethodInfo* _actualMethod = GET_OBJECT_VIRTUAL_METHOD(_argBasePtr->obj, __method);
- if (IS_CLASS_VALUE_TYPE(_actualMethod->klass))
- {
- _argBasePtr->obj += 1;
- }
- CALL_INTERP_VOID((ip + 8), _actualMethod, _argBasePtr);
- continue;
- }
- case HiOpcodeEnum::CallInterpVirtual_ret:
- {
- MethodInfo* __method = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __argBase = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- StackObject* _argBasePtr = (StackObject*)(void*)(localVarBase + __argBase);
- MethodInfo* _actualMethod = GET_OBJECT_VIRTUAL_METHOD(_argBasePtr->obj, __method);
- if (IS_CLASS_VALUE_TYPE(_actualMethod->klass))
- {
- _argBasePtr->obj += 1;
- }
- CALL_INTERP_RET((ip + 16), _actualMethod, _argBasePtr, (void*)(localVarBase + __ret));
- continue;
- }
- case HiOpcodeEnum::CallInd_void:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 4);
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- Managed2NativeCallMethod _nativeMethodPointer = ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod]);
- uint16_t* _argIdxsPtr = (uint16_t*)&imi->resolveDatas[__argIdxs];
- StackObject* _argBasePtr = localVarBase + _argIdxsPtr[0];
- MethodInfo* _method = (MethodInfo*)(localVarBase + __methodInfo)->ptr;
- if (metadata::IsInstanceMethod(_method))
- {
- CHECK_NOT_NULL_THROW(_argBasePtr->obj);
- }
- if (IsInterpreterImplement(_method))
- {
- CALL_INTERP_VOID((ip + 16), _method, _argBasePtr);
- continue;
- }
- if (!InitAndGetInterpreterDirectlyCallMethodPointer(_method))
- {
- RaiseAOTGenericMethodNotInstantiatedException(_method);
- }
- _nativeMethodPointer(_method, _argIdxsPtr, localVarBase, nullptr);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallInd_ret:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 4);
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- void* _ret = (void*)(localVarBase + __ret);
- Managed2NativeCallMethod _nativeMethodPointer = ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod]);
- uint16_t* _argIdxsPtr = (uint16_t*)&imi->resolveDatas[__argIdxs];
- StackObject* _argBasePtr = localVarBase + _argIdxsPtr[0];
- MethodInfo* _method = (MethodInfo*)(localVarBase + __methodInfo)->ptr;
- if (metadata::IsInstanceMethod(_method))
- {
- CHECK_NOT_NULL_THROW(_argBasePtr->obj);
- }
- if (IsInterpreterImplement(_method))
- {
- CALL_INTERP_RET((ip + 16), _method, _argBasePtr, _ret);
- continue;
- }
- if (!InitAndGetInterpreterDirectlyCallMethodPointer(_method))
- {
- RaiseAOTGenericMethodNotInstantiatedException(_method);
- }
- _nativeMethodPointer(_method, _argIdxsPtr, localVarBase, _ret);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallInd_ret_expand:
- {
- uint32_t __managed2NativeMethod = *(uint32_t*)(ip + 8);
- uint32_t __methodInfo = *(uint32_t*)(ip + 12);
- uint32_t __argIdxs = *(uint32_t*)(ip + 16);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- uint8_t __retLocationType = *(uint8_t*)(ip + 2);
- void* _ret = (void*)(localVarBase + __ret);
- Managed2NativeCallMethod _nativeMethodPointer = ((Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeMethod]);
- uint16_t* _argIdxsPtr = (uint16_t*)&imi->resolveDatas[__argIdxs];
- StackObject* _argBasePtr = localVarBase + _argIdxsPtr[0];
- MethodInfo* _method = (MethodInfo*)(localVarBase + __methodInfo)->ptr;
- if (metadata::IsInstanceMethod(_method))
- {
- CHECK_NOT_NULL_THROW(_argBasePtr->obj);
- }
- if (IsInterpreterImplement(_method))
- {
- CALL_INTERP_RET((ip + 24), _method, _argBasePtr, _ret);
- continue;
- }
- if (!InitAndGetInterpreterDirectlyCallMethodPointer(_method))
- {
- RaiseAOTGenericMethodNotInstantiatedException(_method);
- }
- _nativeMethodPointer(_method, _argIdxsPtr, localVarBase, _ret);
- ExpandLocationData2StackDataByType(_ret, (LocationDataType)__retLocationType);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallDelegateInvoke_void:
- {
- uint32_t __managed2NativeStaticMethod = *(uint32_t*)(ip + 4);
- uint32_t __managed2NativeInstanceMethod = *(uint32_t*)(ip + 8);
- uint32_t __argIdxs = *(uint32_t*)(ip + 12);
- uint16_t __invokeParamCount = *(uint16_t*)(ip + 2);
- void* _ret = nullptr;
- uint16_t* _resolvedArgIdxs = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- StackObject* _argBasePtr = localVarBase + _resolvedArgIdxs[0];
- Il2CppMulticastDelegate* _del = (Il2CppMulticastDelegate*)_argBasePtr->obj;
- CHECK_NOT_NULL_THROW(_del);
- if (_del->delegates == nullptr)
- {
- const MethodInfo* method = _del->delegate.method;
- Il2CppObject* target = _del->delegate.target;
- if (hybridclr::metadata::IsInterpreterImplement(method))
- {
- switch ((int32_t)__invokeParamCount - (int32_t)method->parameters_count)
- {
- case 0:
- {
- if (hybridclr::metadata::IsInstanceMethod(method))
- {
- CHECK_NOT_NULL_THROW(target);
- target += IS_CLASS_VALUE_TYPE(method->klass);
- _argBasePtr->obj = target;
- }
- else
- {
- _argBasePtr = __invokeParamCount == 0 ? _argBasePtr + 1 : localVarBase + _resolvedArgIdxs[1];
- }
- break;
- }
- case -1:
- {
- _argBasePtr->obj = target;
- break;
- }
- case 1:
- {
- _argBasePtr = localVarBase + _resolvedArgIdxs[1];
- CHECK_NOT_NULL_THROW(_argBasePtr->obj);
- break;
- }
- default:
- {
- RaiseExecutionEngineException("CallInterpDelegate");
- }
- }
- CALL_INTERP_RET((ip + 16), method, _argBasePtr, _ret);
- continue;
- }
- else
- {
- Managed2NativeCallMethod _staticM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeStaticMethod];
- Managed2NativeCallMethod _instanceM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeInstanceMethod];
- InvokeSingleDelegate(__invokeParamCount, method, target, _staticM2NMethod, _instanceM2NMethod, _resolvedArgIdxs, localVarBase, _ret);
- }
- }
- else
- {
- Il2CppArray* dels = _del->delegates;
- Managed2NativeCallMethod _staticM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeStaticMethod];
- Managed2NativeCallMethod _instanceM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeInstanceMethod];
- for (il2cpp_array_size_t i = 0; i < dels->max_length; i++)
- {
- Il2CppMulticastDelegate* subDel = il2cpp_array_get(dels, Il2CppMulticastDelegate *, i);
- IL2CPP_ASSERT(subDel);
- IL2CPP_ASSERT(subDel->delegates == nullptr);
- const MethodInfo* method = subDel->delegate.method;
- Il2CppObject* target = subDel->delegate.target;
- InvokeSingleDelegate(__invokeParamCount, method, target, _staticM2NMethod, _instanceM2NMethod, _resolvedArgIdxs, localVarBase, _ret);
- }
- }
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallDelegateInvoke_ret:
- {
- uint32_t __managed2NativeStaticMethod = *(uint32_t*)(ip + 8);
- uint32_t __managed2NativeInstanceMethod = *(uint32_t*)(ip + 12);
- uint32_t __argIdxs = *(uint32_t*)(ip + 16);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __invokeParamCount = *(uint16_t*)(ip + 4);
- uint16_t __retTypeStackObjectSize = *(uint16_t*)(ip + 6);
- void* _ret = (void*)(localVarBase + __ret);
- IL2CPP_ASSERT(__retTypeStackObjectSize <= kMaxRetValueTypeStackObjectSize);
- StackObject* _tempRet = tempRet ? tempRet : (tempRet = (StackObject*)alloca(sizeof(StackObject) * kMaxRetValueTypeStackObjectSize));
- uint16_t* _resolvedArgIdxs = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- StackObject* _argBasePtr = localVarBase + _resolvedArgIdxs[0];
- Il2CppMulticastDelegate* _del = (Il2CppMulticastDelegate*)_argBasePtr->obj;
- CHECK_NOT_NULL_THROW(_del);
- if (_del->delegates == nullptr)
- {
- const MethodInfo* method = _del->delegate.method;
- Il2CppObject* target = _del->delegate.target;
- if (hybridclr::metadata::IsInterpreterImplement(method))
- {
- switch ((int32_t)__invokeParamCount - (int32_t)method->parameters_count)
- {
- case 0:
- {
- if (hybridclr::metadata::IsInstanceMethod(method))
- {
- CHECK_NOT_NULL_THROW(target);
- target += IS_CLASS_VALUE_TYPE(method->klass);
- _argBasePtr->obj = target;
- }
- else
- {
- _argBasePtr = __invokeParamCount == 0 ? _argBasePtr + 1 : localVarBase + _resolvedArgIdxs[1];
- }
- break;
- }
- case -1:
- {
- _argBasePtr->obj = target;
- break;
- }
- case 1:
- {
- _argBasePtr = localVarBase + _resolvedArgIdxs[1];
- CHECK_NOT_NULL_THROW(_argBasePtr->obj);
- break;
- }
- default:
- {
- RaiseExecutionEngineException("CallInterpDelegate");
- }
- }
- CALL_INTERP_RET((ip + 24), method, _argBasePtr, _ret);
- continue;
- }
- else
- {
- Managed2NativeCallMethod _staticM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeStaticMethod];
- Managed2NativeCallMethod _instanceM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeInstanceMethod];
- InvokeSingleDelegate(__invokeParamCount, method, target, _staticM2NMethod, _instanceM2NMethod, _resolvedArgIdxs, localVarBase, _tempRet);
- }
- }
- else
- {
- Il2CppArray* dels = _del->delegates;
- Managed2NativeCallMethod _staticM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeStaticMethod];
- Managed2NativeCallMethod _instanceM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeInstanceMethod];
- for (il2cpp_array_size_t i = 0; i < dels->max_length; i++)
- {
- Il2CppMulticastDelegate* subDel = il2cpp_array_get(dels, Il2CppMulticastDelegate *, i);
- IL2CPP_ASSERT(subDel);
- IL2CPP_ASSERT(subDel->delegates == nullptr);
- const MethodInfo* method = subDel->delegate.method;
- Il2CppObject* target = subDel->delegate.target;
- InvokeSingleDelegate(__invokeParamCount, method, target, _staticM2NMethod, _instanceM2NMethod, _resolvedArgIdxs, localVarBase, _tempRet);
- }
- }
- CopyStackObject((StackObject*)_ret, _tempRet, __retTypeStackObjectSize);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallDelegateInvoke_ret_expand:
- {
- uint32_t __managed2NativeStaticMethod = *(uint32_t*)(ip + 8);
- uint32_t __managed2NativeInstanceMethod = *(uint32_t*)(ip + 12);
- uint32_t __argIdxs = *(uint32_t*)(ip + 16);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- uint16_t __invokeParamCount = *(uint16_t*)(ip + 6);
- uint8_t __retLocationType = *(uint8_t*)(ip + 2);
- void* _ret = (void*)(localVarBase + __ret);
- StackObject _tempRet[1];
- uint16_t* _resolvedArgIdxs = ((uint16_t*)&imi->resolveDatas[__argIdxs]);
- StackObject* _argBasePtr = localVarBase + _resolvedArgIdxs[0];
- Il2CppMulticastDelegate* _del = (Il2CppMulticastDelegate*)_argBasePtr->obj;
- CHECK_NOT_NULL_THROW(_del);
- if (_del->delegates == nullptr)
- {
- const MethodInfo* method = _del->delegate.method;
- Il2CppObject* target = _del->delegate.target;
- if (hybridclr::metadata::IsInterpreterImplement(method))
- {
- switch ((int32_t)__invokeParamCount - (int32_t)method->parameters_count)
- {
- case 0:
- {
- if (hybridclr::metadata::IsInstanceMethod(method))
- {
- CHECK_NOT_NULL_THROW(target);
- target += IS_CLASS_VALUE_TYPE(method->klass);
- _argBasePtr->obj = target;
- }
- else
- {
- _argBasePtr = __invokeParamCount == 0 ? _argBasePtr + 1 : localVarBase + _resolvedArgIdxs[1];
- }
- break;
- }
- case -1:
- {
- _argBasePtr->obj = target;
- break;
- }
- case 1:
- {
- _argBasePtr = localVarBase + _resolvedArgIdxs[1];
- CHECK_NOT_NULL_THROW(_argBasePtr->obj);
- break;
- }
- default:
- {
- RaiseExecutionEngineException("CallInterpDelegate");
- }
- }
- CALL_INTERP_RET((ip + 24), method, _argBasePtr, _ret);
- continue;
- }
- else
- {
- Managed2NativeCallMethod _staticM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeStaticMethod];
- Managed2NativeCallMethod _instanceM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeInstanceMethod];
- InvokeSingleDelegate(__invokeParamCount, method, target, _staticM2NMethod, _instanceM2NMethod, _resolvedArgIdxs, localVarBase, _tempRet);
- }
- }
- else
- {
- Il2CppArray* dels = _del->delegates;
- Managed2NativeCallMethod _staticM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeStaticMethod];
- Managed2NativeCallMethod _instanceM2NMethod = (Managed2NativeCallMethod)imi->resolveDatas[__managed2NativeInstanceMethod];
- for (il2cpp_array_size_t i = 0; i < dels->max_length; i++)
- {
- Il2CppMulticastDelegate* subDel = il2cpp_array_get(dels, Il2CppMulticastDelegate *, i);
- IL2CPP_ASSERT(subDel);
- IL2CPP_ASSERT(subDel->delegates == nullptr);
- const MethodInfo* method = subDel->delegate.method;
- Il2CppObject* target = subDel->delegate.target;
- InvokeSingleDelegate(__invokeParamCount, method, target, _staticM2NMethod, _instanceM2NMethod, _resolvedArgIdxs, localVarBase, _tempRet);
- }
- }
- CopyLocationData2StackDataByType((StackObject*)_ret, _tempRet, (LocationDataType)__retLocationType);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallDelegateBeginInvoke:
- {
- uint16_t __result = *(uint16_t*)(ip + 2);
- uint32_t __methodInfo = *(uint32_t*)(ip + 4);
- uint32_t __argIdxs = *(uint32_t*)(ip + 8);
- (*(Il2CppObject**)(localVarBase + __result)) = InvokeDelegateBeginInvoke(((MethodInfo*)imi->resolveDatas[__methodInfo]), ((uint16_t*)&imi->resolveDatas[__argIdxs]), localVarBase);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallDelegateEndInvoke_void:
- {
- uint32_t __methodInfo = *(uint32_t*)(ip + 4);
- uint16_t __asyncResult = *(uint16_t*)(ip + 2);
- InvokeDelegateEndInvokeVoid(((MethodInfo*)imi->resolveDatas[__methodInfo]), (Il2CppAsyncResult*)(*(Il2CppObject**)(localVarBase + __asyncResult)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallDelegateEndInvoke_ret:
- {
- uint32_t __methodInfo = *(uint32_t*)(ip + 8);
- uint16_t __asyncResult = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- InvokeDelegateEndInvokeRet(((MethodInfo*)imi->resolveDatas[__methodInfo]), (Il2CppAsyncResult*)(*(Il2CppObject**)(localVarBase + __asyncResult)), (void*)(localVarBase + __ret));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NewDelegate:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __method = *(uint16_t*)(ip + 6);
- Il2CppDelegate* del = (Il2CppDelegate*)il2cpp::vm::Object::New(__klass);
- ConstructDelegate(del, (*(Il2CppObject**)(localVarBase + __obj)), (*(MethodInfo**)(localVarBase + __method)));
- (*(Il2CppObject**)(localVarBase + __dst)) = (Il2CppObject*)del;
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CtorDelegate:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- MethodInfo* __ctor = ((MethodInfo*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __method = *(uint16_t*)(ip + 6);
- Il2CppDelegate* _del = (Il2CppDelegate*)il2cpp::vm::Object::New(__ctor->klass);
- ConstructorDelegate2(__ctor, _del, (*(Il2CppObject**)(localVarBase + __obj)), (*(MethodInfo**)(localVarBase + __method)));
- (*(Il2CppObject**)(localVarBase + __dst)) = (Il2CppObject*)_del;
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __self = *(uint16_t*)(ip + 2);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i1_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int8_t(*_NativeMethod_)(void*, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i2_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int16_t(*_NativeMethod_)(void*, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u2_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint16_t(*_NativeMethod_)(void*, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, int32_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, int32_t, int32_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, int64_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, int64_t, int64_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, float, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, float, float, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, float, float, float, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, float, float, float, float, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, double, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, double, double, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, double, double, double, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_v_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef void(*_NativeMethod_)(void*, double, double, double, double, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, float, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, float, float, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, double, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_u1_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef uint8_t(*_NativeMethod_)(void*, double, double, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, float, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, float, float, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, double, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i4_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int32_t(*_NativeMethod_)(void*, double, double, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, int32_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, int32_t, int32_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, int64_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, int64_t, int64_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, float, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, float, float, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, float, float, float, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, float, float, float, float, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, double, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, double, double, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, double, double, double, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_i8_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef int64_t(*_NativeMethod_)(void*, double, double, double, double, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, int32_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, int32_t, int32_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, int64_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, int64_t, int64_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, float, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, float, float, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, float, float, float, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, float, float, float, float, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, double, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, double, double, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, double, double, double, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f4_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef float(*_NativeMethod_)(void*, double, double, double, double, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, int32_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, int32_t, int32_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, int64_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, int64_t, int64_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, float, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, float, float, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, float, float, float, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, float, float, float, float, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, double, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, double, double, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, double, double, double, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeInstance_f8_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 16);
- uint16_t __self = *(uint16_t*)(ip + 2);
- uint16_t __param0 = *(uint16_t*)(ip + 4);
- uint16_t __param1 = *(uint16_t*)(ip + 6);
- uint16_t __param2 = *(uint16_t*)(ip + 8);
- uint16_t __param3 = *(uint16_t*)(ip + 10);
- uint16_t __ret = *(uint16_t*)(ip + 12);
- void* _self = (*(void**)(localVarBase + __self));
- CHECK_NOT_NULL_THROW(_self);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- typedef double(*_NativeMethod_)(void*, double, double, double, double, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_self, (*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 24;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i1_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int8_t(*_NativeMethod_)(MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i2_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int16_t(*_NativeMethod_)(MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u2_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint16_t(*_NativeMethod_)(MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_0:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)(_resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(int32_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(int32_t, int32_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(int32_t, int32_t, int32_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(int64_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(int64_t, int64_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(int64_t, int64_t, int64_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(float, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(float, float, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(float, float, float, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(float, float, float, float, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 4);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(double, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(double, double, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(double, double, double, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_v_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef void(*_NativeMethod_)(double, double, double, double, MethodInfo*);
- ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(int32_t, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(int64_t, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(float, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(float, float, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(double, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_u1_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef uint8_t(*_NativeMethod_)(double, double, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(int32_t, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(int64_t, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(float, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(float, float, float, float, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(double, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i4_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int32_t(*_NativeMethod_)(double, double, double, double, MethodInfo*);
- *(int32_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(int32_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(int32_t, int32_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(int32_t, int32_t, int32_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(int64_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(int64_t, int64_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(int64_t, int64_t, int64_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(float, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(float, float, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(float, float, float, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(float, float, float, float, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(double, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(double, double, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(double, double, double, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_i8_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef int64_t(*_NativeMethod_)(double, double, double, double, MethodInfo*);
- *(int64_t*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(int32_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(int32_t, int32_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(int32_t, int32_t, int32_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(int64_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(int64_t, int64_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(int64_t, int64_t, int64_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(float, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(float, float, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(float, float, float, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(float, float, float, float, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(double, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(double, double, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(double, double, double, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f4_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef float(*_NativeMethod_)(double, double, double, double, MethodInfo*);
- *(float*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_i4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(int32_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_i4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(int32_t, int32_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_i4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(int32_t, int32_t, int32_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_i4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(int32_t, int32_t, int32_t, int32_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int32_t*)(localVarBase + __param0)), (*(int32_t*)(localVarBase + __param1)), (*(int32_t*)(localVarBase + __param2)), (*(int32_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_i8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(int64_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_i8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(int64_t, int64_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_i8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(int64_t, int64_t, int64_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_i8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(int64_t, int64_t, int64_t, int64_t, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(int64_t*)(localVarBase + __param0)), (*(int64_t*)(localVarBase + __param1)), (*(int64_t*)(localVarBase + __param2)), (*(int64_t*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_f4_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(float, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_f4_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(float, float, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_f4_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(float, float, float, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_f4_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(float, float, float, float, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(float*)(localVarBase + __param0)), (*(float*)(localVarBase + __param1)), (*(float*)(localVarBase + __param2)), (*(float*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_f8_1:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __ret = *(uint16_t*)(ip + 4);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(double, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_f8_2:
- {
- uint32_t __method = *(uint32_t*)(ip + 8);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __ret = *(uint16_t*)(ip + 6);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(double, double, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_f8_3:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __ret = *(uint16_t*)(ip + 8);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(double, double, double, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), _resolvedMethod);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CallCommonNativeStatic_f8_f8_4:
- {
- uint32_t __method = *(uint32_t*)(ip + 12);
- uint16_t __param0 = *(uint16_t*)(ip + 2);
- uint16_t __param1 = *(uint16_t*)(ip + 4);
- uint16_t __param2 = *(uint16_t*)(ip + 6);
- uint16_t __param3 = *(uint16_t*)(ip + 8);
- uint16_t __ret = *(uint16_t*)(ip + 10);
- MethodInfo* _resolvedMethod = ((MethodInfo*)imi->resolveDatas[__method]);
- RuntimeInitClassCCtorWithoutInitClass(_resolvedMethod);
- typedef double(*_NativeMethod_)(double, double, double, double, MethodInfo*);
- *(double*)(void*)(localVarBase + __ret) = ((_NativeMethod_)_resolvedMethod->methodPointerCallByInterp)((*(double*)(localVarBase + __param0)), (*(double*)(localVarBase + __param1)), (*(double*)(localVarBase + __param2)), (*(double*)(localVarBase + __param3)), _resolvedMethod);
- ip += 16;
- continue;
- }
- //!!!}}FUNCTION
- #pragma endregion
- #pragma region OBJECT
- //!!!{{OBJECT
- case HiOpcodeEnum::BoxVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(Il2CppObject**)(localVarBase + __dst)) = il2cpp::vm::Object::Box(__klass, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::UnBoxVarVar:
- {
- uint16_t __addr = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(void**)(localVarBase + __addr)) = HiUnbox((*(Il2CppObject**)(localVarBase + __obj)), __klass);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::UnBoxAnyVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- HiUnboxAny2StackObject((*(Il2CppObject**)(localVarBase + __obj)), __klass, (void*)(localVarBase + __dst));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CastclassVar:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint32_t __klass = *(uint32_t*)(ip + 4);
- HiCastClass((*(Il2CppObject**)(localVarBase + __obj)), ((Il2CppClass*)imi->resolveDatas[__klass]));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::IsInstVar:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint32_t __klass = *(uint32_t*)(ip + 4);
- (*(Il2CppObject**)(localVarBase + __obj)) = il2cpp::vm::Object::IsInst((*(Il2CppObject**)(localVarBase + __obj)), ((Il2CppClass*)imi->resolveDatas[__klass]));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdtokenVar:
- {
- uint16_t __runtimeHandle = *(uint16_t*)(ip + 2);
- void* __token = ((void*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- (*(void**)(localVarBase + __runtimeHandle)) = __token;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::MakeRefVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(Il2CppTypedRef*)(localVarBase + __dst)) = MAKE_TYPEDREFERENCE(__klass, (*(void**)(localVarBase + __data)));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::RefAnyTypeVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __typedRef = *(uint16_t*)(ip + 4);
- (*(void**)(localVarBase + __dst)) = RefAnyType((*(Il2CppTypedRef*)(localVarBase + __typedRef)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::RefAnyValueVarVar:
- {
- uint16_t __addr = *(uint16_t*)(ip + 2);
- uint16_t __typedRef = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(void**)(localVarBase + __addr)) = RefAnyValue((*(Il2CppTypedRef*)(localVarBase + __typedRef)), __klass);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_ref:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- void** _dstAddr_ = (void**)((*(void**)(localVarBase + __dst)));
- *_dstAddr_ = *(void**)(*(void**)(localVarBase + __src));
- HYBRIDCLR_SET_WRITE_BARRIER(_dstAddr_);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy1((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy2((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy4((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy8((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_12:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy12((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_16:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy16((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_20:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy20((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_24:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy24((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_28:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy28((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_32:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy32((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_n_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- std::memmove((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)), __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 8);
- std::memmove((*(void**)(localVarBase + __dst)), (*(void**)(localVarBase + __src)), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_WriteBarrier_n_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- void* _dstAddr_ = (void*)((*(void**)(localVarBase + __dst)));
- std::memmove(_dstAddr_, (*(void**)(localVarBase + __src)), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_dstAddr_, __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CpobjVarVar_WriteBarrier_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 8);
- void* _dstAddr_ = (void*)((*(void**)(localVarBase + __dst)));
- std::memmove(_dstAddr_, (*(void**)(localVarBase + __src)), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_dstAddr_, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_ref:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- *(void**)(void*)(localVarBase + __dst) = (*(void**)*(void**)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy1((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy2((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy4((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy8((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_12:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy12((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_16:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy16((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_20:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy20((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_24:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy24((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_28:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy28((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_32:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy32((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdobjVarVar_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 8);
- std::memmove((void*)(localVarBase + __dst), (*(void**)(localVarBase + __src)), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_ref:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- void** _dstAddr_ = (void**)((*(void**)(localVarBase + __dst)));
- *_dstAddr_ = (*(Il2CppObject**)(localVarBase + __src));
- HYBRIDCLR_SET_WRITE_BARRIER(_dstAddr_);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy1((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy2((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy4((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy8((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_12:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy12((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_16:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy16((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_20:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy20((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_24:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy24((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_28:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy28((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_32:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- Copy32((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 8);
- std::memmove((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __src), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StobjVarVar_WriteBarrier_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 8);
- void* _dstAddr_ = (*(void**)(localVarBase + __dst));
- std::memmove(_dstAddr_, (void*)(localVarBase + __src), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_dstAddr_, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_ref:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- void* _objAddr_ = (*(void**)(localVarBase + __obj));
- CHECK_NOT_NULL_THROW(_objAddr_);
- *(void**)_objAddr_ = nullptr;
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_objAddr_);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_1:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault1((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault2((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault4((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_8:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault8((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_12:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault12((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_16:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault16((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_20:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault20((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_24:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault24((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_28:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault28((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_32:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- InitDefault32((*(void**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_n_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __size = *(uint16_t*)(ip + 4);
- InitDefaultN((*(void**)(localVarBase + __obj)), __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_n_4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint32_t __size = *(uint32_t*)(ip + 4);
- InitDefaultN((*(void**)(localVarBase + __obj)), __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_WriteBarrier_n_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __size = *(uint16_t*)(ip + 4);
- void* _objAddr_ = (*(void**)(localVarBase + __obj));
- InitDefaultN(_objAddr_, __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_objAddr_, __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitobjVar_WriteBarrier_n_4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint32_t __size = *(uint32_t*)(ip + 4);
- void* _objAddr_ = (*(void**)(localVarBase + __obj));
- InitDefaultN(_objAddr_, __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_objAddr_, __size);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdstrVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint32_t __str = *(uint32_t*)(ip + 4);
- (*(Il2CppString**)(localVarBase + __dst)) = ((Il2CppString*)imi->resolveDatas[__str]);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(int32_t*)(localVarBase + __dst)) = *(int8_t*)((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(int32_t*)(localVarBase + __dst)) = *(uint8_t*)((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(int32_t*)(localVarBase + __dst)) = *(int16_t*)((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(int32_t*)(localVarBase + __dst)) = *(uint16_t*)((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(int32_t*)(localVarBase + __dst)) = *(int32_t*)((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(int32_t*)(localVarBase + __dst)) = *(uint32_t*)((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(int64_t*)(localVarBase + __dst)) = *(int64_t*)((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(int64_t*)(localVarBase + __dst)) = *(uint64_t*)((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_size_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy8((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_size_12:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy12((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_size_16:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy16((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_size_20:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy20((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_size_24:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy24((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_size_28:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy28((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_size_32:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy32((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_n_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- uint16_t __size = *(uint16_t*)(ip + 8);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- std::memmove((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdfldVarVar_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- uint32_t __size = *(uint32_t*)(ip + 8);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- std::memmove((void*)(localVarBase + __dst), (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __dst)) = *(int8_t*)((byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __dst)) = *(uint8_t*)((byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __dst)) = *(int16_t*)((byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __dst)) = *(uint16_t*)((byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __dst)) = *(int32_t*)((byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __dst)) = *(uint32_t*)((byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __dst)) = *(int64_t*)((byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __dst)) = *(uint64_t*)((byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_size_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- Copy8((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_size_12:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- Copy12((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_size_16:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- Copy16((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_size_20:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- Copy20((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_size_24:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- Copy24((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_size_28:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- Copy28((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_size_32:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- Copy32((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_n_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- uint16_t __size = *(uint16_t*)(ip + 8);
- std::memmove((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdfldValueTypeVarVar_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- uint32_t __size = *(uint32_t*)(ip + 8);
- std::memmove((void*)(localVarBase + __dst), (byte*)(void*)(localVarBase + __obj) + __offset, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdfldaVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __offset = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- (*(void**)(localVarBase + __dst)) = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_i1:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(int8_t*)(_fieldAddr_) = (*(int8_t*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_u1:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(uint8_t*)(_fieldAddr_) = (*(uint8_t*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_i2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(int16_t*)(_fieldAddr_) = (*(int16_t*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_u2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(uint16_t*)(_fieldAddr_) = (*(uint16_t*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_i4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(int32_t*)(_fieldAddr_) = (*(int32_t*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_u4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(uint32_t*)(_fieldAddr_) = (*(uint32_t*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_i8:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(int64_t*)(_fieldAddr_) = (*(int64_t*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_u8:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(uint64_t*)(_fieldAddr_) = (*(uint64_t*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_ref:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- *(Il2CppObject**)(_fieldAddr_) = (*(Il2CppObject**)(localVarBase + __data));HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_size_8:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy8((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_size_12:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy12((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_size_16:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy16((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_size_20:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy20((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_size_24:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy24((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_size_28:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy28((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_size_32:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- Copy32((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_n_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- uint16_t __size = *(uint16_t*)(ip + 8);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- std::memmove((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_n_4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- uint32_t __size = *(uint32_t*)(ip + 8);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- std::memmove((uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset, (void*)(localVarBase + __data), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_WriteBarrier_n_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- uint16_t __size = *(uint16_t*)(ip + 8);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- std::memmove(_fieldAddr_, (void*)(localVarBase + __data), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_, (size_t)__size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StfldVarVar_WriteBarrier_n_4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __data = *(uint16_t*)(ip + 6);
- uint32_t __size = *(uint32_t*)(ip + 8);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- void* _fieldAddr_ = (uint8_t*)(*(Il2CppObject**)(localVarBase + __obj)) + __offset;
- std::memmove(_fieldAddr_, (void*)(localVarBase + __data), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_, (size_t)__size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(int8_t*)(((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(uint8_t*)(((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(int16_t*)(((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(uint16_t*)(((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(int32_t*)(((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(uint32_t*)(((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int64_t*)(localVarBase + __dst)) = *(int64_t*)(((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int64_t*)(localVarBase + __dst)) = *(uint64_t*)(((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_size_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy8((void*)(localVarBase + __dst), ((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_size_12:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy12((void*)(localVarBase + __dst), ((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_size_16:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy16((void*)(localVarBase + __dst), ((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_size_20:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy20((void*)(localVarBase + __dst), ((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_size_24:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy24((void*)(localVarBase + __dst), ((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_size_28:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy28((void*)(localVarBase + __dst), ((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_size_32:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy32((void*)(localVarBase + __dst), ((byte*)__klass->static_fields) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_n_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- std::memmove((void*)(localVarBase + __dst), (((byte*)__klass->static_fields) + __offset), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldVarVar_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 12);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- std::memmove((void*)(localVarBase + __dst), (((byte*)__klass->static_fields) + __offset), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_i1:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(int8_t*)(_fieldAddr_) = (*(int8_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_u1:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(uint8_t*)(_fieldAddr_) = (*(uint8_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_i2:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(int16_t*)(_fieldAddr_) = (*(int16_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_u2:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(uint16_t*)(_fieldAddr_) = (*(uint16_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_i4:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(int32_t*)(_fieldAddr_) = (*(int32_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_u4:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(uint32_t*)(_fieldAddr_) = (*(uint32_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_i8:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(int64_t*)(_fieldAddr_) = (*(int64_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_u8:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(uint64_t*)(_fieldAddr_) = (*(uint64_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_ref:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- *(Il2CppObject**)(_fieldAddr_) = (*(Il2CppObject**)(localVarBase + __data));HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_size_8:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy8(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_size_12:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy12(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_size_16:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy16(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_size_20:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy20(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_size_24:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy24(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_size_28:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy28(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_size_32:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy32(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_n_2:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- std::memmove(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_n_4:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 12);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- std::memmove(((byte*)__klass->static_fields) + __offset, (void*)(localVarBase + __data), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_WriteBarrier_n_2:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- std::memmove(_fieldAddr_, (void*)(localVarBase + __data), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_, (size_t)__size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StsfldVarVar_WriteBarrier_n_4:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 12);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)__klass->static_fields) + __offset;
- std::memmove(_fieldAddr_, (void*)(localVarBase + __data), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_, (size_t)__size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldaVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(void**)(localVarBase + __dst)) = ((byte*)__klass->static_fields) + __offset;
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdsfldaFromFieldDataVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- void* __src = ((void*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- (*(void**)(localVarBase + __dst)) = __src;
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalaVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(void**)(localVarBase + __dst)) = (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset;
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(int8_t*)((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(uint8_t*)((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(int16_t*)((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(uint16_t*)((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(int32_t*)((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int32_t*)(localVarBase + __dst)) = *(uint32_t*)((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int64_t*)(localVarBase + __dst)) = *(int64_t*)((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- (*(int64_t*)(localVarBase + __dst)) = *(uint64_t*)((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_size_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy8((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_size_12:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy12((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_size_16:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy16((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_size_20:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy20((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_size_24:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy24((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_size_28:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy28((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_size_32:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy32((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_n_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- int32_t __offset = *(int32_t*)(ip + 12);
- uint16_t __size = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- std::memmove((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::LdthreadlocalVarVar_n_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 4)]);
- int32_t __offset = *(int32_t*)(ip + 8);
- uint32_t __size = *(uint32_t*)(ip + 12);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- std::memmove((void*)(localVarBase + __dst), (byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset, __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_i1:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(int8_t*)_fieldAddr_ = (*(int8_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_u1:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(uint8_t*)_fieldAddr_ = (*(uint8_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_i2:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(int16_t*)_fieldAddr_ = (*(int16_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_u2:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(uint16_t*)_fieldAddr_ = (*(uint16_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_i4:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(int32_t*)_fieldAddr_ = (*(int32_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_u4:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(uint32_t*)_fieldAddr_ = (*(uint32_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_i8:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(int64_t*)_fieldAddr_ = (*(int64_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_u8:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(uint64_t*)_fieldAddr_ = (*(uint64_t*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_ref:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- *(Il2CppObject**)_fieldAddr_ = (*(Il2CppObject**)(localVarBase + __data));HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_size_8:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy8((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset)) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_size_12:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy12((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset)) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_size_16:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy16((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset)) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_size_20:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy20((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset)) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_size_24:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy24((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset)) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_size_28:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy28((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset)) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_size_32:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- Copy32((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset)) + __offset, (void*)(localVarBase + __data));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_n_2:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- std::memmove((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset, (void*)(localVarBase + __data), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_n_4:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 12);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- std::memmove((byte*)il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset) + __offset, (void*)(localVarBase + __data), __size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_WriteBarrier_n_2:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- uint16_t __size = *(uint16_t*)(ip + 6);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- std::memmove(_fieldAddr_, (void*)(localVarBase + __data), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_, (size_t)__size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::StthreadlocalVarVar_WriteBarrier_n_4:
- {
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- uint16_t __offset = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- uint32_t __size = *(uint32_t*)(ip + 12);
- RuntimeInitClassCCtorWithoutInitClass(__klass);
- void* _fieldAddr_ = ((byte*)(il2cpp::vm::Thread::GetThreadStaticData(__klass->thread_static_fields_offset))) + __offset;
- std::memmove(_fieldAddr_, (void*)(localVarBase + __data), __size);
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_fieldAddr_, (size_t)__size);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CheckThrowIfNullVar:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- CHECK_NOT_NULL_THROW((*(Il2CppObject**)(localVarBase + __obj)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InitClassStaticCtor:
- {
- uint64_t __klass = *(uint64_t*)(ip + 8);
- RuntimeInitClassCCtorWithoutInitClass((Il2CppClass*)(__klass));
- ip += 16;
- continue;
- }
- //!!!}}OBJECT
- #pragma endregion
- #pragma region ARRAY
- //!!!{{ARRAY
- case HiOpcodeEnum::NewArrVarVar:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __size = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(Il2CppArray**)(localVarBase + __arr)) = il2cpp::vm::Array::NewSpecific(__klass, (*(int32_t*)(localVarBase + __size)));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::GetArrayLengthVarVar:
- {
- uint16_t __len = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- CHECK_NOT_NULL_THROW((*(Il2CppArray**)(localVarBase + __arr)));
- (*(int64_t*)(localVarBase + __len)) = (int64_t)il2cpp::vm::Array::GetLength((*(Il2CppArray**)(localVarBase + __arr)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementAddressAddrVarVar:
- {
- uint16_t __addr = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(void**)(localVarBase + __addr)) = GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), il2cpp::vm::Array::GetElementSize(arr->klass));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementAddressCheckAddrVarVar:
- {
- uint16_t __addr = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppClass* __eleKlass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- CheckArrayElementTypeMatch(arr->klass, __eleKlass);
- (*(void**)(localVarBase + __addr)) = GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), il2cpp::vm::Array::GetElementSize(arr->klass));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_i1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_array_get(arr, int8_t, (*(int32_t*)(localVarBase + __index)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_u1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_array_get(arr, uint8_t, (*(int32_t*)(localVarBase + __index)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_i2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_array_get(arr, int16_t, (*(int32_t*)(localVarBase + __index)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_u2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_array_get(arr, uint16_t, (*(int32_t*)(localVarBase + __index)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_i4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_array_get(arr, int32_t, (*(int32_t*)(localVarBase + __index)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_u4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(int32_t*)(localVarBase + __dst)) = il2cpp_array_get(arr, uint32_t, (*(int32_t*)(localVarBase + __index)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_i8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_array_get(arr, int64_t, (*(int32_t*)(localVarBase + __index)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_u8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- (*(int64_t*)(localVarBase + __dst)) = il2cpp_array_get(arr, uint64_t, (*(int32_t*)(localVarBase + __index)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy1((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 1));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_2:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy2((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 2));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_4:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy4((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 4));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_8:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy8((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 8));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_12:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy12((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 12));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_16:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy16((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 16));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_20:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy20((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 20));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_24:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy24((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 24));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_28:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy28((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 28));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_size_32:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- Copy32((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), 32));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetArrayElementVarVar_n:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __index = *(uint16_t*)(ip + 6);
- Il2CppArray* arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(arr, (*(int32_t*)(localVarBase + __index)));
- int32_t eleSize = il2cpp::vm::Array::GetElementSize(arr->klass);
- std::memmove((void*)(localVarBase + __dst), GET_ARRAY_ELEMENT_ADDRESS(arr, (*(int32_t*)(localVarBase + __index)), eleSize), eleSize);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_i1:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- il2cpp_array_set((*(Il2CppArray**)(localVarBase + __arr)), int8_t, (*(int32_t*)(localVarBase + __index)), (*(int8_t*)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_u1:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- il2cpp_array_set((*(Il2CppArray**)(localVarBase + __arr)), uint8_t, (*(int32_t*)(localVarBase + __index)), (*(uint8_t*)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_i2:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- il2cpp_array_set((*(Il2CppArray**)(localVarBase + __arr)), int16_t, (*(int32_t*)(localVarBase + __index)), (*(int16_t*)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_u2:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- il2cpp_array_set((*(Il2CppArray**)(localVarBase + __arr)), uint16_t, (*(int32_t*)(localVarBase + __index)), (*(uint16_t*)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_i4:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- il2cpp_array_set((*(Il2CppArray**)(localVarBase + __arr)), int32_t, (*(int32_t*)(localVarBase + __index)), (*(int32_t*)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_u4:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- il2cpp_array_set((*(Il2CppArray**)(localVarBase + __arr)), uint32_t, (*(int32_t*)(localVarBase + __index)), (*(uint32_t*)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_i8:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- il2cpp_array_set((*(Il2CppArray**)(localVarBase + __arr)), int64_t, (*(int32_t*)(localVarBase + __index)), (*(int64_t*)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_u8:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- il2cpp_array_set((*(Il2CppArray**)(localVarBase + __arr)), uint64_t, (*(int32_t*)(localVarBase + __index)), (*(uint64_t*)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_ref:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- CheckArrayElementTypeCompatible((*(Il2CppArray**)(localVarBase + __arr)), (*(Il2CppObject**)(localVarBase + __ele)));
- il2cpp_array_setref((*(Il2CppArray**)(localVarBase + __arr)), (*(int32_t*)(localVarBase + __index)), (*(Il2CppObject**)(localVarBase + __ele)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_size_12:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- Copy12(GET_ARRAY_ELEMENT_ADDRESS(_arr, (*(int32_t*)(localVarBase + __index)), 12), (void*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_size_16:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- Copy16(GET_ARRAY_ELEMENT_ADDRESS(_arr, (*(int32_t*)(localVarBase + __index)), 16), (void*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_n:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- int32_t _eleSize = il2cpp::vm::Array::GetElementSize(_arr->klass);
- SetArrayElementWithSize(_arr, _eleSize, (*(int32_t*)(localVarBase + __index)), (void*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetArrayElementVarVar_WriteBarrier_n:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, (*(int32_t*)(localVarBase + __index)));
- int32_t _eleSize = il2cpp::vm::Array::GetElementSize(_arr->klass);
- il2cpp_array_setrefwithsize(_arr, _eleSize, (*(int32_t*)(localVarBase + __index)), (void*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewMdArrVarVar_length:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(Il2CppArray**)(localVarBase + __arr)) = NewMdArray(__klass, (StackObject*)(void*)(localVarBase + __lengthIdxs), nullptr);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NewMdArrVarVar_length_bound:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __lowerBoundIdxs = *(uint16_t*)(ip + 6);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(Il2CppArray**)(localVarBase + __arr)) = NewMdArray(__klass, (StackObject*)(void*)(localVarBase + __lengthIdxs), (StackObject*)(void*)(localVarBase + __lowerBoundIdxs));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_i1:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementExpandToStack<int8_t>((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_u1:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementExpandToStack<uint8_t>((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_i2:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementExpandToStack<int16_t>((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_u2:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementExpandToStack<uint16_t>((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_i4:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementCopyToStack<int32_t>((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_u4:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementCopyToStack<uint32_t>((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_i8:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementCopyToStack<int64_t>((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_u8:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementCopyToStack<uint64_t>((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementVarVar_n:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- GetMdArrayElementBySize((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __value));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetMdArrElementAddressVarVar:
- {
- uint16_t __addr = *(uint16_t*)(ip + 2);
- uint16_t __arr = *(uint16_t*)(ip + 4);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 6);
- (*(void**)(localVarBase + __addr)) = GetMdArrayElementAddress((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_i1:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- *(int8_t*)_addr = (*(int8_t*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_u1:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- *(uint8_t*)_addr = (*(uint8_t*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_i2:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- *(int16_t*)_addr = (*(int16_t*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_u2:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- *(uint16_t*)_addr = (*(uint16_t*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_i4:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- *(int32_t*)_addr = (*(int32_t*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_u4:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- *(uint32_t*)_addr = (*(uint32_t*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_i8:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- *(int64_t*)_addr = (*(int64_t*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_u8:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- *(uint64_t*)_addr = (*(uint64_t*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_ref:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- void* _addr = GetMdArrayElementAddress(_arr, (StackObject*)(void*)(localVarBase + __lengthIdxs));
- CheckArrayElementTypeCompatible(_arr, (*(Il2CppObject**)(localVarBase + __ele)));
- *(Il2CppObject**)_addr = (*(Il2CppObject**)(localVarBase + __ele));
- HYBRIDCLR_SET_WRITE_BARRIER((void**)_addr);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_n:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- SetMdArrayElement((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::SetMdArrElementVarVar_WriteBarrier_n:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __lengthIdxs = *(uint16_t*)(ip + 4);
- uint16_t __ele = *(uint16_t*)(ip + 6);
- SetMdArrayElementWriteBarrier((*(Il2CppArray**)(localVarBase + __arr)), (StackObject*)(void*)(localVarBase + __lengthIdxs), (void*)(localVarBase + __ele));
- ip += 8;
- continue;
- }
- //!!!}}ARRAY
- #pragma endregion
- #pragma region EXCEPTION
- //!!!{{EXCEPTION
- case HiOpcodeEnum::ThrowEx:
- {
- uint16_t __exceptionObj = *(uint16_t*)(ip + 2);
- uint16_t __firstHandlerIndex = *(uint16_t*)(ip + 4);
- THROW_EX((Il2CppException*)(*(Il2CppObject**)(localVarBase + __exceptionObj)), __firstHandlerIndex);
- continue;
- }
- case HiOpcodeEnum::RethrowEx:
- {
- RETHROW_EX();
- continue;
- }
- case HiOpcodeEnum::LeaveEx:
- {
- int32_t __target = *(int32_t*)(ip + 4);
- uint16_t __firstHandlerIndex = *(uint16_t*)(ip + 2);
- LEAVE_EX(__target, __firstHandlerIndex);
- continue;
- }
- case HiOpcodeEnum::LeaveEx_Directly:
- {
- int32_t __target = *(int32_t*)(ip + 4);
- LEAVE_EX_DIRECTLY(__target);
- continue;
- }
- case HiOpcodeEnum::EndFilterEx:
- {
- uint16_t __value = *(uint16_t*)(ip + 2);
- ENDFILTER_EX((*(bool*)(localVarBase + __value)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::EndFinallyEx:
- {
- ENDFINALLY_EX();
- continue;
- }
- //!!!}}EXCEPTION
- #pragma endregion
- #pragma region instrinct
- //!!!{{INSTRINCT
- case HiOpcodeEnum::NullableNewVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- NewNullableValueType((void*)(localVarBase + __dst), (void*)(localVarBase + __data), __klass);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NullableCtorVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __data = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- InitNullableValueType((*(void**)(localVarBase + __dst)), (void*)(localVarBase + __data), __klass);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NullableHasValueVar:
- {
- uint16_t __result = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- (*(uint32_t*)(localVarBase + __result)) = IsNullableHasValue((*(void**)(localVarBase + __obj)), __klass);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NullableGetValueOrDefaultVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- GetNullableValueOrDefault2StackDataByType((void*)(localVarBase + __dst), (*(void**)(localVarBase + __obj)), __klass);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NullableGetValueOrDefaultVarVar_1:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- uint16_t __defaultValue = *(uint16_t*)(ip + 6);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- GetNullableValueOrDefault2StackDataByType((void*)(localVarBase + __dst), (*(void**)(localVarBase + __obj)), (void*)(localVarBase + __defaultValue), __klass);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NullableGetValueVarVar:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __obj = *(uint16_t*)(ip + 4);
- Il2CppClass* __klass = ((Il2CppClass*)imi->resolveDatas[*(uint32_t*)(ip + 8)]);
- GetNullableValueOrDefault2StackDataByType((void*)(localVarBase + __dst), (*(void**)(localVarBase + __obj)), nullptr, __klass);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::InterlockedCompareExchangeVarVarVarVar_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __location = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- uint16_t __comparand = *(uint16_t*)(ip + 8);
- (*(int32_t*)(localVarBase + __ret)) = HiInterlockedCompareExchange((int32_t*)(*(void**)(localVarBase + __location)), (*(int32_t*)(localVarBase + __value)), (*(int32_t*)(localVarBase + __comparand)));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::InterlockedCompareExchangeVarVarVarVar_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __location = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- uint16_t __comparand = *(uint16_t*)(ip + 8);
- (*(int64_t*)(localVarBase + __ret)) = HiInterlockedCompareExchange((int64_t*)(*(void**)(localVarBase + __location)), (*(int64_t*)(localVarBase + __value)), (*(int64_t*)(localVarBase + __comparand)));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::InterlockedCompareExchangeVarVarVarVar_pointer:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __location = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- uint16_t __comparand = *(uint16_t*)(ip + 8);
- (*(void**)(localVarBase + __ret)) = HiInterlockedCompareExchange((void**)(*(void**)(localVarBase + __location)), (*(void**)(localVarBase + __value)), (*(void**)(localVarBase + __comparand)));
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::InterlockedExchangeVarVarVar_i4:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __location = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __ret)) = HiInterlockedExchange((int32_t*)(*(void**)(localVarBase + __location)), (*(int32_t*)(localVarBase + __value)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InterlockedExchangeVarVarVar_i8:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __location = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- (*(int64_t*)(localVarBase + __ret)) = HiInterlockedExchange((int64_t*)(*(void**)(localVarBase + __location)), (*(int64_t*)(localVarBase + __value)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::InterlockedExchangeVarVarVar_pointer:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- uint16_t __location = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- (*(void**)(localVarBase + __ret)) = HiInterlockedExchange((void**)(*(void**)(localVarBase + __location)), (*(void**)(localVarBase + __value)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewSystemObjectVar:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- (*(Il2CppObject**)(localVarBase + __obj)) = il2cpp::vm::Object::New(il2cpp_defaults.object_class);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewVector2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- *(HtVector2f*)(void*)(localVarBase + __obj) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y))};
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewVector3_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- *(HtVector3f*)(void*)(localVarBase + __obj) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), 0};
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewVector3_3:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- uint16_t __z = *(uint16_t*)(ip + 8);
- *(HtVector3f*)(void*)(localVarBase + __obj) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), (*(float*)(localVarBase + __z))};
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NewVector4_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- *(HtVector4f*)(void*)(localVarBase + __obj) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), 0, 0};
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewVector4_3:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- uint16_t __z = *(uint16_t*)(ip + 8);
- *(HtVector4f*)(void*)(localVarBase + __obj) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), (*(float*)(localVarBase + __z)), 0};
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NewVector4_4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- uint16_t __z = *(uint16_t*)(ip + 8);
- uint16_t __w = *(uint16_t*)(ip + 10);
- *(HtVector4f*)(void*)(localVarBase + __obj) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), (*(float*)(localVarBase + __z)), (*(float*)(localVarBase + __w))};
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CtorVector2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- *(HtVector2f*)(*(void**)(localVarBase + __obj)) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y))};
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CtorVector3_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- *(HtVector3f*)(*(void**)(localVarBase + __obj)) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), 0};
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CtorVector3_3:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- uint16_t __z = *(uint16_t*)(ip + 8);
- *(HtVector3f*)(*(void**)(localVarBase + __obj)) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), (*(float*)(localVarBase + __z))};
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CtorVector4_2:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- *(HtVector4f*)(*(void**)(localVarBase + __obj)) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), 0, 0};
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::CtorVector4_3:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- uint16_t __z = *(uint16_t*)(ip + 8);
- *(HtVector4f*)(*(void**)(localVarBase + __obj)) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), (*(float*)(localVarBase + __z)), 0};
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::CtorVector4_4:
- {
- uint16_t __obj = *(uint16_t*)(ip + 2);
- uint16_t __x = *(uint16_t*)(ip + 4);
- uint16_t __y = *(uint16_t*)(ip + 6);
- uint16_t __z = *(uint16_t*)(ip + 8);
- uint16_t __w = *(uint16_t*)(ip + 10);
- *(HtVector4f*)(*(void**)(localVarBase + __obj)) = {(*(float*)(localVarBase + __x)), (*(float*)(localVarBase + __y)), (*(float*)(localVarBase + __z)), (*(float*)(localVarBase + __w))};
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::ArrayGetGenericValueImpl:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- int32_t _index = (*(int32_t*)(localVarBase + __index));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, _index);
- int32_t _eleSize = il2cpp::vm::Array::GetElementSize(_arr->klass);
- std::memmove((*(void**)(localVarBase + __value)), GET_ARRAY_ELEMENT_ADDRESS(_arr, _index, _eleSize), _eleSize);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::ArraySetGenericValueImpl:
- {
- uint16_t __arr = *(uint16_t*)(ip + 2);
- uint16_t __index = *(uint16_t*)(ip + 4);
- uint16_t __value = *(uint16_t*)(ip + 6);
- Il2CppArray* _arr = (*(Il2CppArray**)(localVarBase + __arr));
- int32_t _index = (*(int32_t*)(localVarBase + __index));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY(_arr, _index);
- int32_t _eleSize = il2cpp::vm::Array::GetElementSize(_arr->klass);
- il2cpp_array_setrefwithsize(_arr, _eleSize, _index, (*(void**)(localVarBase + __value)));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewString:
- {
- uint16_t __str = *(uint16_t*)(ip + 2);
- uint16_t __chars = *(uint16_t*)(ip + 4);
- Il2CppArray* _chars = (*(Il2CppArray**)(localVarBase + __chars));
- CHECK_NOT_NULL_THROW(_chars);
- (*(Il2CppString**)(localVarBase + __str)) = il2cpp::vm::String::NewUtf16((const Il2CppChar*)il2cpp::vm::Array::GetFirstElementAddress(_chars), il2cpp::vm::Array::GetLength(_chars));
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::NewString_2:
- {
- uint16_t __str = *(uint16_t*)(ip + 2);
- uint16_t __chars = *(uint16_t*)(ip + 4);
- uint16_t __startIndex = *(uint16_t*)(ip + 6);
- uint16_t __length = *(uint16_t*)(ip + 8);
- Il2CppArray* _chars = (*(Il2CppArray**)(localVarBase + __chars));
- int32_t _startIndex = (*(uint32_t*)(localVarBase + __startIndex));
- int32_t _length = (*(uint32_t*)(localVarBase + __length));
- CHECK_NOT_NULL_AND_ARRAY_BOUNDARY2(_chars, _startIndex, _length);
- (*(Il2CppString**)(localVarBase + __str)) = il2cpp::vm::String::NewUtf16(((const Il2CppChar*)il2cpp::vm::Array::GetFirstElementAddress(_chars)) + _startIndex, _length);
- ip += 16;
- continue;
- }
- case HiOpcodeEnum::NewString_3:
- {
- uint16_t __str = *(uint16_t*)(ip + 2);
- uint16_t __c = *(uint16_t*)(ip + 4);
- uint16_t __count = *(uint16_t*)(ip + 6);
- int32_t _count = (*(int32_t*)(localVarBase + __count));
- if (_count < 0)
- {
- il2cpp::vm::Exception::RaiseArgumentOutOfRangeException("new string(char c, int count)");
- }
- Il2CppChar _c = (Il2CppChar)(*(uint16_t*)(localVarBase + __c));
- Il2CppString* _str = (*(Il2CppString**)(localVarBase + __str)) = il2cpp::vm::String::NewSize(_count);
- std::fill_n(_str->chars, _count, _c);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::UnsafeEnumCast:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- uint16_t __srcType = *(uint16_t*)(ip + 6);
- (*(int32_t*)(localVarBase + __dst)) = UnsafeEnumCast((void*)(localVarBase + __src), __srcType);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::GetEnumHashCode:
- {
- uint16_t __dst = *(uint16_t*)(ip + 2);
- uint16_t __src = *(uint16_t*)(ip + 4);
- (*(int32_t*)(localVarBase + __dst)) = GetEnumLongHashCode({(*(void**)(localVarBase + __src))});
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::AssemblyGetExecutingAssembly:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- (*(Il2CppObject**)(localVarBase + __ret)) = (Il2CppObject*)il2cpp::vm::Reflection::GetAssemblyObject(frame->method->klass->image->assembly);
- ip += 8;
- continue;
- }
- case HiOpcodeEnum::MethodBaseGetCurrentMethod:
- {
- uint16_t __ret = *(uint16_t*)(ip + 2);
- (*(Il2CppObject**)(localVarBase + __ret)) = (Il2CppObject*)il2cpp::vm::Reflection::GetMethodObject(frame->method, nullptr);
- ip += 8;
- continue;
- }
- //!!!}}INSTRINCT
- #pragma endregion
- default:
- RaiseExecutionEngineException("");
- break;
- }
- }
- ExitEvalLoop:;
- }
- catch (Il2CppExceptionWrapper ex)
- {
- PREPARE_EXCEPTION(ex.ex, 0);
- FIND_NEXT_EX_HANDLER_OR_UNWIND();
- }
- return;
- UnWindFail:
- IL2CPP_ASSERT(lastUnwindException);
- IL2CPP_ASSERT(interpFrameGroup.GetFrameCount() == 0);
- il2cpp::vm::Exception::Raise(lastUnwindException);
- }
- }
- }
|