from xdsl.ir import Dialect

from .ops import (
    GetRegisterOp,
    MI_AddOp,
    MI_AndOp,
    MI_MovOp,
    MI_OrOp,
    MI_SubOp,
    MI_XorOp,
    MR_AddOp,
    MR_AndOp,
    MR_MovOp,
    MR_OrOp,
    MR_SubOp,
    MR_XorOp,
    R_NotOp,
    R_PopOp,
    R_PushOp,
    RI_AddOp,
    RI_AndOp,
    RI_MovOp,
    RI_OrOp,
    RI_SubOp,
    RI_XorOp,
    RM_AddOp,
    RM_AndOp,
    RM_ImulOp,
    RM_MovOp,
    RM_OrOp,
    RM_SubOp,
    RM_XorOp,
    RR_AddOp,
    RR_AndOp,
    RR_ImulOp,
    RR_MovOp,
    RR_OrOp,
    RR_SubOp,
    RR_XorOp,
)
from .register import GeneralRegisterType

X86 = Dialect(
    "x86",
    [
        RR_AddOp,
        RR_SubOp,
        RR_ImulOp,
        RR_AndOp,
        RR_OrOp,
        RR_XorOp,
        RR_MovOp,
        R_PushOp,
        R_PopOp,
        R_NotOp,
        RM_AddOp,
        RM_SubOp,
        RM_ImulOp,
        RM_AndOp,
        RM_OrOp,
        RM_XorOp,
        RM_MovOp,
        RI_AddOp,
        RI_SubOp,
        RI_AndOp,
        RI_OrOp,
        RI_XorOp,
        RI_MovOp,
        MR_AddOp,
        MR_SubOp,
        MR_AndOp,
        MR_OrOp,
        MR_XorOp,
        MR_MovOp,
        MI_AddOp,
        MI_SubOp,
        MI_AndOp,
        MI_OrOp,
        MI_XorOp,
        MI_MovOp,
        GetRegisterOp,
    ],
    [
        GeneralRegisterType,
    ],
)
