54 lines
893 B
OCaml
54 lines
893 B
OCaml
module RISCSimpleStatements : sig
|
|
type register = {
|
|
index: string
|
|
}
|
|
|
|
type t =
|
|
| Nop
|
|
| BRegOp of brop * register * register * register
|
|
| BImmOp of biop * register * int * register
|
|
| URegOp of urop * register * register
|
|
| Load of register * register
|
|
| LoadI of register * int
|
|
| Store of register * register
|
|
and brop =
|
|
| Add
|
|
| Sub
|
|
| Mult
|
|
| Div
|
|
| Mod
|
|
| Pow
|
|
| And
|
|
| Or
|
|
| Eq
|
|
| Less
|
|
| LessEq
|
|
| More
|
|
| MoreEq
|
|
and biop =
|
|
| AddI
|
|
| SubI
|
|
| MultI
|
|
| DivI
|
|
| ModI
|
|
| PowI
|
|
| AndI
|
|
| OrI
|
|
| EqI
|
|
| LessI
|
|
| LessEqI
|
|
| MoreI
|
|
| MoreEqI
|
|
and urop =
|
|
| Not
|
|
| Copy
|
|
| Rand
|
|
|
|
val pp : out_channel -> t -> unit
|
|
val pplist : out_channel -> t list -> unit
|
|
end
|
|
|
|
module RISCCfg : Cfg.C with type elt = RISCSimpleStatements.t
|
|
|
|
val convert : CfgImp.SSCfg.t -> RISCCfg.t
|