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

Safe Haskell | None
Language | Haskell2010

HelVM.HelPA.Assemblers.Frontend.EIR.DSL

# Documentation

mov :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

add :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

sub :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

load :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

store :: (EIR a, MonadDSL a m) => Register -> ImmediateORRegister -> m () #

putc :: (EIR a, MonadDSL a m) => ImmediateORRegister -> m () #

jeq :: (EIR a, MonadDSL a m) => ImmediateORRegister -> ImmediateORRegister -> Register -> m () #

jne :: (EIR a, MonadDSL a m) => ImmediateORRegister -> ImmediateORRegister -> Register -> m () #

jlt :: (EIR a, MonadDSL a m) => ImmediateORRegister -> ImmediateORRegister -> Register -> m () #

jgt :: (EIR a, MonadDSL a m) => ImmediateORRegister -> ImmediateORRegister -> Register -> m () #

jle :: (EIR a, MonadDSL a m) => ImmediateORRegister -> ImmediateORRegister -> Register -> m () #

jge :: (EIR a, MonadDSL a m) => ImmediateORRegister -> ImmediateORRegister -> Register -> m () #

jmp :: (EIR a, MonadDSL a m) => ImmediateORRegister -> m () #

eq :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

ne :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

lt :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

gt :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

le :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

ge :: (EIR a, MonadDSL a m) => ImmediateORRegister -> Register -> m () #

class EIR a where #

Minimal complete definition

movi, movr, addr, subr, loadr, storer, putcr, getc, jeqrr, jnerr, jltrr, jgtrr, jlerr, jgerr, jmpr, eqr, ner, ltr, gtr, ler, ger

Methods

movi :: MonadDSL a m => Immediate -> Register -> m () #

movr :: MonadDSL a m => Register -> Register -> m () #

addi :: MonadDSL a m => Immediate -> Register -> m () #

addr :: MonadDSL a m => Register -> Register -> m () #

subi :: MonadDSL a m => Immediate -> Register -> m () #

subr :: MonadDSL a m => Register -> Register -> m () #

loadi :: MonadDSL a m => Immediate -> Register -> m () #

loadr :: MonadDSL a m => Register -> Register -> m () #

storei :: MonadDSL a m => Register -> Immediate -> m () #

storer :: MonadDSL a m => Register -> Register -> m () #

putci :: MonadDSL a m => Immediate -> m () #

putcr :: MonadDSL a m => Register -> m () #

getc :: MonadDSL a m => Register -> m () #

jeqii :: MonadDSL a m => Immediate -> Immediate -> Register -> m () #

jeqir :: MonadDSL a m => Immediate -> Register -> Register -> m () #

jeqri :: MonadDSL a m => Register -> Immediate -> Register -> m () #

jeqrr :: MonadDSL a m => Register -> Register -> Register -> m () #

jneii :: MonadDSL a m => Immediate -> Immediate -> Register -> m () #

jneir :: MonadDSL a m => Immediate -> Register -> Register -> m () #

jneri :: MonadDSL a m => Register -> Immediate -> Register -> m () #

jnerr :: MonadDSL a m => Register -> Register -> Register -> m () #

jltii :: MonadDSL a m => Immediate -> Immediate -> Register -> m () #

jltir :: MonadDSL a m => Immediate -> Register -> Register -> m () #

jltri :: MonadDSL a m => Register -> Immediate -> Register -> m () #

jltrr :: MonadDSL a m => Register -> Register -> Register -> m () #

jgtii :: MonadDSL a m => Immediate -> Immediate -> Register -> m () #

jgtir :: MonadDSL a m => Immediate -> Register -> Register -> m () #

jgtri :: MonadDSL a m => Register -> Immediate -> Register -> m () #

jgtrr :: MonadDSL a m => Register -> Register -> Register -> m () #

jleii :: MonadDSL a m => Immediate -> Immediate -> Register -> m () #

jleir :: MonadDSL a m => Immediate -> Register -> Register -> m () #

jleri :: MonadDSL a m => Register -> Immediate -> Register -> m () #

jlerr :: MonadDSL a m => Register -> Register -> Register -> m () #

jgeii :: MonadDSL a m => Immediate -> Immediate -> Register -> m () #

jgeir :: MonadDSL a m => Immediate -> Register -> Register -> m () #

jgeri :: MonadDSL a m => Register -> Immediate -> Register -> m () #

jgerr :: MonadDSL a m => Register -> Register -> Register -> m () #

