1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-06-02 12:41:30 +00:00
8bitworkshop/gen/chunk-B47HKZGS.js.map

8 lines
13 KiB
Plaintext
Raw Normal View History

{
"version": 3,
"sources": ["../src/common/analysis.ts"],
"sourcesContent": ["\nimport { hex, byte2signed } from \"./util\";\nimport { OpcodeMetadata, Platform } from \"./baseplatform\";\n\nconst debug = false;\n\nexport interface CodeAnalyzer {\n showLoopTimingForPC(pc: number);\n pc2clockrange: { [key: number]: ClockRange };\n MAX_CLOCKS: number;\n}\n\n/// VCS TIMING ANALYSIS\n\n// [taken, not taken]\nconst BRANCH_CONSTRAINTS = [\n [{ N: 0 }, { N: 1 }],\n [{ N: 1 }, { N: 0 }],\n [{ V: 0 }, { V: 1 }],\n [{ V: 1 }, { V: 0 }],\n [{ C: 0 }, { C: 1 }],\n [{ C: 1 }, { C: 0 }],\n [{ Z: 0 }, { Z: 1 }],\n [{ Z: 1 }, { Z: 0 }]\n];\n\nfunction constraintEquals(a, b) {\n if (a == null || b == null)\n return null;\n for (var n in a) {\n if (b[n] !== 'undefined')\n return a[n] == b[n];\n }\n for (var n in b) {\n if (a[n] !== 'undefined')\n return a[n] == b[n];\n }\n return null;\n}\n\ninterface ClockRange {\n minclocks: number;\n maxclocks: number;\n}\n\nabstract class CodeAnalyzer6502 implements CodeAnalyzer {\n pc2clockrange: { [key: number]: ClockRange } = {};\n jsrresult: { [key: number]: ClockRange } = {};\n START_CLOCKS: number;\n MAX_CLOCKS: number;\n WRAP_CLOCKS: boolean;\n platform: Platform;\n MAX_CYCLES: number = 2000;\n\n constructor(platform: Platform) {\n this.platform = platform;\n }\n\n getClockCountsAtPC(pc) {\n var opcode = this.platform.readAddress(pc);\n var meta = this.platform.getOpcodeMetadata(opcode, pc);\n return meta; // minCycles, maxCycles\n }\n\n traceInstructions(pc: number, minclocks: number, maxclocks: number, subaddr: number, constraints) {\n if (debug) console.log(\"trace\", hex(pc), minclocks, maxclocks);\n if (!constraints) constraints = {};\n var modified = true;\n var abort = false;\n for (let i = 0; modified && !abort; i++) {\n if (i >= this.MAX_CYCLES) {\n console.log(\"too many cycles @\", hex(pc), \"routine\", hex(subaddr));\n break;\n }\n modified = false;\n if (this.WRAP_CLOCKS) {\n // wrap clocks\n minclocks = minclocks % this.MAX_CLOCKS;\n maxclocks = maxclocks % this.MAX_CLOCKS;\n if (maxclocks == minclocks - 1) {\n if (debug) console.log(\"0-75\", hex(pc), minclocks, maxclocks);\n minclocks = 0;\n maxclocks = this.MAX_CLOCKS - 1;\n }\n } else {\n // truncate clocks\n minclocks = Math.min(this.MAX_CLOCKS, minclocks);\n maxclocks = Math.min(this.MAX_CLOCKS, maxclocks);\n }\n let meta = this.getClockCountsAtPC(pc);\n let lob = this.platform.readAddress(pc + 1);\n let hib = this.platform.readAddress(pc + 2);\n let addr = lob + (hib << 8);\n let pc0 = pc;\n let pcrange = this.pc2clockrange[pc0];\n if (pcrange == null) {\n this.pc2clockrange[pc0] = pcrange = { minclocks: minclocks, maxclocks: maxclocks };\n if (debug) console.log(\"new\", hex(pc), hex(pc0), hex(subaddr), minclocks, maxclocks);\n modified = true;\n }\n //console.log(hex(pc),minclocks,maxclocks, pcrange);\n if (pcrange.minclocks != minclocks || pcrange.maxclocks != maxclocks) {\n if (this.WRAP_CLOCKS && (minclocks <= maxclocks) != (pcrange.minclocks <= pcrange.maxclocks)) {\n if (debug) console.log(\"wrap\", hex(pc), hex(pc0), hex(subaddr), minclocks, maxclocks, pcrange);\n pcrange.minclocks = minclocks = 0;\n pcrange.maxclocks = maxclocks = this.MAX_CLOCKS - 1;\n modified = true;\n }\n if (minclocks < pcrange.minclocks) {\n if (debug) console.log(\"min\", hex(pc), hex(pc0), hex(subaddr), minclocks, maxclocks, pcrange);\n pcrange.minclocks = minclocks;\n modified = true;\n }\n if (maxclocks > pcrange.maxclocks) {\n if (debug) console.log(\"max\", hex(pc), hex(pc0), hex(subaddr), minclocks, maxclocks, pcrange);\n pcrange.maxclocks = maxclocks;\n modified = true;\n }\n }\n if (!meta.insnlength) {\n console.log(\"Illegal instruction!\", hex(pc), hex(meta.opcode), meta
"mappings": "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",
"names": []
}