Generate random single instructions

This commit is contained in:
Ian Gulliver
2021-11-20 17:59:22 -10:00
parent ae771823b0
commit bdb6b17187
7 changed files with 155 additions and 4 deletions

52
gen/opcode.go Normal file
View File

@@ -0,0 +1,52 @@
package gen
import "math/rand"
import "github.com/firestuff/subcoding/vm"
var opCodes = []vm.OpCodeType{
vm.OpNop,
vm.OpMov,
vm.OpAdd,
vm.OpSub,
vm.OpMul,
vm.OpDivU,
vm.OpDivS,
vm.OpNot,
vm.OpAnd,
vm.OpOr,
vm.OpXor,
vm.OpShR,
vm.OpShL,
vm.OpEq,
vm.OpLTU,
vm.OpLTS,
vm.OpGTU,
vm.OpGTS,
vm.OpLTEU,
vm.OpLTES,
vm.OpGTEU,
vm.OpGTES,
vm.OpJmp,
vm.OpJmpT,
vm.OpJmpF,
vm.OpCal,
vm.OpCalT,
vm.OpCalF,
vm.OpRet,
vm.OpRetT,
vm.OpRetF,
}
func randOpCode() vm.OpCodeType {
// Uniform distribution
return opCodes[rand.Intn(len(opCodes))]
}