1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
(* hppaMLTree.sml --- customize MLRISC for the HPPA.
*
* COPYRIGHT (c) 1996 AT&T Bell Laboratories.
*
*)
structure HppaMLTree =
MLTreeF(structure Constant=SMLNJConstant
structure Region=CPSRegions
structure Extension=SMLNJMLTreeExt
)
structure HppaMLTreeEval =
MLTreeEval
(structure T = HppaMLTree
fun eq _ _ = false
val eqRext = eq val eqFext = eq
val eqCCext = eq val eqSext = eq)
structure HppaMLTreeHash =
MLTreeHash
(structure T = HppaMLTree
fun h _ _ = 0w0
val hashRext = h val hashFext = h
val hashCCext = h val hashSext = h)
structure HppaGasPseudoOps =
HppaGasPseudoOps(structure T=HppaMLTree
structure MLTreeEval=HppaMLTreeEval)
structure HppaClientPseudoOps =
SMLNJPseudoOps(structure Asm=HppaGasPseudoOps)
structure HppaPseudoOps = PseudoOps(structure Client = HppaClientPseudoOps)
structure HppaStream = InstructionStream(HppaPseudoOps)
structure HppaMLTreeStream =
MLTreeStream
(structure T = HppaMLTree
structure S = HppaStream)
(* specialised hppa instruction set *)
structure HppaInstr = HppaInstr(HppaMLTree)
structure HppaShuffle = HppaShuffle(HppaInstr)
structure HppaProps = HppaProps(structure HppaInstr=HppaInstr
structure MLTreeEval=HppaMLTreeEval
structure MLTreeHash=HppaMLTreeHash)
structure HppaAsmEmitter =
HppaAsmEmitter(structure Instr=HppaInstr
structure Shuffle=HppaShuffle
structure S=HppaStream
structure MLTreeEval=HppaMLTreeEval)
structure HppaMCEmitter =
HppaMCEmitter(structure Instr=HppaInstr
structure Assembler=HppaAsmEmitter
structure Stream=HppaStream
structure MLTreeEval=HppaMLTreeEval
structure CodeString=CodeString)
(* flowgraph data structure specialized to Hppa instructions *)
structure HppaCFG =
ControlFlowGraph
(structure I = HppaInstr
structure PseudoOps = HppaPseudoOps
structure GraphImpl = DirectedGraph
structure InsnProps = HppaProps
structure Asm = HppaAsmEmitter)
|