Generate random single instructions
This commit is contained in:
52
gen/opcode.go
Normal file
52
gen/opcode.go
Normal 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))]
|
||||
}
|
||||
Reference in New Issue
Block a user