2021-11-20 17:59:22 -10:00
|
|
|
package gen
|
|
|
|
|
|
|
|
|
|
import "github.com/firestuff/subcoding/vm"
|
|
|
|
|
|
2021-11-22 20:33:22 -08:00
|
|
|
func RandInstruction(prog *vm.Program) *vm.Instruction {
|
2021-11-20 17:59:22 -10:00
|
|
|
instr := &vm.Instruction{
|
2021-11-22 20:33:22 -08:00
|
|
|
OpCode: RandOpCode(),
|
2021-11-20 17:59:22 -10:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i, t := range vm.OperandsByOpCode[instr.OpCode] {
|
2021-11-22 20:33:22 -08:00
|
|
|
instr.Operands[i] = RandOperand(prog, t)
|
2021-11-20 17:59:22 -10:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return instr
|
|
|
|
|
}
|