jmpi :: MonadDSL a m => Immediate -> m () #

jmpr :: MonadDSL a m => Register -> m () #

eqi :: MonadDSL a m => Immediate -> Register -> m () #

eqr :: MonadDSL a m => Register -> Register -> m () #

nei :: MonadDSL a m => Immediate -> Register -> m () #

ner :: MonadDSL a m => Register -> Register -> m () #

lti :: MonadDSL a m => Immediate -> Register -> m () #

ltr :: MonadDSL a m => Register -> Register -> m () #

gti :: MonadDSL a m => Immediate -> Register -> m () #

gtr :: MonadDSL a m => Register -> Register -> m () #

lei :: MonadDSL a m => Immediate -> Register -> m () #

ler :: MonadDSL a m => Register -> Register -> m () #

gei :: MonadDSL a m => Immediate -> Register -> m () #

ger :: MonadDSL a m => Register -> Register -> m () #

#### Instances

Instances details

EIR ExtendInstruction # |
Instance details

Defined in HelVM.HelPA.Assemblers.Frontend.EIR.DSL

Methods

movi :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

movr :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

addi :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

addr :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

subi :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

subr :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

loadi :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

loadr :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

storei :: MonadDSL ExtendInstruction m => Register -> Immediate -> m () #

storer :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

putci :: MonadDSL ExtendInstruction m => Immediate -> m () #

putcr :: MonadDSL ExtendInstruction m => Register -> m () #

getc :: MonadDSL ExtendInstruction m => Register -> m () #

jeqii :: MonadDSL ExtendInstruction m => Immediate -> Immediate -> Register -> m () #

jeqir :: MonadDSL ExtendInstruction m => Immediate -> Register -> Register -> m () #

jeqri :: MonadDSL ExtendInstruction m => Register -> Immediate -> Register -> m () #

jeqrr :: MonadDSL ExtendInstruction m => Register -> Register -> Register -> m () #

jneii :: MonadDSL ExtendInstruction m => Immediate -> Immediate -> Register -> m () #

jneir :: MonadDSL ExtendInstruction m => Immediate -> Register -> Register -> m () #

jneri :: MonadDSL ExtendInstruction m => Register -> Immediate -> Register -> m () #

jnerr :: MonadDSL ExtendInstruction m => Register -> Register -> Register -> m () #

jltii :: MonadDSL ExtendInstruction m => Immediate -> Immediate -> Register -> m () #

jltir :: MonadDSL ExtendInstruction m => Immediate -> Register -> Register -> m () #

jltri :: MonadDSL ExtendInstruction m => Register -> Immediate -> Register -> m () #

jltrr :: MonadDSL ExtendInstruction m => Register -> Register -> Register -> m () #

jgtii :: MonadDSL ExtendInstruction m => Immediate -> Immediate -> Register -> m () #

jgtir :: MonadDSL ExtendInstruction m => Immediate -> Register -> Register -> m () #

jgtri :: MonadDSL ExtendInstruction m => Register -> Immediate -> Register -> m () #

jgtrr :: MonadDSL ExtendInstruction m => Register -> Register -> Register -> m () #

jleii :: MonadDSL ExtendInstruction m => Immediate -> Immediate -> Register -> m () #

jleir :: MonadDSL ExtendInstruction m => Immediate -> Register -> Register -> m () #

jleri :: MonadDSL ExtendInstruction m => Register -> Immediate -> Register -> m () #

jlerr :: MonadDSL ExtendInstruction m => Register -> Register -> Register -> m () #

jgeii :: MonadDSL ExtendInstruction m => Immediate -> Immediate -> Register -> m () #

jgeir :: MonadDSL ExtendInstruction m => Immediate -> Register -> Register -> m () #

jgeri :: MonadDSL ExtendInstruction m => Register -> Immediate -> Register -> m () #

jgerr :: MonadDSL ExtendInstruction m => Register -> Register -> Register -> m () #

jmpi :: MonadDSL ExtendInstruction m => Immediate -> m () #

jmpr :: MonadDSL ExtendInstruction m => Register -> m () #

eqi :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

eqr :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

nei :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

ner :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

lti :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

ltr :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

gti :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

gtr :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

lei :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

ler :: MonadDSL ExtendInstruction m => Register -> Register -> m () #

gei :: MonadDSL ExtendInstruction m => Immediate -> Register -> m () #

ger :: MonadDSL ExtendInstruction m => Register -> Register -> m () #