| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
AOC.Common.Elfcode
Contents
Synopsis
- type Mem s = MVector 6 s Int
- type IMem = Vector 6 Int
- type ECProg = Vector Instr
- data Instr = I {}
- data OpCode
- runOp :: Instr -> IMem -> (Maybe Int, IMem)
- execOp :: (PrimMonad m, PrimState m ~ s) => Instr -> Mem s -> m (Maybe Int)
- runECProg :: Finite 6 -> ECProg -> IMem -> ([Int], IMem)
- evalECProg :: Finite 6 -> ECProg -> IMem -> [Int]
- execECProg :: Finite 6 -> ECProg -> IMem -> IMem
- traceECProg :: Finite 6 -> ECProg -> IMem -> [(Maybe Int, IMem)]
- traceECProg_ :: Finite 6 -> ECProg -> IMem -> [IMem]
- optimizeEC :: [Peephole [Instr]] -> ECProg -> ECProg
- type Peephole = Parsec [Instr] ()
- peep :: Maybe Int -> Maybe Int -> Maybe (Finite 6) -> Peephole Instr
- currPeepPos :: Peephole Int
- parseElfcode :: String -> Maybe (Finite 6, ECProg)
- elfcodeParser :: Parser (Finite 6, ECProg)
Documentation
Constructors
| OAddR | |
| OAddI | |
| OMulR | |
| OMulI | |
| OBanR | |
| OBanI | |
| OBorR | |
| OBorI | |
| OSetR | |
| OSetI | |
| OGtIR | |
| OGtRI | |
| OGtRR | |
| OEqIR | |
| OEqRI | |
| OEqRR | |
| ODivR | |
| ODivI | |
| OModR | |
| ONoOp | |
| OOutR | |
| OOutI |
Optimizers
Parsing
elfcodeParser :: Parser (Finite 6, ECProg) Source #