Skip to content

Riscemu

riscemu

RISCVEmulatorTarget dataclass

Bases: Target

Source code in xdsl/targets/riscemu.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@dataclass(frozen=True)
class RISCVEmulatorTarget(Target):
    name = "riscemu"

    unlimited_regs: bool = True
    verbosity: int = 0

    def emit(self, ctx: Context, module: ModuleOp, output: IO[str]) -> None:
        try:
            from xdsl.interpreters.riscv_emulator import run_riscv
        except ImportError:
            print("Please install optional dependencies to run riscv emulation")
            return

        from xdsl.dialects.riscv import riscv_code

        code = riscv_code(module)
        with redirect_stdout(output):
            run_riscv(
                code,
                unlimited_regs=self.unlimited_regs,
                verbosity=self.verbosity,
            )

name = 'riscemu' class-attribute instance-attribute

unlimited_regs: bool = True class-attribute instance-attribute

verbosity: int = 0 class-attribute instance-attribute

__init__(unlimited_regs: bool = True, verbosity: int = 0) -> None

emit(ctx: Context, module: ModuleOp, output: IO[str]) -> None

Source code in xdsl/targets/riscemu.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
def emit(self, ctx: Context, module: ModuleOp, output: IO[str]) -> None:
    try:
        from xdsl.interpreters.riscv_emulator import run_riscv
    except ImportError:
        print("Please install optional dependencies to run riscv emulation")
        return

    from xdsl.dialects.riscv import riscv_code

    code = riscv_code(module)
    with redirect_stdout(output):
        run_riscv(
            code,
            unlimited_regs=self.unlimited_regs,
            verbosity=self.verbosity,
        )