File: hppaMLTree.sml

package info (click to toggle)
smlnj 110.79-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 82,564 kB
  • sloc: ansic: 32,532; asm: 6,314; sh: 2,296; makefile: 1,821; perl: 1,170; pascal: 295; yacc: 190; cs: 78; python: 77; lisp: 19
file content (74 lines) | stat: -rw-r--r-- 2,077 bytes parent folder | download | duplicates (4)
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)