diff --git a/src/arch/interface/quad.py b/src/arch/interface/quad.py index fd5ac192b..a9e4140d4 100644 --- a/src/arch/interface/quad.py +++ b/src/arch/interface/quad.py @@ -10,7 +10,7 @@ class Quad: """Implements a Quad code instruction.""" - instr: str + instr: ICInstruction args: tuple[str, ...] def __init__(self, instr: ICInstruction, *args) -> None: diff --git a/src/arch/z80/backend/icinstruction.py b/src/arch/z80/backend/icinstruction.py index 6ecec1e2b..2ae2c19be 100644 --- a/src/arch/z80/backend/icinstruction.py +++ b/src/arch/z80/backend/icinstruction.py @@ -1,3 +1,4 @@ +from enum import StrEnum from functools import lru_cache from typing import Any @@ -7,7 +8,7 @@ # HINT: Do not use Enums here. They cannot be subclassed -class ICInstruction: +class ICInstruction(StrEnum): ADDU8 = "addu8" ADDI8 = "addi8" ADDI16 = "addi16" diff --git a/src/arch/z80/backend/main.py b/src/arch/z80/backend/main.py index 536868bdd..79d8d487f 100644 --- a/src/arch/z80/backend/main.py +++ b/src/arch/z80/backend/main.py @@ -145,7 +145,7 @@ class Backend(BackendInterface): def _set_quad_table(self): """Lowlevel (to ASM) instructions implementation""" - self._QUAD_TABLE = { + self._QUAD_TABLE: dict[ICInstruction, ICInfo] = { ICInstruction.ADDU8: ICInfo(3, Bits8.add8), ICInstruction.ADDI8: ICInfo(3, Bits8.add8), ICInstruction.ADDI16: ICInfo(3, Bits16.add16),