- data RTL a = RTL (Stmt -> (a, Stmt))
- data Stmt
- data E
- = V String
- | C Integer
- | Add E E
- | Sub E E
- | Mul E E
- | Div E E
- | Not E
- | And E E
- | Or E E
- | BWNot E
- | BWAnd E E
- | BWOr E E
- | Shift E E
- | Eq E E
- | Lt E E
- | Null
- | Bit E Int E
- | AA
- | BA
- | BB
- | BD
- | BF
- | BI
- | BO
- | BT
- | CA'
- | CIA
- | CR'
- | CRField E
- | CTR
- | D
- | EA
- | EXTS Int E
- | GPR E
- | L10
- | L15
- | LI
- | LK
- | LR
- | MASK E E
- | MB5
- | MB6
- | ME5
- | ME6
- | MEM E Int
- | MSR
- | NIA
- | OE
- | RAI
- | RA
- | RB
- | Rc
- | ROTL32 E E
- | ROTL64 E E
- | RS
- | RSI
- | RT
- | RTI
- | SH5
- | SH6
- | SI
- | SPR
- | UI
- | XER
- data Cond
- stmt :: RTL () -> Stmt
- (<==) :: E -> E -> RTL ()
- assign :: [Cond] -> E -> E -> RTL ()
- cmp :: [Cond] -> E -> E -> RTL ()
- if' :: E -> RTL () -> RTL () -> RTL ()
- while :: E -> RTL () -> RTL ()
- (==.) :: E -> E -> E
- (/=.) :: E -> E -> E
- (<.) :: E -> E -> E
- (<=.) :: E -> E -> E
- (>.) :: E -> E -> E
- (>=.) :: E -> E -> E
- (&&.) :: E -> E -> E
- (||.) :: E -> E -> E
Documentation
V String | |
C Integer | |
Add E E | |
Sub E E | |
Mul E E | |
Div E E | |
Not E | |
And E E | |
Or E E | |
BWNot E | |
BWAnd E E | |
BWOr E E | |
Shift E E | |
Eq E E | |
Lt E E | |
Null | |
Bit E Int E | |
AA | |
BA | |
BB | |
BD | |
BF | |
BI | |
BO | |
BT | |
CA' | |
CIA | |
CR' | |
CRField E | |
CTR | |
D | |
EA | |
EXTS Int E | |
GPR E | |
L10 | |
L15 | |
LI | |
LK | |
LR | |
MASK E E | Mask start stop |
MB5 | |
MB6 | |
ME5 | |
ME6 | |
MEM E Int | |
MSR | |
NIA | |
OE | |
RAI | |
RA | |
RB | |
Rc | |
ROTL32 E E | ROTL32 value amount |
ROTL64 E E | ROTL64 value amount |
RS | |
RSI | |
RT | |
RTI | |
SH5 | |
SH6 | |
SI | |
SPR | |
UI | |
XER |