File: ppcMLTree.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 (72 lines) | stat: -rw-r--r-- 2,039 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
(* COPYRIGHT (c) 1999 Lucent Technologies, Bell Labs. *)

structure PPCMLTree = 
  MLTreeF(structure Constant=SMLNJConstant
	  structure Region=CPSRegions
	  structure Extension=SMLNJMLTreeExt
         )

structure PPCMLTreeEval =
    MLTreeEval
       (structure T = PPCMLTree
	fun eq _ _ =  false
        val eqRext = eq		val eqFext = eq
        val eqCCext = eq	val eqSext = eq)
					    
structure PPCMLTreeHash = 
    MLTreeHash
       (structure T = PPCMLTree
        fun h _ _ = 0w0
        val hashRext = h	val hashFext = h
        val hashCCext = h       val hashSext = h)

structure PPCGasPseudoOps =
   PPCGasPseudoOps(structure T=PPCMLTree
		   structure MLTreeEval=PPCMLTreeEval)

structure PPCClientPseudoOps =
   SMLNJPseudoOps(structure Asm=PPCGasPseudoOps)

structure PPCPseudoOps = PseudoOps(structure Client = PPCClientPseudoOps)
	      
structure PPCStream = InstructionStream(PPCPseudoOps)

structure PPCMLTreeStream = 
    MLTreeStream
      (structure T = PPCMLTree
       structure S = PPCStream)

(* specialised powerpc instruction set *)
structure PPCInstr = PPCInstr(PPCMLTree)

structure PPCProps = 
   PPCProps(structure PPCInstr=PPCInstr
	    structure MLTreeEval=PPCMLTreeEval
	    structure MLTreeHash=PPCMLTreeHash)

structure PPCShuffle = PPCShuffle(PPCInstr)


structure PPCAsmEmitter=
  PPCAsmEmitter(structure Instr=PPCInstr
		structure PseudoOps=PPCPseudoOps  
                structure S=PPCStream
		structure MLTreeEval=PPCMLTreeEval
		structure Shuffle = PPCShuffle)

structure PPCMCEmitter = 
  PPCMCEmitter(structure Instr=PPCInstr
	       structure PseudoOps=PPCPseudoOps
               structure Stream=PPCStream
 	       structure MLTreeEval=PPCMLTreeEval
	       structure CodeString=CodeString)

(* Flowgraph data structure specialized to DEC alpha instructions *)
structure PPCCFG = 
  ControlFlowGraph
     (structure I = PPCInstr
      structure PseudoOps = PPCPseudoOps
      structure GraphImpl = DirectedGraph
      structure InsnProps = PPCProps
      structure Asm = PPCAsmEmitter)