package asm import "github.com/firestuff/subcoding/vm" var opCodeByName = map[string]vm.OpCodeType{ "noop": vm.OpNoOp, "nop": vm.OpNop, "call": vm.OpCall, "cal": vm.OpCal, "return": vm.OpReturn, "ret": vm.OpRet, "move": vm.OpMove, "mov": vm.OpMov, "add": vm.OpAdd, "subtract": vm.OpSubtract, "sub": vm.OpSub, "multiply": vm.OpMultiply, "mul": vm.OpMul, "divideunsigned": vm.OpDivideUnsigned, "divu": vm.OpDivU, "dividesigned": vm.OpDivideSigned, "divs": vm.OpDivS, "isequal": vm.OpIsEqual, "eq": vm.OpEq, "islessthanunsigned": vm.OpIsLessThanUnsigned, "ltu": vm.OpLTU, "islessthansigned": vm.OpIsLessThanSigned, "lts": vm.OpLTS, "isgreaterthanunsigned": vm.OpIsGreaterThanUnsigned, "gtu": vm.OpGTU, "isgreaterthansigned": vm.OpIsGreaterThanSigned, "gts": vm.OpGTS, "islessthanorequalunsigned": vm.OpIsLessThanOrEqualUnsigned, "lteu": vm.OpLTEU, "islessthanorequalsigned": vm.OpIsLessThanOrEqualSigned, "ltes": vm.OpLTES, "isgreaterthanorequalunsigned": vm.OpIsGreaterThanOrEqualUnsigned, "gteu": vm.OpGTEU, "isgreaterthanorequalsigned": vm.OpIsGreaterThanOrEqualSigned, "gtes": vm.OpGTES, "jump": vm.OpJump, "jmp": vm.OpJmp, "jumpiftrue": vm.OpJumpIfTrue, "jmpt": vm.OpJmpT, "jumpiffalse": vm.OpJumpIfFalse, "jmpf": vm.OpJmpF, } var operandsByOpCode = map[vm.OpCodeType]int{ vm.OpNop: 0, vm.OpCal: 1, vm.OpRet: 0, vm.OpMov: 2, vm.OpAdd: 2, vm.OpSub: 2, vm.OpMul: 2, vm.OpDivU: 2, vm.OpDivS: 2, vm.OpEq: 2, vm.OpLTU: 2, vm.OpLTS: 2, vm.OpGTU: 2, vm.OpGTS: 2, vm.OpLTEU: 2, vm.OpLTES: 2, vm.OpGTEU: 2, vm.OpGTES: 2, vm.OpJmp: 1, vm.OpJmpT: 1, vm.OpJmpF: 1, }