helpa-0.4.5.3: HELPA - Heavenly Esoteric Little Portable Assembler to esoteric languages

Safe Haskell | None
Language | Haskell2010

HelVM.HelPA.Assemblers.Frontend.EIR.ELVM

# Documentation

type Config = () #

type Environment = () #

type DSL a = RWS Config (DList a) Environment () #

newtype Register #

Constructors

R Natural |

newtype Immediate #

Constructors

I Integer |

type ImmediateORRegister = Either Immediate Register #

class ELVM a where #

Methods

movi :: Immediate -> Register -> DSL a #

movr :: Register -> Register -> DSL a #

addi :: Immediate -> Register -> DSL a #

addr :: Register -> Register -> DSL a #

subi :: Immediate -> Register -> DSL a #

subr :: Register -> Register -> DSL a #

loadi :: Immediate -> Register -> DSL a #

loadr :: Register -> Register -> DSL a #

storei :: Register -> Immediate -> DSL a #

storer :: Register -> Register -> DSL a #

putci :: Immediate -> DSL a #

putcr :: Register -> DSL a #

getc :: Register -> DSL a #

jeq :: ImmediateORRegister -> ImmediateORRegister -> Register -> DSL a #

jne :: ImmediateORRegister -> ImmediateORRegister -> Register -> DSL a #

jlt :: ImmediateORRegister -> ImmediateORRegister -> Register -> DSL a #

jgt :: ImmediateORRegister -> ImmediateORRegister -> Register -> DSL a #

jle :: ImmediateORRegister -> ImmediateORRegister -> Register -> DSL a #

jge :: ImmediateORRegister -> ImmediateORRegister -> Register -> DSL a #

jmp :: ImmediateORRegister -> Register -> DSL a #

eq :: ImmediateORRegister -> Register -> DSL a #

ne :: ImmediateORRegister -> Register -> DSL a #

lt :: ImmediateORRegister -> Register -> DSL a #

gt :: ImmediateORRegister -> Register -> DSL a #

le :: ImmediateORRegister -> Register -> DSL a #

ge :: ImmediateORRegister -> Register -> DSL a #

dump :: DSL a #