mini-ml-0.1.0.0: MiniML compiler
Safe HaskellSafe-Inferred
LanguageHaskell2010

CodeGen.RiscV.Lib.Types

Documentation

newtype Label Source #

Constructors

Label Text 

Instances

Instances details
Pretty Label Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Methods

pretty :: Label -> Doc ann #

prettyList :: [Label] -> Doc ann #

data Instruction Source #

Constructors

Instruction OpCode [Operand] 

Instances

Instances details
Pretty Instruction Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Methods

pretty :: Instruction -> Doc ann #

prettyList :: [Instruction] -> Doc ann #

data Directive Source #

Instances

Instances details
Pretty Directive Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Methods

pretty :: Directive -> Doc ann #

prettyList :: [Directive] -> Doc ann #

data OpCode Source #

Constructors

And 
Or 
Add 
Sub 
Mul 
Neg 
Seqz 
Snez 
Slt 
Sd 
Ld 
Li 
La 
Addi 
Beqz 
J 
Call 
Ret 

Instances

Instances details
Show OpCode Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Pretty OpCode Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Methods

pretty :: OpCode -> Doc ann #

prettyList :: [OpCode] -> Doc ann #

data Operand Source #

Instances

Instances details
Eq Operand Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Methods

(==) :: Operand -> Operand -> Bool #

(/=) :: Operand -> Operand -> Bool #

Ord Operand Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Pretty Operand Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Methods

pretty :: Operand -> Doc ann #

prettyList :: [Operand] -> Doc ann #

pattern Memory :: Offset -> Operand Source #

data Register Source #

Constructors

Zero 
Ra 
Sp 
Gp 
Tp 
T0 
T1 
T2 
S0 
S1 
A0 
A1 
A2 
A3 
A4 
A5 
A6 
A7 
S2 
S3 
S4 
S5 
S6 
S7 
S8 
S9 
S10 
S11 
T3 
T4 
T5 
T6 

Instances

Instances details
Show Register Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Eq Register Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Ord Register Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Pretty Register Source # 
Instance details

Defined in CodeGen.RiscV.Lib.Types

Methods

pretty :: Register -> Doc ann #

prettyList :: [Register] -> Doc ann #