UNPKG

fma-snes65816

Version:
310 lines (298 loc) 4.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require("babel-runtime/helpers/createClass"); var _createClass3 = _interopRequireDefault(_createClass2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var InstructionTickCounter = function () { function InstructionTickCounter() { (0, _classCallCheck3.default)(this, InstructionTickCounter); this.reset(); } (0, _createClass3.default)(InstructionTickCounter, [{ key: "reset", value: function reset() { this.count = 0; } }, { key: "add", value: function add(opcode) { // add one for average this.count += DURATIONS[opcode] + 1; } }, { key: "addDirect", value: function addDirect(num) { this.count += num; } }, { key: "get", value: function get() { return this.count; } }]); return InstructionTickCounter; }(); exports.default = InstructionTickCounter; var DURATIONS = { 0x61: 6, 0x63: 4, 0x65: 3, 0x67: 6, 0x69: 2, 0x6D: 4, 0x6F: 5, 0x71: 5, 0x72: 5, 0x73: 7, 0x75: 4, 0x77: 6, 0x79: 4, 0x7D: 4, 0x7F: 5, 0x21: 6, 0x23: 4, 0x25: 3, 0x27: 6, 0x29: 2, 0x2D: 4, 0x2F: 5, 0x31: 5, 0x32: 5, 0x33: 7, 0x35: 4, 0x37: 6, 0x39: 4, 0x3D: 4, 0x3F: 5, 0x06: 5, 0x0A: 2, 0x0E: 6, 0x16: 6, 0x1E: 7, 0x90: 2, 0xB0: 2, 0xF0: 2, 0x24: 3, 0x2C: 4, 0x34: 4, 0x3C: 4, 0x89: 2, 0x30: 2, 0xD0: 2, 0x10: 2, 0x80: 3, 0x00: 7, 0x82: 4, 0x50: 2, 0x70: 2, 0x18: 2, 0xD8: 2, 0x58: 2, 0xB8: 2, 0xC1: 6, 0xC3: 4, 0xC5: 3, 0xC7: 6, 0xC9: 2, 0xCD: 4, 0xCF: 5, 0xD1: 5, 0xD2: 5, 0xD3: 7, 0xD5: 4, 0xD7: 6, 0xD9: 4, 0xDD: 4, 0xDF: 5, 0x02: 7, 0xE0: 2, 0xE4: 3, 0xEC: 4, 0xC0: 2, 0xC4: 3, 0xCC: 4, 0x3A: 2, 0xC6: 5, 0xCE: 6, 0xD6: 6, 0xDE: 7, 0xCA: 2, 0x88: 2, 0x41: 6, 0x43: 4, 0x45: 3, 0x47: 6, 0x49: 2, 0x4D: 4, 0x4F: 5, 0x51: 5, 0x52: 5, 0x53: 7, 0x55: 4, 0x57: 6, 0x59: 4, 0x5D: 4, 0x5F: 5, 0x1A: 2, 0xE6: 5, 0xEE: 6, 0xF6: 6, 0xFE: 7, 0xE8: 2, 0xC8: 2, 0x4C: 3, 0x5C: 4, 0x6C: 5, 0x7C: 6, 0xDC: 6, 0x20: 6, 0x22: 8, 0xFC: 8, 0xA1: 6, 0xA3: 4, 0xA5: 3, 0xA7: 6, 0xA9: 2, 0xAD: 4, 0xAF: 5, 0xB1: 5, 0xB2: 5, 0xB3: 7, 0xB5: 4, 0xB7: 6, 0xB9: 4, 0xBD: 4, 0xBF: 5, 0xA2: 2, 0xA6: 3, 0xAE: 4, 0xB6: 4, 0xBE: 4, 0xA0: 2, 0xA4: 3, 0xAC: 4, 0xB4: 4, 0xBC: 4, 0x46: 5, 0x4A: 2, 0x4E: 6, 0x56: 6, 0x5E: 7, 0x54: 1, 0x44: 1, 0xEA: 2, 0x01: 6, 0x03: 4, 0x05: 3, 0x07: 6, 0x09: 2, 0x0D: 4, 0x0F: 5, 0x11: 5, 0x12: 5, 0x13: 7, 0x15: 4, 0x17: 6, 0x19: 4, 0x1D: 4, 0x1F: 5, 0xF4: 5, 0xD4: 6, 0x62: 6, 0x48: 3, 0x8B: 3, 0x0B: 4, 0x4B: 3, 0x08: 3, 0xDA: 3, 0x5A: 3, 0x68: 4, 0xAB: 4, 0x2B: 5, 0x28: 4, 0xFA: 4, 0x7A: 4, 0xC2: 3, 0x26: 5, 0x2A: 2, 0x2E: 6, 0x36: 6, 0x3E: 7, 0x66: 5, 0x6A: 2, 0x6E: 6, 0x76: 6, 0x7E: 7, 0x40: 6, 0x6B: 6, 0x60: 6, 0xE1: 6, 0xE3: 4, 0xE5: 3, 0xE7: 6, 0xE9: 2, 0xED: 4, 0xEF: 5, 0xF1: 5, 0xF2: 5, 0xF3: 7, 0xF5: 4, 0xF7: 6, 0xF9: 4, 0xFD: 4, 0xFF: 5, 0x38: 2, 0xF8: 2, 0x78: 2, 0xE2: 3, 0x81: 6, 0x83: 4, 0x85: 3, 0x87: 6, 0x8D: 4, 0x8F: 5, 0x91: 6, 0x92: 5, 0x93: 7, 0x95: 4, 0x97: 6, 0x99: 5, 0x9D: 5, 0x9F: 5, 0xDB: 3, 0x86: 3, 0x8E: 4, 0x96: 4, 0x84: 3, 0x8C: 4, 0x94: 4, 0x64: 3, 0x74: 4, 0x9C: 4, 0x9E: 5, 0xAA: 2, 0xA8: 2, 0x5B: 2, 0x1B: 2, 0x7B: 2, 0x14: 5, 0x1C: 6, 0x04: 5, 0x0C: 6, 0x3B: 2, 0xBA: 2, 0x8A: 2, 0x9A: 2, 0x9B: 2, 0x98: 2, 0xBB: 2, 0xCB: 3, 0x42: 0, 0xEB: 3, 0xFB: 2 }; //# sourceMappingURL=InstructionTickCounter.js.map