UNPKG

ton-assembly

Version:
1,969 lines 65.9 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.printInstruction = void 0; // AUTOGENERATED, DO NOT EDIT, generated by ../generator/gen-printer.ts const $ = __importStar(require("./printer")); const printInstruction = (p, instr) => { p.beginLine(instr.$); switch (instr.$) { case "PUSHNAN": return; case "ADD": return; case "SUB": return; case "SUBR": return; case "NEGATE": return; case "INC": return; case "DEC": return; case "MUL": return; case "POW2": return; case "AND": return; case "OR": return; case "XOR": return; case "NOT": return; case "FITSX": return; case "UFITSX": return; case "BITSIZE": return; case "UBITSIZE": return; case "MIN": return; case "MAX": return; case "MINMAX": return; case "ABS": return; case "QADD": return; case "QSUB": return; case "QSUBR": return; case "QNEGATE": return; case "QINC": return; case "QDEC": return; case "QMUL": return; case "QPOW2": return; case "QAND": return; case "QOR": return; case "QXOR": return; case "QNOT": return; case "QFITSX": return; case "QUFITSX": return; case "QBITSIZE": return; case "QUBITSIZE": return; case "QMIN": return; case "QMAX": return; case "QMINMAX": return; case "QABS": return; case "SGN": return; case "LESS": return; case "EQUAL": return; case "LEQ": return; case "GREATER": return; case "NEQ": return; case "GEQ": return; case "CMP": return; case "ISNAN": return; case "CHKNAN": return; case "QSGN": return; case "QLESS": return; case "QEQUAL": return; case "QLEQ": return; case "QGREATER": return; case "QNEQ": return; case "QGEQ": return; case "QCMP": return; case "SEMPTY": return; case "SDEMPTY": return; case "SREMPTY": return; case "SDFIRST": return; case "SDLEXCMP": return; case "SDEQ": return; case "SDPFX": return; case "SDPFXREV": return; case "SDPPFX": return; case "SDPPFXREV": return; case "SDSFX": return; case "SDSFXREV": return; case "SDPSFX": return; case "SDPSFXREV": return; case "SDCNTLEAD0": return; case "SDCNTLEAD1": return; case "SDCNTTRAIL0": return; case "SDCNTTRAIL1": return; case "NEWC": return; case "ENDC": return; case "ENDCST": return; case "STBREF": return; case "STB": return; case "STREFR": return; case "STBREFR": return; case "STSLICER": return; case "STBR": return; case "STREFQ": return; case "STBREFQ": return; case "STSLICEQ": return; case "STBQ": return; case "STREFRQ": return; case "STBREFRQ": return; case "STSLICERQ": return; case "STBRQ": return; case "ENDXC": return; case "BDEPTH": return; case "BBITS": return; case "BREFS": return; case "BBITREFS": return; case "BREMBITS": return; case "BREMREFS": return; case "BREMBITREFS": return; case "BCHKREFS": return; case "BCHKBITREFS": return; case "BCHKREFSQ": return; case "BCHKBITREFSQ": return; case "STZEROES": return; case "STONES": return; case "STSAME": return; case "CTOS": return; case "ENDS": return; case "LDREF": return; case "LDREFRTOS": return; case "SDCUTFIRST": return; case "SDSKIPFIRST": return; case "SDCUTLAST": return; case "SDSKIPLAST": return; case "SDSUBSTR": return; case "SCUTFIRST": return; case "SSKIPFIRST": return; case "SCUTLAST": return; case "SSKIPLAST": return; case "SUBSLICE": return; case "SPLIT": return; case "SPLITQ": return; case "XCTOS": return; case "XLOAD": return; case "XLOADQ": return; case "SCHKBITS": return; case "SCHKREFS": return; case "SCHKBITREFS": return; case "SCHKBITSQ": return; case "SCHKREFSQ": return; case "SCHKBITREFSQ": return; case "PLDREFVAR": return; case "SBITS": return; case "SREFS": return; case "SBITREFS": return; case "LDZEROES": return; case "LDONES": return; case "LDSAME": return; case "SDEPTH": return; case "CDEPTH": return; case "CLEVEL": return; case "CLEVELMASK": return; case "CHASHIX": return; case "CDEPTHIX": return; case "EXECUTE": return; case "JMPX": return; case "RET": return; case "RETALT": return; case "RETBOOL": return; case "CALLCC": return; case "JMPXDATA": return; case "CALLXVARARGS": return; case "RETVARARGS": return; case "JMPXVARARGS": return; case "CALLCCVARARGS": return; case "RETDATA": return; case "RUNVMX": return; case "IFRET": return; case "IFNOTRET": return; case "IF": return; case "IFNOT": return; case "IFJMP": return; case "IFNOTJMP": return; case "IFELSE": return; case "CONDSEL": return; case "CONDSELCHK": return; case "IFRETALT": return; case "IFNOTRETALT": return; case "REPEAT": return; case "REPEATEND": return; case "UNTIL": return; case "UNTILEND": return; case "WHILE": return; case "WHILEEND": return; case "AGAIN": return; case "AGAINEND": return; case "REPEATBRK": return; case "REPEATENDBRK": return; case "UNTILBRK": return; case "UNTILENDBRK": return; case "WHILEBRK": return; case "WHILEENDBRK": return; case "AGAINBRK": return; case "AGAINENDBRK": return; case "RETURNVARARGS": return; case "SETCONTVARARGS": return; case "SETNUMVARARGS": return; case "BLESS": return; case "BLESSVARARGS": return; case "PUSHCTRX": return; case "POPCTRX": return; case "SETCONTCTRX": return; case "SETCONTCTRMANYX": return; case "BOOLAND": return; case "BOOLOR": return; case "COMPOSBOTH": return; case "ATEXIT": return; case "ATEXITALT": return; case "SETEXITALT": return; case "THENRET": return; case "THENRETALT": return; case "INVERT": return; case "BOOLEVAL": return; case "SAMEALT": return; case "SAMEALTSAVE": return; case "TRY": return; case "STDICT": return; case "SKIPDICT": return; case "LDDICTS": return; case "PLDDICTS": return; case "LDDICT": return; case "PLDDICT": return; case "LDDICTQ": return; case "PLDDICTQ": return; case "PFXDICTSET": return; case "PFXDICTREPLACE": return; case "PFXDICTADD": return; case "PFXDICTDEL": return; case "PFXDICTGETQ": return; case "PFXDICTGET": return; case "PFXDICTGETJMP": return; case "PFXDICTGETEXEC": return; case "NOP": return; case "SWAP": return; case "DUP": return; case "OVER": return; case "DROP": return; case "NIP": return; case "ROT": return; case "ROTREV": return; case "PICK": return; case "ROLL": return; case "ROLLREV": return; case "BLKSWX": return; case "REVX": return; case "DROPX": return; case "TUCK": return; case "XCHGX": return; case "DEPTH": return; case "CHKDEPTH": return; case "ONLYTOPX": return; case "ONLYX": return; case "ACCEPT": return; case "SETGASLIMIT": return; case "GASCONSUMED": return; case "COMMIT": return; case "NOW": return; case "BLOCKLT": return; case "LTIME": return; case "RANDSEED": return; case "BALANCE": return; case "MYADDR": return; case "CONFIGROOT": return; case "MYCODE": return; case "INCOMINGVALUE": return; case "STORAGEFEES": return; case "PREVBLOCKSINFOTUPLE": return; case "UNPACKEDCONFIGTUPLE": return; case "DUEPAYMENT": return; case "CONFIGDICT": return; case "CONFIGPARAM": return; case "CONFIGOPTPARAM": return; case "PREVMCBLOCKS": return; case "PREVKEYBLOCK": return; case "PREVMCBLOCKS_100": return; case "GLOBALID": return; case "GETGASFEE": return; case "GETSTORAGEFEE": return; case "GETFORWARDFEE": return; case "GETPRECOMPILEDGAS": return; case "GETORIGINALFWDFEE": return; case "GETGASFEESIMPLE": return; case "GETFORWARDFEESIMPLE": return; case "GETGLOBVAR": return; case "SETGLOBVAR": return; case "RANDU256": return; case "RAND": return; case "SETRAND": return; case "ADDRAND": return; case "HASHCU": return; case "HASHSU": return; case "SHA256U": return; case "CHKSIGNU": return; case "CHKSIGNS": return; case "ECRECOVER": return; case "SECP256K1_XONLY_PUBKEY_TWEAK_ADD": return; case "P256_CHKSIGNU": return; case "P256_CHKSIGNS": return; case "RIST255_FROMHASH": return; case "RIST255_VALIDATE": return; case "RIST255_ADD": return; case "RIST255_SUB": return; case "RIST255_MUL": return; case "RIST255_MULBASE": return; case "RIST255_PUSHL": return; case "RIST255_QVALIDATE": return; case "RIST255_QADD": return; case "RIST255_QSUB": return; case "RIST255_QMUL": return; case "RIST255_QMULBASE": return; case "BLS_VERIFY": return; case "BLS_AGGREGATE": return; case "BLS_FASTAGGREGATEVERIFY": return; case "BLS_AGGREGATEVERIFY": return; case "BLS_G1_ADD": return; case "BLS_G1_SUB": return; case "BLS_G1_NEG": return; case "BLS_G1_MUL": return; case "BLS_G1_MULTIEXP": return; case "BLS_G1_ZERO": return; case "BLS_MAP_TO_G1": return; case "BLS_G1_INGROUP": return; case "BLS_G1_ISZERO": return; case "BLS_G2_ADD": return; case "BLS_G2_SUB": return; case "BLS_G2_NEG": return; case "BLS_G2_MUL": return; case "BLS_G2_MULTIEXP": return; case "BLS_G2_ZERO": return; case "BLS_MAP_TO_G2": return; case "BLS_G2_INGROUP": return; case "BLS_G2_ISZERO": return; case "BLS_PAIRING": return; case "BLS_PUSHR": return; case "CDATASIZEQ": return; case "CDATASIZE": return; case "SDATASIZEQ": return; case "SDATASIZE": return; case "LDGRAMS": return; case "LDVARINT16": return; case "STGRAMS": return; case "STVARINT16": return; case "LDVARUINT32": return; case "LDVARINT32": return; case "STVARUINT32": return; case "STVARINT32": return; case "LDMSGADDR": return; case "LDMSGADDRQ": return; case "PARSEMSGADDR": return; case "PARSEMSGADDRQ": return; case "REWRITESTDADDR": return; case "REWRITESTDADDRQ": return; case "REWRITEVARADDR": return; case "REWRITEVARADDRQ": return; case "SENDRAWMSG": return; case "RAWRESERVE": return; case "RAWRESERVEX": return; case "SETCODE": return; case "SETLIBCODE": return; case "CHANGELIB": return; case "SENDMSG": return; case "PUSHNULL": return; case "ISNULL": return; case "TUPLEVAR": return; case "INDEXVAR": return; case "UNTUPLEVAR": return; case "UNPACKFIRSTVAR": return; case "EXPLODEVAR": return; case "SETINDEXVAR": return; case "INDEXVARQ": return; case "SETINDEXVARQ": return; case "TLEN": return; case "QTLEN": return; case "ISTUPLE": return; case "LAST": return; case "TPUSH": return; case "TPOP": return; case "NULLSWAPIF": return; case "NULLSWAPIFNOT": return; case "NULLROTRIF": return; case "NULLROTRIFNOT": return; case "NULLSWAPIF2": return; case "NULLSWAPIFNOT2": return; case "NULLROTRIF2": return; case "NULLROTRIFNOT2": return; case "ADDDIVMOD": return; case "ADDDIVMODR": return; case "ADDDIVMODC": return; case "DIV": return; case "DIVR": return; case "DIVC": return; case "MOD": return; case "MODR": return; case "MODC": return; case "DIVMOD": return; case "DIVMODR": return; case "DIVMODC": return; case "QADDDIVMOD": return; case "QADDDIVMODR": return; case "QADDDIVMODC": return; case "QDIV": return; case "QDIVR": return; case "QDIVC": return; case "QMOD": return; case "QMODR": return; case "QMODC": return; case "QDIVMOD": return; case "QDIVMODR": return; case "QDIVMODC": return; case "ADDRSHIFTMOD": return; case "ADDRSHIFTMODR": return; case "ADDRSHIFTMODC": return; case "RSHIFTR": return; case "RSHIFTC": return; case "MODPOW2": return; case "MODPOW2R": return; case "MODPOW2C": return; case "RSHIFTMOD": return; case "RSHIFTMODR": return; case "RSHIFTMODC": return; case "QADDRSHIFTMOD": return; case "QADDRSHIFTMODR": return; case "QADDRSHIFTMODC": return; case "QRSHIFTR": return; case "QRSHIFTC": return; case "QMODPOW2": return; case "QMODPOW2R": return; case "QMODPOW2C": return; case "QRSHIFTMOD": return; case "QRSHIFTMODR": return; case "QRSHIFTMODC": return; case "MULADDDIVMOD": return; case "MULADDDIVMODR": return; case "MULADDDIVMODC": return; case "MULDIV": return; case "MULDIVR": return; case "MULDIVC": return; case "MULMOD": return; case "MULMODR": return; case "MULMODC": return; case "MULDIVMOD": return; case "MULDIVMODR": return; case "MULDIVMODC": return; case "QMULADDDIVMOD": return; case "QMULADDDIVMODR": return; case "QMULADDDIVMODC": return; case "QMULDIV": return; case "QMULDIVR": return; case "QMULDIVC": return; case "QMULMOD": return; case "QMULMODR": return; case "QMULMODC": return; case "QMULDIVMOD": return; case "QMULDIVMODR": return; case "QMULDIVMODC": return; case "MULADDRSHIFTMOD": return; case "MULADDRSHIFTRMOD": return; case "MULADDRSHIFTCMOD": return; case "MULRSHIFT": return; case "MULRSHIFTR": return; case "MULRSHIFTC": return; case "MULMODPOW2": return; case "MULMODPOW2R": return; case "MULMODPOW2C": return; case "MULRSHIFTMOD": return; case "MULRSHIFTRMOD": return; case "MULRSHIFTCMOD": return; case "QMULADDRSHIFTMOD": return; case "QMULADDRSHIFTRMOD": return; case "QMULADDRSHIFTCMOD": return; case "QMULRSHIFT": return; case "QMULRSHIFTR": return; case "QMULRSHIFTC": return; case "QMULMODPOW2": return; case "QMULMODPOW2R": return; case "QMULMODPOW2C": return; case "QMULRSHIFTMOD": return; case "QMULRSHIFTRMOD": return; case "QMULRSHIFTCMOD": return; case "LSHIFTADDDIVMOD": return; case "LSHIFTADDDIVMODR": return; case "LSHIFTADDDIVMODC": return; case "LSHIFTDIV": return; case "LSHIFTDIVR": return; case "LSHIFTDIVC": return; case "LSHIFTMOD": return; case "LSHIFTMODR": return; case "LSHIFTMODC": return; case "LSHIFTDIVMOD": return; case "LSHIFTDIVMODR": return; case "LSHIFTDIVMODC": return; case "QLSHIFTADDDIVMOD": return; case "QLSHIFTADDDIVMODR": return; case "QLSHIFTADDDIVMODC": return; case "QLSHIFTDIV": return; case "QLSHIFTDIVR": return; case "QLSHIFTDIVC": return; case "QLSHIFTMOD": return; case "QLSHIFTMODR": return; case "QLSHIFTMODC": return; case "QLSHIFTDIVMOD": return; case "QLSHIFTDIVMODR": return; case "QLSHIFTDIVMODC": return; case "STIX": return; case "STUX": return; case "STIXR": return; case "STUXR": return; case "STIXQ": return; case "STUXQ": return; case "STIXRQ": return; case "STUXRQ": return; case "STILE4": return; case "STULE4": return; case "STILE8": return; case "STULE8": return; case "LDIX": return; case "LDUX": return; case "PLDIX": return; case "PLDUX": return; case "LDIXQ": return; case "LDUXQ": return; case "PLDIXQ": return; case "PLDUXQ": return; case "LDSLICEX": return; case "PLDSLICEX": return; case "LDSLICEXQ": return; case "PLDSLICEXQ": return; case "LDILE4": return; case "LDULE4": return; case "LDILE8": return; case "LDULE8": return; case "PLDILE4": return; case "PLDULE4": return; case "PLDILE8": return; case "PLDULE8": return; case "LDILE4Q": return; case "LDULE4Q": return; case "LDILE8Q": return; case "LDULE8Q": return; case "PLDILE4Q": return; case "PLDULE4Q": return; case "PLDILE8Q": return; case "PLDULE8Q": return; case "DICTIGETJMP": return; case "DICTUGETJMP": return; case "DICTIGETEXEC": return; case "DICTUGETEXEC": return; case "DICTIGETJMPZ": return; case "DICTUGETJMPZ": return; case "DICTIGETEXECZ": return; case "DICTUGETEXECZ": return; case "DICTGET": return; case "DICTGETREF": return; case "DICTIGET": return; case "DICTIGETREF": return; case "DICTUGET": return; case "DICTUGETREF": return; case "DICTSET": return; case "DICTSETREF": return; case "DICTISET": return; case "DICTISETREF": return; case "DICTUSET": return; case "DICTUSETREF": return; case "DICTSETGET": return; case "DICTSETGETREF": return; case "DICTISETGET": return; case "DICTISETGETREF": return; case "DICTUSETGET": return; case "DICTUSETGETREF": return; case "DICTREPLACE": return; case "DICTREPLACEREF": return; case "DICTIREPLACE": return; case "DICTIREPLACEREF": return; case "DICTUREPLACE": return; case "DICTUREPLACEREF": return; case "DICTREPLACEGET": return; case "DICTREPLACEGETREF": return; case "DICTIREPLACEGET": return; case "DICTIREPLACEGETREF": return; case "DICTUREPLACEGET": return; case "DICTUREPLACEGETREF": return; case "DICTADD": return; case "DICTADDREF": return; case "DICTIADD": return; case "DICTIADDREF": return; case "DICTUADD": return; case "DICTUADDREF": return; case "DICTADDGET": return; case "DICTADDGETREF": return; case "DICTIADDGET": return; case "DICTIADDGETREF": return; case "DICTUADDGET": return; case "DICTUADDGETREF": return; case "DICTDELGET": return; case "DICTDELGETREF": return; case "DICTIDELGET": return; case "DICTIDELGETREF": return; case "DICTUDELGET": return; case "DICTUDELGETREF": return; case "DICTMIN": return; case "DICTMINREF": return; case "DICTIMIN": return; case "DICTIMINREF": return; case "DICTUMIN": return; case "DICTUMINREF": return; case "DICTMAX": return; case "DICTMAXREF": return; case "DICTIMAX": return; case "DICTIMAXREF": return; case "DICTUMAX": return; case "DICTUMAXREF": return; case "DICTREMMIN": return; case "DICTREMMINREF": return; case "DICTIREMMIN": return; case "DICTIREMMINREF": return; case "DICTUREMMIN": return; case "DICTUREMMINREF": return; case "DICTREMMAX": return; case "DICTREMMAXREF": return; case "DICTIREMMAX": return; case "DICTIREMMAXREF": return; case "DICTUREMMAX": return; case "DICTUREMMAXREF": return; case "DICTSETB": return; case "DICTISETB": return; case "DICTUSETB": return; case "DICTSETGETB": return; case "DICTISETGETB": return; case "DICTUSETGETB": return; case "DICTREPLACEB": return; case "DICTIREPLACEB": return; case "DICTUREPLACEB": return; case "DICTREPLACEGETB": return; case "DICTIREPLACEGETB": return; case "DICTUREPLACEGETB": return; case "DICTADDB": return; case "DICTIADDB": return; case "DICTUADDB": return; case "DICTADDGETB": return; case "DICTIADDGETB": return; case "DICTUADDGETB": return; case "DICTDEL": return; case "DICTIDEL": return; case "DICTUDEL": return; case "DICTGETOPTREF": return; case "DICTIGETOPTREF": return; case "DICTUGETOPTREF": return; case "DICTSETGETOPTREF": return; case "DICTISETGETOPTREF": return; case "DICTUSETGETOPTREF": return; case "SUBDICTGET": return; case "SUBDICTIGET": return; case "SUBDICTUGET": return; case "SUBDICTRPGET": return; case "SUBDICTIRPGET": return; case "SUBDICTURPGET": return; case "THROWANY": return; case "THROWARGANY": return; case "THROWANYIFNOT": return; case "THROWARGANYIFNOT": return; case "DICTGETNEXT": return; case "DICTGETNEXTEQ": return; case "DICTGETPREV": return; case "DICTGETPREVEQ": return; case "DICTIGETNEXT": return; case "DICTIGETNEXTEQ": return; case "DICTIGETPREV": return; case "DICTIGETPREVEQ": return; case "DICTUGETNEXT": return; case "DICTUGETNEXTEQ": return; case "DICTUGETPREV": return; case "DICTUGETPREVEQ": return; case "ADDINT": p.append(" "); p.append(instr.arg0.toString()); return; case "MULINT": p.append(" "); p.append(instr.arg0.toString()); return; case "QADDINT": p.append(" "); p.append(instr.arg0.toString()); return; case "QMULINT": p.append(" "); p.append(instr.arg0.toString()); return; case "EQINT": p.append(" "); p.append(instr.arg0.toString()); return; case "LESSINT": p.append(" "); p.append(instr.arg0.toString()); return; case "GTINT": p.append(" "); p.append(instr.arg0.toString()); return; case "NEQINT": p.append(" "); p.append(instr.arg0.toString()); return; case "QEQINT": p.append(" "); p.append(instr.arg0.toString()); return; case "QLESSINT": p.append(" "); p.append(instr.arg0.toString()); return; case "QGTINT": p.append(" "); p.append(instr.arg0.toString()); return; case "QNEQINT": p.append(" "); p.append(instr.arg0.toString()); return; case "PUSHPOW2DEC": p.append(" "); p.append(instr.arg0.toString()); return; case "PUSHNEGPOW2": p.append(" "); p.append(instr.arg0.toString()); return; case "FITS": p.append(" "); p.append(instr.arg0.toString()); return; case "UFITS": p.append(" "); p.append(instr.arg0.toString()); return; case "QFITS": p.append(" "); p.append(instr.arg0.toString()); return; case "QUFITS": p.append(" "); p.append(instr.arg0.toString()); return; case "SETCONTCTRMANY": p.append(" "); p.append(instr.arg0.toString()); return; case "CALLCCARGS": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); return; case "TRYARGS": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); return; case "PLDREFIDX": p.append(" "); p.append(instr.arg0.toString()); return; case "CHASHI": p.append(" "); p.append(instr.arg0.toString()); return; case "CDEPTHI": p.append(" "); p.append(instr.arg0.toString()); return; case "JMPDICT": p.append(" "); p.append(instr.arg0.toString()); return; case "PREPAREDICT": p.append(" "); p.append(instr.arg0.toString()); return; case "THROWARG": p.append(" "); p.append(instr.arg0.toString()); return; case "THROWARGIF": p.append(" "); p.append(instr.arg0.toString()); return; case "THROWARGIFNOT": p.append(" "); p.append(instr.arg0.toString()); return; case "JMPXARGS": p.append(" "); p.append(instr.arg0.toString()); return; case "RETARGS": p.append(" "); p.append(instr.arg0.toString()); return; case "RETURNARGS": p.append(" "); p.append(instr.arg0.toString()); return; case "BLKDROP": p.append(" "); p.append(instr.arg0.toString()); return; case "TUPLE": p.append(" "); p.append(instr.arg0.toString()); return; case "INDEX": p.append(" "); p.append(instr.arg0.toString()); return; case "UNTUPLE": p.append(" "); p.append(instr.arg0.toString()); return; case "UNPACKFIRST": p.append(" "); p.append(instr.arg0.toString()); return; case "EXPLODE": p.append(" "); p.append(instr.arg0.toString()); return; case "SETINDEX": p.append(" "); p.append(instr.arg0.toString()); return; case "INDEXQ": p.append(" "); p.append(instr.arg0.toString()); return; case "SETINDEXQ": p.append(" "); p.append(instr.arg0.toString()); return; case "XC2PU": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); p.append(" "); p.append("s"); p.append(instr.arg2.toString()); return; case "XCPU2": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); p.append(" "); p.append("s"); p.append(instr.arg2.toString()); return; case "PUSH3": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); p.append(" "); p.append("s"); p.append(instr.arg2.toString()); return; case "XCHG2": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); return; case "XCPU": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); return; case "PUSH2": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); return; case "PUXC": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); return; case "XCPUXC": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); p.append(" "); p.append("s"); p.append(instr.arg2.toString()); return; case "PUXC2": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); p.append(" "); p.append("s"); p.append(instr.arg2.toString()); return; case "PUXCPU": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); p.append(" "); p.append("s"); p.append(instr.arg2.toString()); return; case "PU2XC": p.append(" "); p.append("s"); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); p.append(" "); p.append("s"); p.append(instr.arg2.toString()); return; case "BLKSWAP": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); return; case "REVERSE": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); return; case "SETCONTARGS": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); return; case "BLESSARGS": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); return; case "STIR": p.append(" "); p.append(instr.arg0.toString()); return; case "STUR": p.append(" "); p.append(instr.arg0.toString()); return; case "STIQ": p.append(" "); p.append(instr.arg0.toString()); return; case "STUQ": p.append(" "); p.append(instr.arg0.toString()); return; case "STIRQ": p.append(" "); p.append(instr.arg0.toString()); return; case "STURQ": p.append(" "); p.append(instr.arg0.toString()); return; case "PLDI": p.append(" "); p.append(instr.arg0.toString()); return; case "PLDU": p.append(" "); p.append(instr.arg0.toString()); return; case "LDIQ": p.append(" "); p.append(instr.arg0.toString()); return; case "LDUQ": p.append(" "); p.append(instr.arg0.toString()); return; case "PLDIQ": p.append(" "); p.append(instr.arg0.toString()); return; case "PLDUQ": p.append(" "); p.append(instr.arg0.toString()); return; case "PLDUZ": p.append(" "); p.append(instr.arg0.toString()); return; case "PLDSLICE": p.append(" "); p.append(instr.arg0.toString()); return; case "LDSLICEQ": p.append(" "); p.append(instr.arg0.toString()); return; case "PLDSLICEQ": p.append(" "); p.append(instr.arg0.toString()); return; case "IFBITJMP": p.append(" "); p.append(instr.arg0.toString()); return; case "IFNBITJMP": p.append(" "); p.append(instr.arg0.toString()); return; case "INDEX2": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); return; case "INDEX3": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); p.append(" "); p.append(instr.arg2.toString()); return; case "PUSHPOW2": p.append(" "); p.append(instr.arg0.toString()); return; case "BLKPUSH": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append("s"); p.append(instr.arg1.toString()); return; case "BLKDROP2": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); p.append(instr.arg1.toString()); return; case "GETGLOB": p.append(" "); p.append(instr.arg0.toString()); return; case "SETGLOB": p.append(" "); p.append(instr.arg0.toString()); return; case "GETPARAM": p.append(" "); p.append(instr.arg0.toString()); return; case "PUSHREF": p.append(" "); $.printCode(p, instr.arg0); return; case "PUSHREFSLICE": p.append(" "); $.printCode(p, instr.arg0); return; case "PUSHREFCONT": p.append(" "); $.printCode(p, instr.arg0); return; case "CALLREF": p.append(" "); $.printCode(p, instr.arg0); return; case "JMPREF": p.append(" "); $.printCode(p, instr.arg0); return; case "JMPREFDATA": p.append(" "); $.printCode(p, instr.arg0); return; case "IFREF": p.append(" "); $.printCode(p, instr.arg0); return; case "IFNOTREF": p.append(" "); $.printCode(p, instr.arg0); return; case "IFJMPREF": p.append(" "); $.printCode(p, instr.arg0); return; case "IFNOTJMPREF": p.append(" "); $.printCode(p, instr.arg0); return; case "IFREFELSE": p.append(" "); $.printCode(p, instr.arg0); return; case "IFELSEREF": p.append(" "); $.printCode(p, instr.arg0); return; case "IFREFELSEREF": p.append(" "); $.printCode(p, instr.arg0); p.append(" "); $.printCode(p, instr.arg1); return; case "fIF": p.append(" "); p.append(`"` + instr.kind + `"`); p.append(" "); $.printCode(p, instr.trueBranch); if (instr.falseBranch !== undefined) { p.append(" "); $.printCode(p, instr.falseBranch); } return; case "IFBITJMPREF": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); $.printCode(p, instr.arg1); return; case "IFNBITJMPREF": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); $.printCode(p, instr.arg1); return; case "DICTPUSHCONST": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); $.printDictionary(p, instr.arg1); return; case "PFXDICTSWITCH": p.append(" "); p.append(instr.arg0.toString()); p.append(" "); $.printDictionary(p, instr.arg1); return; case "SDBEGINSX": return; case "SDBEGINSXQ": return; case "SDBEGINS": p.append(" "); $.printSlice(p, instr.arg0); return; case "SDBEGINSQ": p.append(" "); $.printSlice(p, instr.arg0); return; case "STREFCONST": p.append(" "); $.printCode(p, instr.arg0); return; case "STREF2CONST": p.append(" "); $.printCode(p, instr.arg0); p.append(" "); $.printCode(p, instr.arg1); return; case "THROWANYIF": return; case "THROWARGANYIF": return; case "DEBUGSTR": p.append(" "); $.printSlice(p, instr.arg0); return; case "SETCONTCTR": p.append(" "); p.append("c"); p.append(instr.arg0.toString()); return; case "SETRETCTR": p.append(" "); p.append("c"); p.append(instr.arg0.toString()); return; case "SETALTCTR": p.append(" "); p.append("c"); p.append(instr.arg0.toString()); return; case "POPSAVE": p.append(" "); p.append("c"); p.append(instr.arg0.toString()); return; case "SAVECTR": p.append(" "); p.append("c"); p.append(instr.arg0.toString()); return; case "SAVEALTCTR": p.append(" "); p.append("c"); p.append(instr.arg0.toString()); return; case "SAVEBOTHCTR": p.append(" "); p.append("c"); p.append(instr.arg0.toString()); return; case "RUNVM": p.append(" "); p.append(instr.arg0.toString()); return; case "SWAP2": return; case "DROP2": return; case "DUP2": return; case "OVER2": return; case "ADDRSHIFT_MOD": p.append(" "); p.append(instr.arg0.toString()); return; case "ADDRSHIFTR_MOD": p.append(" "); p.append(instr.arg0.toString()); return; case "ADDRSHIFTC_MOD": p.append(" "); p.append(instr.arg0.toString()); return; case "RSHIFT_": p.append(" "); p.append(instr.arg0.toString()); return; case "RSH