1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-26 06:29:29 +00:00
8bitworkshop/gen/verilog-IWJ5CSKV.js

19 lines
6.8 MiB
JavaScript
Raw Normal View History

import{a as um0,b as ca3,c as ua3}from"./chunk-SXEVG2WS.js";import"./chunk-5SHCNQ2O.js";import{j as cm0,w as zP}from"./chunk-BK23OIEH.js";import{I as em0,J as EF,O as rm0,P as km0,S as im0,T as fm0,V as E7,X as nm0,Y as tm0,m as $y0,q as xP}from"./chunk-QR47OPYG.js";import{b as LF,c as ta3,e as qy0}from"./chunk-5XVCUSSZ.js";var om0=ta3((rR,vZ)=>{var IZ={};(function(){var y;y||(y=typeof IZ!="undefined"?IZ:{});var q={},P0;for(P0 in y)y.hasOwnProperty(P0)&&(q[P0]=y[P0]);var q0="./this.program";function J9(p,H){throw H}var le=!1,W9=!1,oe=!1,vk=!1;le=typeof window=="object",W9=typeof importScripts=="function",oe=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",vk=!le&&!oe&&!W9;var Y4="",Nn,If,G7,rk;oe?(Y4=W9?LF("path").dirname(Y4)+"/":__dirname+"/",Nn=function(p,H){var f0=FI(p);return f0?H?f0:f0.toString():(G7||(G7=LF("fs")),rk||(rk=LF("path")),p=rk.normalize(p),G7.readFileSync(p,H?null:"utf8"))},If=function(p){return p=Nn(p,!0),p.buffer||(p=new Uint8Array(p)),bn(p.buffer),p},1<process.argv.length&&(q0=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),typeof vZ!="undefined"&&(vZ.exports=y),process.on("uncaughtException",function(p){if(!(p instanceof gq))throw p}),process.on("unhandledRejection",p7),J9=function(p){process.exit(p)},y.inspect=function(){return"[Emscripten Module object]"}):vk?(typeof read!="undefined"&&(Nn=function(p){var H=FI(p);return H?lq(H):read(p)}),If=function(p){var H;return(H=FI(p))?H:typeof readbuffer=="function"?new Uint8Array(readbuffer(p)):(H=read(p,"binary"),bn(typeof H=="object"),H)},typeof quit=="function"&&(J9=function(p){quit(p)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(le||W9)&&(W9?Y4=self.location.href:typeof document!="undefined"&&document.currentScript&&(Y4=document.currentScript.src),Y4=Y4.indexOf("blob:")!==0?Y4.substr(0,Y4.lastIndexOf("/")+1):"",Nn=function(p){try{var H=new XMLHttpRequest;return H.open("GET",p,!1),H.send(null),H.responseText}catch(f0){if(p=FI(p))return lq(p);throw f0}},W9&&(If=function(p){try{var H=new XMLHttpRequest;return H.open("GET",p,!1),H.responseType="arraybuffer",H.send(null),new Uint8Array(H.response)}catch(f0){if(p=FI(p))return p;throw f0}}));var mn=y.print||console.log.bind(console),Fn=y.printErr||console.warn.bind(console);for(P0 in q)q.hasOwnProperty(P0)&&(y[P0]=q[P0]);q=null,y.thisProgram&&(q0=y.thisProgram),y.quit&&(J9=y.quit);var vf=0,Mc;y.wasmBinary&&(Mc=y.wasmBinary);var gu=y.noExitRuntime||!0;function Mg(){this.buffer=new ArrayBuffer(D4/65536*65536)}function fR(){}function qt(){this.exports=function(H){function f0(Gr){return Gr.set=function(ls,B5){this[ls]=B5},Gr.get=function(ls){return this[ls]},Gr}for(var W,S=new Uint8Array(123),u0=25;u0>=0;--u0)S[48+u0]=52+u0,S[65+u0]=u0,S[97+u0]=26+u0;S[43]=62,S[47]=63;function U(Gr,ls,B5){for(var Z,n4,e=0,V=ls,W7=B5.length,O=ls+(W7*3>>2)-(B5[W7-2]=="=")-(B5[W7-1]=="=");e<W7;e+=4)Z=S[B5.charCodeAt(e+1)],n4=S[B5.charCodeAt(e+2)],Gr[V++]=S[B5.charCodeAt(e)]<<2|Z>>4,V<O&&(Gr[V++]=Z<<4|n4>>2),V<O&&(Gr[V++]=n4<<6|S[B5.charCodeAt(e+3)])}function O3(Gr){U(W,1024,"dmFsdWUudHlwZS5pc0NvbmNyZXRlKCkARmxvdwBsaXQuaXNDb25jcmV0ZSgpAExpdGVyYWxzAHZhbHVlcy5zaXplKCkgPT0gMQBnZXRTaW5nbGVWYWx1ZQBnZXRpMzIAYyA9PSAoYyAmIDB4ZmYpAGV4dGVuZEZvclBhY2tpbmcAYyA9PSAoYyAmIDB4ZmZmZikAYWxsb2NhdGlvbiBmYWlsdXJl"),U(W,1200,"pDIAAKUyAACmMgAApzIAAKgyAAB0eXBlLmlzRnVuY3Rpb24oKSAmJiAhZnVuYy5pc051bGwoKQBnZXRGdW5jAHR5cGUuaXNOdWxsYWJsZSgpAG1ha2VOdWxsAHR5cGUuZ2V0SGVhcFR5cGUoKSA9PSBIZWFwVHlwZTo6aTMxAGdldGkzMQByZWludGVycHJldGk2NAByZWludGVycHJldGkzMgBzAC9ob21lL3J1bm5lci93b3JrL2JpbmFyeWVuLmpzL2JpbmFyeWVuLmpzL2JpbmFyeWVuL3NyYy9lbXNjcmlwdGVuLW9wdGltaXplci9pc3RyaW5nLmgASVN0cmluZwAYaAIA2AU="),U(W,1476,"qTIAAKoyAACrMgAArDIAAK0yAABONHdhc20yNENvbnN0YW50RXhwcmVzc2lvblJ1bm5lcklOU18xN0NFeHByZXNzaW9uUnVubmVyRUUyME5vbmNvbnN0YW50RXhjZXB0aW9uRQBnZXRDb25zdEV4cHJlc3Npb24AbWFrZUNvbnN0YW50RXhwcmVzc2lvbgBzaXplIDw9IG51bUNodW5rcyAqIENIVU5LX1NJWkUAYWxsb2NTcGFjZQB2YWx1ZS5pc051bGwoKSAmJiAidW5leHBlY3RlZCBub24tbnVs
`)):typeof readline=="function"&&(H=readline(),H!==null&&(H+=`
`));if(!H)return null;p.input=wR(H,!0)}return p.input.shift()},Hu:function(p,H){H===null||H===10?(mn(O7(p.output,0)),p.output=[]):H!=0&&p.output.push(H)},flush:function(p){p.output&&0<p.output.length&&(mn(O7(p.output,0)),p.output=[])}},Bm0={Hu:function(p,H){H===null||H===10?(Fn(O7(p.output,0)),p.output=[]):H!=0&&p.output.push(H)},flush:function(p){p.output&&0<p.output.length&&(Fn(O7(p.output,0)),p.output=[])}},O4={mu:null,pu:function(){return O4.createNode(null,"/",16895,0)},createNode:function(p,H,f0,W){if((f0&61440)==24576||(f0&61440)==4096)throw new hk(63);return O4.mu||(O4.mu={dir:{node:{qu:O4.hu.qu,nu:O4.hu.nu,lookup:O4.hu.lookup,yu:O4.hu.yu,rename:O4.hu.rename,unlink:O4.hu.unlink,rmdir:O4.hu.rmdir,readdir:O4.hu.readdir,symlink:O4.hu.symlink},stream:{ru:O4.ju.ru}},file:{node:{qu:O4.hu.qu,nu:O4.hu.nu},stream:{ru:O4.ju.ru,read:O4.ju.read,write:O4.ju.write,Mu:O4.ju.Mu,Uu:O4.ju.Uu,Wu:O4.ju.Wu}},link:{node:{qu:O4.hu.qu,nu:O4.hu.nu,readlink:O4.hu.readlink},stream:{}},Nu:{node:{qu:O4.hu.qu,nu:O4.hu.nu},stream:Gm0}}),f0=iq(p,H,f0,W),(f0.mode&61440)==16384?(f0.hu=O4.mu.dir.node,f0.ju=O4.mu.dir.stream,f0.gu={}):(f0.mode&61440)==32768?(f0.hu=O4.mu.file.node,f0.ju=O4.mu.file.stream,f0.ku=0,f0.gu=null):(f0.mode&61440)==40960?(f0.hu=O4.mu.link.node,f0.ju=O4.mu.link.stream):(f0.mode&61440)==8192&&(f0.hu=O4.mu.Nu.node,f0.ju=O4.mu.Nu.stream),f0.timestamp=Date.now(),p&&(p.gu[H]=f0,p.timestamp=f0.timestamp),f0},wv:function(p){return p.gu?p.gu.subarray?p.gu.subarray(0,p.ku):new Uint8Array(p.gu):new Uint8Array(0)},Pu:function(p,H){var f0=p.gu?p.gu.length:0;f0>=H||(H=Math.max(H,f0*(1048576>f0?2:1.125)>>>0),f0!=0&&(H=Math.max(H,256)),f0=p.gu,p.gu=new Uint8Array(H),0<p.ku&&p.gu.set(f0.subarray(0,p.ku),0))},jv:function(p,H){if(p.ku!=H)if(H==0)p.gu=null,p.ku=0;else{var f0=p.gu;p.gu=new Uint8Array(H),f0&&p.gu.set(f0.subarray(0,Math.min(H,p.ku))),p.ku=H}},hu:{qu:function(p){var H={};return H.dev=(p.mode&61440)==8192?p.id:1,H.ino=p.id,H.mode=p.mode,H.nlink=1,H.uid=0,H.gid=0,H.rdev=p.rdev,(p.mode&61440)==16384?H.size=4096:(p.mode&61440)==32768?H.size=p.ku:(p.mode&61440)==40960?H.size=p.link.length:H.size=0,H.atime=new Date(p.timestamp),H.mtime=new Date(p.timestamp),H.ctime=new Date(p.timestamp),H.Yu=4096,H.blocks=Math.ceil(H.size/H.Yu),H},nu:function(p,H){H.mode!==void 0&&(p.mode=H.mode),H.timestamp!==void 0&&(p.timestamp=H.timestamp),H.size!==void 0&&O4.jv(p,H.size)},lookup:function(){throw sR[44]},yu:function(p,H,f0,W){return O4.createNode(p,H,f0,W)},rename:function(p,H,f0){if((p.mode&61440)==16384){try{var W=ZZ(H,f0)}catch(u0){}if(W)for(var S in W.gu)throw new hk(55)}delete p.parent.gu[p.name],p.parent.timestamp=Date.now(),p.name=f0,H.gu[f0]=p,H.timestamp=p.parent.timestamp,p.parent=H},unlink:function(p,H){delete p.gu[H],p.timestamp=Date.now()},rmdir:function(p,H){var f0=ZZ(p,H),W;for(W in f0.gu)throw new hk(55);delete p.gu[H],p.timestamp=Date.now()},readdir:function(p){var H=[".",".."],f0;for(f0 in p.gu)p.gu.hasOwnProperty(f0)&&H.push(f0);return H},symlink:function(p,H,f0){return p=O4.createNode(p,H,41471,0),p.link=f0,p},readlink:function(p){if((p.mode&61440)!=40960)throw new hk(28);return p.link}},ju:{read:function(p,H,f0,W,S){var u0=p.node.gu;if(S>=p.node.ku)return 0;if(p=Math.min(p.node.ku-S,W),8<p&&u0.subarray)H.set(u0.subarray(S,S+p),f0);else for(W=0;W<p;W++)H[f0+W]=u0[S+W];return p},write:function(p,H,f0,W,S,u0){if(H.buffer===wt.buffer&&(u0=!1),!W)return 0;if(p=p.node,p.timestamp=Date.now(),H.subarray&&(!p.gu||p.gu.subarray)){if(u0)return p.gu=H.subarray(f0,f0+W),p.ku=W;if(p.ku===0&&S===0)return p.gu=H.slice(f0,f0+W),p.ku=W;if(S+W<=p.ku)return p.gu.set(H.subarray(f0,f0+W),S),W}if(O4.Pu(p,S+W),p.gu.subarray&&H.subarray)p.gu.set(H.subarray(f0,f0+W),S);else for(u0=0;u0<W;u0++)p.gu[S+u0]=H[f0+u0];return p.ku=Math.max(p.ku,S+W),W},ru:function(p,H,f0){if(f0===1?H+=p.position:f0===2&&(p.node.mode&61440)==32768&&(H+=p.node.ku),0>H)throw new hk(28);return H},Mu:function(p,H,f0){O4.Pu(p.node,H+f0),p.node.ku=Math.max(p.node.ku,H+f0)},Uu:function(p,H,f0,W,S,u0){if(H!==0)throw new hk(28);if((p.node.mode&61440)!=32768)throw new hk(43);if(p=p.node.g
`},"%p":function(d9){return 0<=d9.Bu&&12>d9.Bu?"AM":"PM"},"%S":function(d9){return u0(d9.qv,2)},"%t":function(){return" "},"%u":function(d9){return d9.Cu||7},"%U":function(d9){var v4=new Date(d9.lu+1900,0,1),X4=v4.getDay()===0?v4:FZ(v4,7-v4.getDay());return d9=new Date(d9.lu+1900,d9.tu,d9.vu),0>U(X4,d9)?u0(Math.ceil((31-X4.getDate()+(gR(XZ(d9.getFullYear())?MZ:NZ,d9.getMonth()-1)-31)+d9.getDate())/7),2):U(X4,v4)===0?"01":"00"},"%V":function(d9){var v4=new Date(d9.lu+1901,0,4),X4=O3(new Date(d9.lu+1900,0,4));v4=O3(v4);var x5=FZ(new Date(d9.lu+1900,0,1),d9.Du);return 0>U(x5,X4)?"53":0>=U(v4,x5)?"01":u0(Math.ceil((X4.getFullYear()<d9.lu+1900?d9.Du+32-X4.getDate():d9.Du+1-X4.getDate())/7),2)},"%w":function(d9){return d9.Cu},"%W":function(d9){var v4=new Date(d9.lu,0,1),X4=v4.getDay()===1?v4:FZ(v4,v4.getDay()===0?1:7-v4.getDay()+1);return d9=new Date(d9.lu+1900,d9.tu,d9.vu),0>U(X4,d9)?u0(Math.ceil((31-X4.getDate()+(gR(XZ(d9.getFullYear())?MZ:NZ,d9.getMonth()-1)-31)+d9.getDate())/7),2):U(X4,v4)===0?"01":"00"},"%y":function(d9){return(d9.lu+1900).toString().substring(2)},"%Y":function(d9){return d9.lu+1900},"%z":function(d9){d9=d9.ov;var v4=0<=d9;return d9=Math.abs(d9)/60,(v4?"+":"-")+String("0000"+(d9/60*100+d9%60)).slice(-4)},"%Z":function(d9){return d9.rv},"%%":function(){return"%"}};for(P4 in mi)0<=f0.indexOf(P4)&&(f0=f0.replace(new RegExp(P4,"g"),mi[P4](W)));return P4=wR(f0,!1),P4.length>H?0:(wt.set(P4,p),P4.length-1)}function oq(p,H,f0,W){p||(p=this),this.parent=p,this.pu=p.pu,this.zu=null,this.id=ym0++,this.name=H,this.mode=f0,this.hu={},this.ju={},this.rdev=W}Object.defineProperties(oq.prototype,{read:{get:function(){return(this.mode&365)==365},set:function(p){p?this.mode|=365:this.mode&=-366}},write:{get:function(){return(this.mode&146)==146},set:function(p){p?this.mode|=146:this.mode&=-147}}}),cq(),KB=Array(4096),nq(O4,"/"),bl("/tmp"),bl("/home"),bl("/home/web_user"),function(){bl("/dev"),AR(259,{read:function(){return 0},write:function(H,f0,W,S){return S}}),pZ("/dev/null",259),$P(1280,dm0),$P(1536,Bm0),pZ("/dev/tty",1280),pZ("/dev/tty1",1536);var p=Im0();PB("random",p),PB("urandom",p),bl("/dev/shm"),bl("/dev/shm/tmp")}(),function(){bl("/proc");var p=bl("/proc/self");bl("/proc/self/fd"),nq({pu:function(){var H=iq(p,"fd",16895,73);return H.hu={lookup:function(f0,W){var S=EB[+W];if(!S)throw new hk(8);return f0={parent:null,pu:{Vu:"fake"},hu:{readlink:function(){return S.path}}},f0.parent=f0}},H}},"/proc/self/fd")}();var Vm0=!1;function wR(p,H){for(var f0=0,W=0;W<p.length;++W){var S=p.charCodeAt(W);55296<=S&&57343>=S&&(S=65536+((S&1023)<<10)|p.charCodeAt(++W)&1023),127>=S?++f0:f0=2047>=S?f0+2:65535>=S?f0+3:f0+4}f0=Array(f0+1);var u0=f0.length;if(W=0,0<u0){S=W,u0=W+u0-1;for(var U=0;U<p.length;++U){var O3=p.charCodeAt(U);if(55296<=O3&&57343>=O3){var Wk=p.charCodeAt(++U);O3=65536+((O3&1023)<<10)|Wk&1023}if(127>=O3){if(W>=u0)break;f0[W++]=O3}else{if(2047>=O3){if(W+1>=u0)break;f0[W++]=192|O3>>6}else{if(65535>=O3){if(W+2>=u0)break;f0[W++]=224|O3>>12}else{if(W+3>=u0)break;f0[W++]=240|O3>>18,f0[W++]=128|O3>>12&63}f0[W++]=128|O3>>6&63}f0[W++]=128|O3&63}}f0[W]=0,p=W-S}else p=0;return H&&(f0.length=p),f0}function lq(p){for(var H=[],f0=0;f0<p.length;f0++){var W=p[f0];255<W&&(Vm0&&bn(!1,"Character code "+W+" ("+String.fromCharCode(W)+") at offset "+f0+" not in 0x00-0xFF."),W&=255),H.push(String.fromCharCode(W))}return H.join("")}var Ym0=typeof atob=="function"?atob:function(p){var H="",f0=0;p=p.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(f0++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(f0++)),u0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(f0++)),U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(f0++));W=W<<2|S>>4,S=(S&15)<<4|u0>>2;var O3=(u0&3)<<6|U;H+=String.fromCharCode(W),u0!==64&&(H+=String.fromCharCode(S)),U!==64&&(H+=String.fromCharCode(O3))}while(f0<p.length);return H};function FI(p){if(LP(p)){if(p=p.slice(EP.length),typeof
`},y._BinaryenModulePrint(p),mn=W,S},H.emitStackIR=function(W){H.runPasses(["generate-stack-ir"]),W&&H.runPasses(["optimize-stack-ir"]),W=mn;let S="";return mn=u0=>{S+=u0+`
`},H.runPasses(["print-stack-ir"]),mn=W,S},H.emitAsmjs=function(){let W=mn,S="";return mn=u0=>{S+=u0+`
`},y._BinaryenModulePrintAsmjs(p),mn=W,S},H.validate=function(){return y._BinaryenModuleValidate(p)},H.optimize=function(){return y._BinaryenModuleOptimize(p)},H.optimizeFunction=function(W){return typeof W=="string"&&(W=H.getFunction(W)),y._BinaryenFunctionOptimize(W,p)},H.runPasses=function(W){return Er(()=>y._BinaryenModuleRunPasses(p,Q5(W.map(Wr)),W.length))},H.runPassesOnFunction=function(W,S){return typeof W=="string"&&(W=H.getFunction(W)),Er(()=>y._BinaryenFunctionRunPasses(W,p,Q5(S.map(Wr)),S.length))},H.autoDrop=function(){return y._BinaryenModuleAutoDrop(p)},H.dispose=function(){y._BinaryenModuleDispose(p)},H.emitBinary=function(W){return Er(()=>{var S=d5(Mm0());y._BinaryenModuleAllocateAndWrite(S,p,Wr(W));let u0=Lr[S>>>2],U=Lr[(S>>>2)+1];S=Lr[(S>>>2)+2];try{let O3=new Uint8Array(U);return O3.set($t.subarray(u0,u0+U)),typeof W=="undefined"?O3:{binary:O3,sourceMap:Zk(S)}}finally{Qg(u0),S&&Qg(S)}})},H.interpret=function(){return y._BinaryenModuleInterpret(p)},H.addDebugInfoFileName=function(W){return Er(()=>y._BinaryenModuleAddDebugInfoFileName(p,Wr(W)))},H.getDebugInfoFileName=function(W){return Zk(y._BinaryenModuleGetDebugInfoFileName(p,W))},H.setDebugLocation=function(W,S,u0,U,O3){return y._BinaryenFunctionSetDebugLocation(W,S,u0,U,O3)},H.copyExpression=function(W){return y._BinaryenExpressionCopy(W,p)},H}y.wrapModule=xZ,y.Relooper=function(p){bn(p&&typeof p=="object"&&p.ptr&&p.block&&p.if);let H=y._RelooperCreate(p.ptr);this.ptr=H,this.addBlock=function(f0){return y._RelooperAddBlock(H,f0)},this.addBranch=function(f0,W,S,u0){return y._RelooperAddBranch(f0,W,S,u0)},this.addBlockWithSwitch=function(f0,W){return y._RelooperAddBlockWithSwitch(H,f0,W)},this.addBranchForSwitch=function(f0,W,S,u0){return Er(()=>y._RelooperAddBranchForSwitch(f0,W,Q5(S),S.length,u0))},this.renderAndDispose=function(f0,W){return y._RelooperRenderAndDispose(H,f0,W)}},y.ExpressionRunner=function(p,H,f0,W){let S=y._ExpressionRunnerCreate(p.ptr,H,f0,W);this.ptr=S,this.setLocalValue=function(u0,U){return!!y._ExpressionRunnerSetLocalValue(S,u0,U)},this.setGlobalValue=function(u0,U){return Er(()=>!!y._ExpressionRunnerSetGlobalValue(S,Wr(u0),U))},this.runAndDispose=function(u0){return y._ExpressionRunnerRunAndDispose(S,u0)}};function P7(p,H,f0){H=H(p);let W=Array(H);for(let S=0;S<H;++S)W[S]=f0(p,S);return W}function Xa(p,H,f0,W,S,u0){let U=H.length;f0=f0(p);let O3=0;for(;O3<U;)O3<f0?W(p,O3,H[O3]):S(p,H[O3]),++O3;for(;f0>O3;)u0(p,--f0)}y.getExpressionId=function(p){return y._BinaryenExpressionGetId(p)},y.getExpressionType=function(p){return y._BinaryenExpressionGetType(p)},y.getExpressionInfo=function(p){let H=y._BinaryenExpressionGetId(p),f0=y._BinaryenExpressionGetType(p);switch(H){case y.BlockId:return{id:H,type:f0,name:Zk(y._BinaryenBlockGetName(p)),children:P7(p,y._BinaryenBlockGetNumChildren,y._BinaryenBlockGetChildAt)};case y.IfId:return{id:H,type:f0,condition:y._BinaryenIfGetCondition(p),ifTrue:y._BinaryenIfGetIfTrue(p),ifFalse:y._BinaryenIfGetIfFalse(p)};case y.LoopId:return{id:H,type:f0,name:Zk(y._BinaryenLoopGetName(p)),body:y._BinaryenLoopGetBody(p)};case y.BreakId:return{id:H,type:f0,name:Zk(y._BinaryenBreakGetName(p)),condition:y._BinaryenBreakGetCondition(p),value:y._BinaryenBreakGetValue(p)};case y.SwitchId:return{id:H,type:f0,names:P7(p,y._BinaryenSwitchGetNumNames,y._BinaryenSwitchGetNameAt).map(S=>Zk(S)),defaultName:Zk(y._BinaryenSwitchGetDefaultName(p)),condition:y._BinaryenSwitchGetCondition(p),value:y._BinaryenSwitchGetValue(p)};case y.CallId:return{id:H,type:f0,isReturn:!!y._BinaryenCallIsReturn(p),target:Zk(y._BinaryenCallGetTarget(p)),operands:P7(p,y._BinaryenCallGetNumOperands,y._BinaryenCallGetOperandAt)};case y.CallIndirectId:return{id:H,type:f0,isReturn:!!y._BinaryenCallIndirectIsReturn(p),target:y._BinaryenCallIndirectGetTarget(p),table:y._BinaryenCallIndirectGetTable(p),operands:P7(p,y._BinaryenCallIndirectGetNumOperands,y._BinaryenCallIndirectGetOperandAt)};case y.LocalGetId:return{id:H,type:f0,index:y._BinaryenLocalGetGetIndex(p)};case y.LocalSetId:return{id:H,type:f0,isTee:!!y._BinaryenLocalSetIsTee(p),index:y
`},y._BinaryenExpressionPrint(p),mn=H,f0},Object.defineProperty(y,"readBinary",{writable:!0}),y.readBinary=function(p){let H=wA(p,0);return p=y._BinaryenModuleRead(H,p.length),Qg(H),xZ(p)},y.parseText=function(p){let H=RI(p.length+1);return ml(p,H),p=y._BinaryenModuleParse(H),Qg(H),xZ(p)},y.getOptimizeLevel=function(){return y._BinaryenGetOptimizeLevel()},y.setOptimizeLevel=function(p){y._BinaryenSetOptimizeLevel(p)},y.getShrinkLevel=function(){return y._BinaryenGetShrinkLevel()},y.setShrinkLevel=function(p){y._BinaryenSetShrinkLevel(p)},y.getDebugInfo=function(){return!!y._BinaryenGetDebugInfo()},y.setDebugInfo=function(p){y._BinaryenSetDebugInfo(p)},y.getLowMemoryUnused=function(){return!!y._BinaryenGetLowMemoryUnused()},y.setLowMemoryUnused=function(p){y._BinaryenSetLowMemoryUnused(p)},y.getFastMath=function(){return!!y._BinaryenGetFastMath()},y.setFastMath=function(p){y._BinaryenSetFastMath(p)},y.getPassArgument=function(p){return Er(()=>{let H=y._BinaryenGetPassArgument(Wr(p));return H!==0?Zk(H):null})},y.setPassArgument=function(p,H){Er(()=>{y._BinaryenSetPassArgument(Wr(p),Wr(H))})},y.clearPassArguments=function(){y._BinaryenClearPassArguments()},y.getAlwaysInlineMaxSize=function(){return y._BinaryenGetAlwaysInlineMaxSize()},y.setAlwaysInlineMaxSize=function(p){y._BinaryenSetAlwaysInlineMaxSize(p)},y.getFlexibleInlineMaxSize=function(){return y._BinaryenGetFlexibleInlineMaxSize()},y.setFlexibleInlineMaxSize=function(p){y._BinaryenSetFlexibleInlineMaxSize(p)},y.getOneCallerInlineMaxSize=function(){return y._BinaryenGetOneCallerInlineMaxSize()},y.setOneCallerInlineMaxSize=function(p){y._BinaryenSetOneCallerInlineMaxSize(p)},y.getAllowInliningFunctionsWithLoops=function(){return!!y._BinaryenGetAllowInliningFunctionsWithLoops()},y.setAllowInliningFunctionsWithLoops=function(p){y._BinaryenSetAllowInliningFunctionsWithLoops(p)};let xg=Symbol();function I4(p){function H(f0){if(!(this instanceof H))return f0?new H(f0):null;os.call(this,f0)}return Object.assign(H,os),Object.assign(H,p),(H.prototype=Object.create(os.prototype)).constructor=H,dR(H.prototype,p),H}function dR(p,H){Object.keys(H).forEach(f0=>{let W=H[f0];if(typeof W=="function"){p[f0]=function(...u0){return this.constructor[f0](this[xg],...u0)};var S;if(W.length===1&&(S=f0.match(/^(get|is)/))){S=S[1].length;let u0=f0.charAt(S).toLowerCase()+f0.substring(S+1),U=H["set"+f0.substring(S)];Object.defineProperty(p,u0,{get(){return W(this[xg])},set(O3){if(U)U(this[xg],O3);else throw Error("property '"+u0+"' has no setter")}})}}})}function os(p){if(!p)throw Error("expression reference must not be null");this[xg]=p}os.getId=function(p){return y._BinaryenExpressionGetId(p)},os.getType=function(p){return y._BinaryenExpressionGetType(p)},os.setType=function(p,H){y._BinaryenExpressionSetType(p,H)},os.finalize=function(p){return y._BinaryenExpressionFinalize(p)},os.toText=function(p){return y.emitText(p)},dR(os.prototype,os),os.prototype.valueOf=function(){return this[xg]},y.Expression=os,y.Block=I4({getName(p){return(p=y._BinaryenBlockGetName(p))?Zk(p):null},setName(p,H){Er(()=>{y._BinaryenBlockSetName(p,Wr(H))})},getNumChildren(p){return y._BinaryenBlockGetNumChildren(p)},getChildren(p){return P7(p,y._BinaryenBlockGetNumChildren,y._BinaryenBlockGetChildAt)},setChildren(p,H){Xa(p,H,y._BinaryenBlockGetNumChildren,y._BinaryenBlockSetChildAt,y._BinaryenBlockAppendChild,y._BinaryenBlockRemoveChildAt)},getChildAt(p,H){return y._BinaryenBlockGetChildAt(p,H)},setChildAt(p,H,f0){y._BinaryenBlockSetChildAt(p,H,f0)},appendChild(p,H){return y._BinaryenBlockAppendChild(p,H)},insertChildAt(p,H,f0){y._BinaryenBlockInsertChildAt(p,H,f0)},removeChildAt(p,H){return y._BinaryenBlockRemoveChildAt(p,H)}}),y.If=I4({getCondition(p){return y._BinaryenIfGetCondition(p)},setCondition(p,H){y._BinaryenIfSetCondition(p,H)},getIfTrue(p){return y._BinaryenIfGetIfTrue(p)},setIfTrue(p,H){y._BinaryenIfSetIfTrue(p,H)},getIfFalse(p){return y._BinaryenIfGetIfFalse(p)},setIfFalse(p,H){y._BinaryenIfSetIfFalse(p,H)}}),y.Loop=I4({getName(p){return(p=y._BinaryenLoopGetName(p))?Zk(p):null},setName(p,H){Er(()=>{y._
`);return q}powercycle(){this.resetStartTimeMsec=new Date().getTime()-1,this.finished=!1,this.stopped=!1,this.basefuncs._ctor_var_reset(this.state),this.basefuncs._eval_initial(this.state);for(var q=0;q<100;q++){this.basefuncs._eval_settle(this.state),this.basefuncs._eval(this.state);var P0=this.basefuncs._change_request(this.state);if(!P0){this.settleTime=q;return}}throw new s4(null,"model did not converge on reset()")}eval(){var q=this.state.clk,P0=this.state.reset,q0=this.state.test_CPU16_top$cpu$state,J9=this.state.CPU$opcode,le=this.state.CPU$aluop,W9=q0;this.curfuncs=this.basefuncs;for(var oe=0;oe<100;oe++){this.curfuncs._eval(this.state);var vk=this.curfuncs._change_request(this.state);if(!vk){this.settleTime=oe;return}}throw new s4(null,"model did not converge on eval()")}tick2(q){for(;q-- >0;)this.state.clk=0,this.eval(),this.state.clk=1,this.eval()}defaultValue(q,P0){if(K7(q))return q.left<=31?0:BigInt(0);if(gA(q)&&typeof q.high.cvalue=="number"&&typeof q.low.cvalue=="number"){let q0,J9=q.high.cvalue-q.low.cvalue+1;if(J9<0&&(J9=-J9),K7(q.subtype))q.subtype.left<=7?q0=new Uint8Array(J9):q.subtype.left<=15?q0=new Uint16Array(J9):q.subtype.left<=31?q0=new Uint32Array(J9):q0=[];else{q0=[];for(let le=0;le<J9;le++)q0[le]=this.defaultValue(q.subtype)}if(P0!=null&&P0.initValue!=null)for(let le=0;le<P0.initValue.exprs.length;le++){let W9=P0.initValue.exprs[le];if(eR(W9)&&VI(W9.expr))q0[W9.index]=W9.expr.cvalue;else throw new s4(q,"non-const expr in initarray")}return q0}throw new s4(q,`no default value for var type: ${P0.name}`)}constValue(q){if(VI(q))return q.cvalue;throw new s4(q,"no const value for expr")}block2js(q){return this.expr2js(q)}expr2js(q,P0){if(q==null)return"/*null*/";if(Va(q)){if(this.curconsts[q.refname]!=null&&!(P0||{}).store)return this.constused++,`${this.curconsts[q.refname]}`;if(this.locals[q.refname])return`${q.refname}`;if(this.globals[q.refname])return`o.${q.refname}`;throw new s4(q,`cannot find variable '${q.refname}'`)}else if(gZ(q)){this.locals[q.name]=q;let W9=`var ${q.name}`;if(q.constValue!=null)W9+=` = ${this.constValue(q)}`;else{if(q.initValue!=null)throw new s4(q,"can't init array here");K7(q.dtype)&&q.dtype.left>31&&(W9+=" = []")}return W9}else{if(VI(q))return`0x${q.cvalue.toString(16)}`;if(KF(q))return q.bigvalue.toString();if(PF(q))switch(q.op){case"if":return q.right==null||wZ(q.right)&&q.right.exprs.length==0?`if (${this.expr2js(q.cond,{cond:!0})}) { ${this.expr2js(q.left)} }`:`if (${this.expr2js(q.cond,{cond:!0})}) { ${this.expr2js(q.left)} } else { ${this.expr2js(q.right)} }`;case"cond":case"condbound":return`(${this.expr2js(q.cond,{cond:!0})} ? ${this.expr2js(q.left)} : ${this.expr2js(q.right)})`;default:throw new s4(q,`unknown triop ${q.op}`)}else if(Yg(q))switch(q.op){case"contassign":case"assign":case"assignpre":case"assigndly":case"assignpost":return`${this.expr2js(q.right,{store:!0})} = ${this.expr2js(q.left)}`;case"arraysel":case"wordsel":return`${this.expr2js(q.left)}[${this.expr2js(q.right)}]`;case"changedet":return`$$req |= (${this.expr2js(q.left)} ^ ${this.expr2js(q.right)}); ${this.expr2js(q.right)} = ${this.expr2js(q.left)}`;default:var q0=sa3[q.op];if(!q0)throw new s4(q,`unknown binop ${q.op}`);return q0.startsWith("?")&&(q0=q0.substr(1),!P0||!P0.cond)?`((${this.expr2js(q.left)} ${q0} ${this.expr2js(q.right)})?1:0)`:`(${this.expr2js(q.left)} ${q0} ${this.expr2js(q.right)})`}else if(OF(q))switch(q.op){case"ccast":return this.expr2js(q.left);case"creturn":return`return ${this.expr2js(q.left)}`;case"creset":return this.expr2reset(q.left);case"not":return`(~${this.expr2js(q.left)})`;case"negate":return`(-${this.expr2js(q.left)})`;case"extends":let W9=32-q.widthminv;return`((${this.expr2js(q.left)} << ${W9}) >> ${W9})`;case"redxor":return`this.$$${q.op}(${this.expr2js(q.left)})`;default:throw new s4(q,`unknown unop ${q.op}`)}else if(wZ(q)){var J9=q.exprs.map(W9=>this.expr2js(W9)).join(`;
`);if(q.name){if(q.name.startsWith("_change_request"))return`var $$req = 0;
${J9}
;return $$req;`;if(q.blocktype=="sformatf"){var le=q.exprs.map(W9=>this.expr2js(W9));return le=[JSON.stringify(q.name)].concat(le),le.join(", ")}}return J9}else{if(qF(q))return`for (${this.expr2js(q.precond)}; ${this.expr2js(q.loopcond)}; ${this.expr2js(q.inc)}) { ${this.expr2js(q.body)} }`;if($F(q))return(q.funcname=="$stop"||q.funcname=="$finish")&&q.$loc?`this.${q.funcname}(o, ${JSON.stringify(q.$loc)})`:q.args==null||q.args.length==0?`this.${q.funcname}(o)`:`this.${q.funcname}(o, ${q.args.map(W9=>this.expr2js(W9)).join(", ")})`}}throw console.log(q),new Error(`unrecognized expr: ${JSON.stringify(q)}`)}expr2reset(q){if(Va(q)){if(this.curconsts[q.refname]!=null)return`${q.refname}`;if(K7(q.dtype))return q.dtype.left<=31?`${this.expr2js(q)} = 0`:`${this.expr2js(q)} = BigInt(0)`;if(gA(q.dtype)){if(K7(q.dtype.subtype))return`${this.expr2js(q)}.fill(0)`;if(gA(q.dtype.subtype)&&K7(q.dtype.subtype.subtype))return`${this.expr2js(q)}.forEach((a) => a.fill(0))`;throw new s4(q,`unsupported data type for reset: ${JSON.stringify(q.dtype)}`)}}else throw new s4(q,"can only reset var refs")}$finish(q,P0){this.finished||(console.log("Simulation $finish",P0),this.finished=!0)}$stop(q,P0){this.stopped||(console.log("Simulation $stop",P0),this.stopped=!0)}$rand(q){return Math.random()|0}$display(q,P0,...q0){console.log(P0,q0)}$readmem(q,P0,q0,J9,le,W9){for(var oe=[],vk=0;vk<P0.length;vk++)oe.push(P0[vk]>>0&255),oe.push(P0[vk]>>8&255),oe.push(P0[vk]>>16&255),oe.push(P0[vk]>>24&255);oe=oe.filter(G7=>G7!=0),oe.reverse();var Y4=$y0(oe),Nn=this.getFileData(Y4);if(Nn==null)throw new s4(null,"Could not $readmem '"+Y4+"'");var If=Nn.split(`
`).filter(G7=>G7!=="").map(G7=>parseInt(G7,W9?16:2));if(console.log("$readmem",W9,Y4,If.length),q0===null)throw new s4(null,"No destination array to $readmem "+Y4);if(q0.length<If.length)throw new s4(null,"Destination array too small to $readmem "+Y4);for(vk=0;vk<If.length;vk++)q0[vk]=If[vk]}$time(q){return new Date().getTime()-this.resetStartTimeMsec}$$redxor(q){return q=q^q>>1,q=q^q>>2,q=q^q>>4,q=q^q>>8,q=q^q>>16,q}isStopped(){return this.stopped}isFinished(){return this.finished}tick(){this.state.clk^=1,this.eval()}get(q){return this.state[q]}set(q,P0){q in this.state&&(this.state[q]=P0)}saveState(){return xP(!0,{},this.state)}getGlobals(){return this.saveState()}loadState(q){xP(!0,this.state,q)}},sa3={eq:"?===",neq:"?!==",gt:"?>",lt:"?<",gte:"?>=",lte:"?<=",and:"&",or:"|",xor:"^",add:"+",sub:"-",shiftr:">>>",shiftl:"<<",mul:"*",moddiv:"%",div:"/",muls:"*",moddivs:"%",divs:"/",gts:"?>",gtes:"?>=",lts:"?<",ltes:"?<="};var mk=qy0(om0());var Aa3=["_ctor_var_reset","_eval_initial","_eval_settle","_eval","_change_request"],Xg=0,lm0="$$MEM",oa3="$$GLOBAL",jP="$$CHANGE",SP="$$treclen",JP="$$tofs",DP="$$tend",_P="$$tbuf";function Pt(y){if(K7(y))return y.left<=7?1:y.left<=15?2:y.left<=31?4:y.left<=63?8:(y.left>>6)*8+8;if(gA(y))return(Math.abs(y.high.cvalue-y.low.cvalue)+1)*Pt(y.subtype);throw new s4(y,"don't know data type")}function la3(y){return Pt(y)>8}function am0(y){return gA(y)?am0(y.subtype):Pt(y)}function hm0(y){if(yl(y)&&gA(y.dtype))return Pt(y.dtype.subtype);throw yl(y)&&K7(y.dtype)&&y.dtype.left>63?new s4(y,"elements > 64 bits not supported"):new s4(y,"cannot figure out array element size")}function aa3(y){return Pt(kR(y))}function kR(y){if(Va(y)){for(var q=y.dtype;gA(q);)q=q.subtype;return q}else{if(Yg(y)&&y.op=="arraysel")return kR(y.left);if(Yg(y)&&y.op=="wordsel")return kR(y.left)}throw new s4(y,"cannot figure out array value type")}function ha3(y){return y<=1?1:y<=2?2:y<=4?4:8}function iR(y){return y<=4?mk.i32:y<=8?mk.i64:mk.none}var TP=class{constructor(){this.len=0;this.vars={};this.locals=[];this.params=[]}addVar(q){var P0=Pt(q.dtype),q0=this.addEntry(q.name,P0,iR(P0),q.dtype,!1);return q0.init=q.initValue,q0.constval=q.constValue,q0}alignTo(q){for(;this.len%q;)this.len++}addEntry(q,P0,q0,J9,le){this.alignTo(ha3(P0));var W9={name:q,type:J9,size:P0,itype:q0,index:this.params.length+this.locals.length,offset:this.len,init:null,constval:null,reset:!1};return this.len+=P0,W9.name!=null&&(this.vars[W9.name]=W9),le?this.params.push(W9):this.locals.push(W9),W9}getLocals(){var q=[];for(let P0 of this.locals)q.push(P0.itype);return q}lookup(q){return this.vars[q]}},dZ=class{constructor(q,P0,q0){this.getFileData=null;this.optimize=!1;this.maxEvalIterations=8;this.traceBufferSize=1044480;this.randomizeOnReset=!1;this.labelseq=0;this.hdlmod=q,this.constpool=P0,this.maxMemoryMB=q0||16,this.genMemory(),this.genFuncs(),this.validate()}async init(){await this.genModule(),this.genStateInterface(),this.enableTracing()}initSync(){this.genModuleSync(),this.genStateInterface(),this.enableTracing()}powercycle(){this.resetStartTimeMsec=new Date().getTime()-1,this.finished=!1,this.stopped=!1,this.clearMutableState(),this.setInitialValues(),this.instance.exports._ctor_var_reset(Xg),this.instance.exports._eval_initial(Xg);for(var q=0;q<100;q++){this.instance.exports._eval_settle(Xg),this.instance.exports._eval(Xg);var P0=this.instance.exports._change_request(Xg);if(!P0)return}throw new s4(null,"model did not converge on reset()")}eval(){this.instance.exports.eval(Xg)}tick(){this.state.clk^=1,this.eval()}tick2(q){this.instance.exports.tick2(Xg,q)}isFinished(){return this.finished}isStopped(){return this.stopped}saveState(){return{o:this.data8.slice(0,this.statebytes)}}loadState(q){this.data8.set(q.o)}getGlobals(){var q={};for(let[le,W9]of Object.entries(this.hdlmod.vardefs)){var P0=q,q0=le.split("$");for(var J9 of q0.slice(0,-1))P0[J9]=P0[J9]||{},P0=P0[J9];P0[q0[q0.length-1]]=this.state[le]}return q}enableTracing(){if(this.outputbytes==0)throw new Error("outputbytes == 0");if(this.outputbytes%8)throw new Error("outputbytes must be 8-
`).filter(Y4=>Y4!=="").map(Y4=>parseInt(Y4,oe?16:2)),J9=0;J9<vk.length;J9++)this.data8[P0+J9]=vk[J9];return 0}label(q){return`@${q||"label"}_${++this.labelseq}`}addCopyTraceRecFunction(){let q=this.bmod,P0=this.globals.lookup(SP).offset,q0=this.globals.lookup(JP).offset,J9=this.globals.lookup(DP).offset,le=this.globals.lookup(_P).offset;var W9=mk.i32,oe=mk.none,vk=this.label("@block"),Y4=this.label("@loop");q.addFunction("copyTraceRec",mk.createType([]),oe,[W9,W9,W9],q.block(vk,[q.local.set(0,q.i32.const(Xg)),q.local.set(1,q.i32.load(0,4,q.i32.const(P0))),q.local.set(2,q.i32.load(0,4,q.i32.const(q0))),q.loop(Y4,q.block(null,[q.i64.store(0,8,q.local.get(2,W9),q.i64.load(0,8,q.local.get(0,W9))),q.local.set(0,q.i32.add(q.local.get(0,W9),q.i32.const(8))),q.local.set(2,q.i32.add(q.local.get(2,W9),q.i32.const(8))),q.local.set(1,q.i32.sub(q.local.get(1,W9),q.i32.const(8))),this.bmod.br_if(Y4,q.local.get(1,W9))])),q.i32.store(0,4,q.i32.const(q0),q.i32.add(q.i32.load(0,4,q.i32.const(q0)),q.i32.load(0,4,q.i32.const(P0)))),q.br_if(vk,q.i32.lt_u(q.i32.load(0,4,q.i32.const(q0)),q.i32.load(0,4,q.i32.const(J9)))),q.i32.store(0,4,q.i32.const(q0),q.i32.const(le))]))}addTick2Function(){let q=this.bmod;var P0=this.label("@loop");if(this.globals.lookup("clk")){var q0=q.local.get(0,mk.i32);q.addFunction("tick2",mk.createType([mk.i32,mk.i32]),mk.none,[],q.loop(P0,q.block(null,[this.makeSetVariableFunction("clk",0),q.drop(q.call("eval",[q0],mk.i32)),this.makeSetVariableFunction("clk",1),q.drop(q.call("eval",[q0],mk.i32)),q.call("copyTraceRec",[],mk.none),q.br_if(P0,q.local.tee(1,q.i32.sub(q.local.get(1,mk.i32),q.i32.const(1)),mk.i32))]))),q.addFunctionExport("tick2","tick2")}else q.addFunctionExport("eval","tick2")}addEvalFunction(){this.bmod.addFunction("eval",mk.createType([mk.i32]),mk.i32,[],this.makeTickFuncBody(0)),this.bmod.addFunctionExport("eval","eval")}makeGetVariableFunction(q,P0){var q0=this.globals.lookup(q).type,J9={refname:q,dtype:q0};return this.e2w(J9)}makeSetVariableFunction(q,P0){var q0=this.globals.lookup(q).type,J9={refname:q,dtype:q0},le={cvalue:P0,bigvalue:null,dtype:q0};return this.assign2wasm(J9,le)}makeTickFuncBody(q){var P0=this.bmod.local.get(0,mk.i32);return q>this.maxEvalIterations?this.bmod.i32.const(q):this.bmod.block(null,[this.bmod.call("_eval",[P0],mk.none),this.bmod.if(this.bmod.call("_change_request",[P0],mk.i32),this.makeTickFuncBody(q+1),this.bmod.return(this.bmod.local.get(0,mk.i32)))],mk.i32)}funcResult(q){return q.startsWith("_change_request")?mk.i32:q=="$time"?mk.i64:q=="$rand"?mk.i32:mk.none}pushScope(q){q.parent=this.locals,this.locals=q}popScope(){this.locals=this.locals.parent}i3264(q){var P0=Pt(q),q0=iR(P0);if(q0==mk.i32)return this.bmod.i32;if(q0==mk.i64)return this.bmod.i64;throw new s4(q,"data types > 64 bits not supported")}i3264rel(q){if(yl(q.left)&&yl(q.right)){var P0=Pt(q.left.dtype),q0=Pt(q.right.dtype);return P0>q0?this.i3264(q.left.dtype):this.i3264(q.right.dtype)}throw new s4(q,`can't ${q.op} arguments`)}dataptr(){return this.bmod.local.get(0,mk.i32)}e2w(q,P0){if(q==null)return this.bmod.nop();if(wZ(q))return this.block2wasm(q,P0);if(gZ(q))return this.local2wasm(q,P0);if(Va(q))return this.varref2wasm(q,P0);if(VI(q)||KF(q))return this.const2wasm(q,P0);if($F(q))return this.funccall2wasm(q,P0);if(OF(q)||Yg(q)||PF(q)||qF(q)){var q0=`_${q.op}2wasm`,J9=this[q0];if(J9==null)throw new s4(q,`no such method ${q0}`);return this[q0](q,P0)}else throw new s4(q,"could not translate expr")}block2wasm(q,P0){var q0=q.exprs.map(le=>this.e2w(le)),J9=P0&&P0.funcblock?this.funcResult(P0.funcblock.name):mk.none;return J9==mk.i32&&q0.push(this.bmod.return(this.bmod.local.get(this.locals.lookup(jP).index,J9))),P0&&P0.resulttype&&(J9=mk.i32),this.bmod.block(q.name,q0,J9)}funccall2wasm(q,P0){var q0=[this.dataptr()];for(var J9 of q.args)q0.push(this.e2w(J9,{funcarg:!0}));var le=q.funcname;q.funcname.startsWith("$")&&((q.funcname=="$stop"||q.funcname=="$finish")&&q.$loc&&(q0=[this.bmod.i32.const(q.$loc.line)]),le+="_"+(q0.length-1));var W9=this.funcResult(q.funcname);return this.bmod.call(le,q0,W9)}const2wasm(q,P
`),Ni=Lr.message+`
`,df=0;df<D4.length;df++)df>Lr.lineNumber-5&&df<Lr.lineNumber+5&&(Ni+=D4[df]+`
`);console.log(Ni)}}dispose(){rk&&(rk.dispose(),rk=null)}async loadROM(Lr,Ei){var D4=Ei,Ni=D4.modules.TOP;if(D4.modules&&Ni){var df=!0,It=df?dZ:_B,Z7=new It(Ni,D4.modules["@CONST-POOL@"]);Z7.getFileData=this.sourceFileFetch,await Z7.init(),this.dispose(),rk=Z7;var wu=[];for(var TB in Ni.vardefs){var Iu=Ni.vardefs[TB];K7(Iu.dtype)&&wu.push({name:TB,label:Iu.origName,input:Iu.isInput,output:Iu.isOutput,len:Iu.dtype.left+1})}if(qt=wu,Ba3||(qt=qt.filter(Ng=>!Ng.label.startsWith("__V"))),v5=0,rk instanceof dZ&&(rk.randomizeOnReset=!0),this.hasvideo=rk.state.vsync!=null&&rk.state.hsync!=null&&rk.state.rgb!=null,this.hasvideo){let Ng=["clk","reset"];qt=qt.filter(Fg=>Ng.indexOf(Fg.name)<0),this.showVideoControls()}else this.hideVideoControls()}rk.powercycle(),Ei.program_rom&&Ei.program_rom_variable&&(rk.state[Ei.program_rom_variable]?rk.state[Ei.program_rom_variable].length!=Ei.program_rom.length?alert("ROM size mismatch -- expected "+rk.state[Ei.program_rom_variable].length+" got "+Ei.program_rom.length):rk.state[Ei.program_rom_variable].set(Ei.program_rom):alert("No program_rom variable found ("+Ei.program_rom_variable+")")),this.restartAudio(),this.waveview&&this.waveview.recreate(),this.reset()}showVideoControls(){$("#speed_bar").show(),$("#run_bar").show(),$("#dbg_record").show()}hideVideoControls(){$("#speed_bar").hide(),$("#run_bar").hide(),$("#dbg_record").hide()}restartAudio(){var Lr=rk&&rk.state.spkr!=null&&IA>1;q0&&!Lr?(q0.stop(),q0=null):!q0&&Lr&&(q0=new cm0(mn*this.getFrameRate()),this.isRunning()&&q0.start())}isRunning(){return If&&If.isRunning()}pause(){If.stop(),q0&&q0.stop()}resume(){If.start(),q0&&q0.start()}isBlocked(){return rk&&rk.isFinished()}isStopped(){return rk&&rk.isStopped()}setFrameRate(Lr){IA=Lr;var Ei=Math.min(60,Lr*mn);if(!If||If.frameRate!=Ei){var D4=this.isRunning();If&&If.stop(),If=new fm0(Ei,G7),D4&&If.start()}q0&&(q0.stop(),q0=null),this.restartAudio()}getFrameRate(){return IA}reset(){!rk||(v5=0,Wf&&Wf.fill(0),P0&&P0.setRotate(rk.state.rotate?-90:0),$("#verilog_bar").hide(),this.hasvideo?(rk.state.reset=1,rk.tick2(100),rk.state.reset=0):(rk.state.reset=1,this.resume()))}tick(){!rk||rk.tick2(1)}getToolForFilename(Lr){return Lr.endsWith(".asm")?"jsasm":Lr.endsWith(".ice")?"silice":"verilator"}getDefaultExtension(){return".v"}inspect(Lr){if(!!rk){if(!Lr||!Lr.match(/^\w+$/)){Mc=gu=null;return}var Ei;for(let D4 in rk.state)(D4==Lr||D4.endsWith("$"+Lr))&&(Lr=D4,Ei=rk.state[Lr]);typeof Ei=="number"?(Mc=rk.state,gu=Lr):Mc=gu=null}}getDebugTree(){return{runtime:rk,state:rk&&rk.getGlobals()}}saveState(){return{o:rk&&rk.saveState()}}loadState(Lr){Lr.o&&rk.loadState(Lr.o)}saveControlsState(){return{p1x:P0.paddle_x,p1y:P0.paddle_y,sw0:Fn[0],sw1:Fn[1],sw2:Fn[2],keycode:vf}}loadControlsState(Lr){P0.paddle_x=Lr.p1x,P0.paddle_y=Lr.p1y,Fn[0]=Lr.sw0,Fn[1]=Lr.sw1,Fn[2]=Lr.sw2,vf=Lr.keycode}getDownloadFile(){if(rk instanceof _B)return{extension:".js",blob:new Blob([rk.getJSCode()],{type:"text/plain"})};if(rk instanceof dZ)return{extension:".wat",blob:new Blob([rk.bmod.emitText()],{type:"text/plain"})}}getHDLModuleRunner(){return rk}showHelp(){return"https://8bitworkshop.com/docs/platforms/verilog/"}}return new BZ},ya3=[{id:"hvsync_generator.v",name:"Video Sync Generator"},{id:"test_hvsync.v",name:"Test Pattern"},{id:"chardisplay.v",name:"RAM Text Display"},{id:"starfield.v",name:"Scrolling Starfield"},{id:"ball_paddle.v",name:"Brick Smash Game"}],ma3=function(y,q){this.__proto__=new UP(y,q),this.getPresets=function(){return ya3},this.setVideoParams(800-64,520,25e6)};EF.verilog=UP;EF["verilog-vga"]=ma3;EF["verilog-test"]=UP;
//# sourceMappingURL=verilog-IWJ5CSKV.js.map