sutori-0.2.4: Sutori language compiler

Safe HaskellSafe
LanguageHaskell2010

Sutori.MIPS.MIPS

Synopsis

Documentation

data MemAddr Source #

A memory address for memory instructions

Constructors

MemReg Reg Offset

Some offset from an address kept in a register

MemLabel String Offset

A label somewhere in the code

data Reg Source #

MIPS available registers

Constructors

T0 
T1 
T2 
T3 
T4 
T5 
T6 
T7 
T8 
T9

TX: temporal values (caller-saved)

S0 
S1 
S2 
S3 
S4 
S5 
S6 
S7

SX: saved values (calle-saved)

A0 
A1 
A2 
A3

AX: function arguments (first few, then we stack)

V0 
V1

VX: function return values

GP

Global Pointer

FP

Frame Pointer

SP

Stack Pointer

RA

Return Address

RZ

Always Zero (useful)

Instances

Eq Reg Source # 

Methods

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

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

Ord Reg Source # 

Methods

compare :: Reg -> Reg -> Ordering #

(<) :: Reg -> Reg -> Bool #

(<=) :: Reg -> Reg -> Bool #

(>) :: Reg -> Reg -> Bool #

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

max :: Reg -> Reg -> Reg #

min :: Reg -> Reg -> Reg #

type RegDescriptors = Map Reg (Set TACAddress) Source #

Defines descriptors for registers, so we keep track of which variables live on each register

type VarDescriptors = Map TACAddress (Set Reg) Source #

Defines descriptors for variables, so we keep track of which registers have their current value