Files
subcoding/gen/opcode.go

55 lines
603 B
Go
Raw Permalink Normal View History

2021-11-20 17:59:22 -10:00
package gen
import "math/rand"
import "github.com/firestuff/subcoding/vm"
var opCodes = []vm.OpCodeType{
vm.OpNop,
vm.OpMov,
vm.OpAdd,
2021-11-24 20:46:48 -08:00
vm.OpSub,
2021-11-20 17:59:22 -10:00
vm.OpMul,
2021-11-24 20:46:48 -08:00
vm.OpDivU,
vm.OpDivS,
2021-11-20 17:59:22 -10:00
2021-11-24 20:46:48 -08:00
vm.OpNot,
vm.OpAnd,
vm.OpOr,
2021-11-20 17:59:22 -10:00
vm.OpXor,
2021-11-26 00:22:34 +00:00
vm.OpShR,
vm.OpShL,
vm.OpEq,
vm.OpLTU,
vm.OpLTS,
vm.OpGTU,
vm.OpGTS,
vm.OpLTEU,
vm.OpLTES,
vm.OpGTEU,
vm.OpGTES,
2021-11-24 19:52:22 -08:00
// vm.OpJmp,
// vm.OpJmpT,
// vm.OpJmpF,
// vm.OpCal,
// vm.OpCalT,
// vm.OpCalF,
// vm.OpRet,
// vm.OpRetT,
// vm.OpRetF,
2021-11-21 17:04:58 -08:00
vm.OpSqrt,
2021-11-20 17:59:22 -10:00
}
func RandOpCode() vm.OpCodeType {
2021-11-20 17:59:22 -10:00
// Uniform distribution
return opCodes[rand.Intn(len(opCodes))]
}