gameboy superoptimizer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

19 lines
443 B

from dataclasses import dataclass
from typing import List, Optional, Set, Union
from gbso.cpu import CPU, CPUState
from gbso.insn import Insn
from gbso.regs import R8
@dataclass
class Program:
outputs: Set[Union[R8, int]]
insns: List[Insn]
init_state: Optional[CPUState] = None
def execute(self) -> CPU:
cpu = CPU(state=self.init_state)
for insn in self.insns:
insn.exec(cpu)
return cpu