Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/branches/arith64/compiler/CodeGen/amd64/amd64MLTree.sml
ViewVC logotype

Annotation of /sml/branches/arith64/compiler/CodeGen/amd64/amd64MLTree.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2162 - (view) (download)
Original Path: sml/trunk/compiler/CodeGen/amd64/amd64MLTree.sml

1 : mblume 2066
2 :     (* MLTree specialization *)
3 :     structure AMD64MLTree =
4 :     MLTreeF(structure Constant = SMLNJConstant
5 :     structure Region=CPSRegions
6 :     structure Extension=AMD64_SMLNJMLTreeExt)
7 :    
8 :    
9 :     structure AMD64MLTreeEval =
10 :     MLTreeEval
11 :     (structure T = AMD64MLTree
12 :     fun eq _ _ = false
13 :     val eqRext = eq val eqFext = eq
14 :     val eqCCext = eq val eqSext = eq)
15 :    
16 :     structure AMD64MLTreeHash =
17 :     MLTreeHash
18 :     (structure T = AMD64MLTree
19 :     fun h _ _ = 0w0
20 :     val hashRext = h val hashFext = h
21 :     val hashCCext = h val hashSext = h)
22 :    
23 :     structure AMD64GasPseudoOps =
24 :     AMD64GasPseudoOps(structure T=AMD64MLTree
25 :     structure MLTreeEval=AMD64MLTreeEval)
26 :    
27 :     structure AMD64ClientPseudoOps =
28 :     SMLNJPseudoOps(structure Asm=AMD64GasPseudoOps)
29 :    
30 :     structure AMD64PseudoOps = PseudoOps(structure Client = AMD64ClientPseudoOps)
31 :    
32 :     structure AMD64Stream = InstructionStream(AMD64PseudoOps)
33 :    
34 :     structure AMD64MLTreeStream =
35 :     MLTreeStream
36 :     (structure T = AMD64MLTree
37 :     structure S = AMD64Stream)
38 :    
39 :    
40 :     (* specialised AMD64 instruction set *)
41 :     structure AMD64Instr = AMD64Instr(AMD64MLTree)
42 :    
43 :     structure AMD64MemRegs = AMD64MemRegs(AMD64Instr)
44 :    
45 :     structure AMD64Props =
46 :     AMD64Props
47 :     (structure Instr=AMD64Instr
48 :     structure MLTreeHash = AMD64MLTreeHash
49 :     structure MLTreeEval = AMD64MLTreeEval)
50 :    
51 :     structure AMD64Rewrite = AMD64Rewrite(AMD64Instr)
52 :     structure AMD64Shuffle = AMD64Shuffle(AMD64Instr)
53 :    
54 :     (* Assembly code emmitter *)
55 :     structure AMD64AsmEmitter=
56 :     AMD64AsmEmitter(structure Instr=AMD64Instr
57 :     structure Shuffle=AMD64Shuffle
58 :     structure MemRegs=AMD64MemRegs
59 :     structure MLTreeEval=AMD64MLTreeEval
60 :     structure S = AMD64Stream
61 :     val memRegBase=SOME(AMD64Instr.C.rsp))
62 :    
63 :    
64 :     (* Machine code emitter *)
65 :     structure AMD64MCEmitter =
66 :     AMD64MCEmitter(structure Instr=AMD64Instr
67 :     structure Shuffle=AMD64Shuffle
68 :     structure AsmEmitter=AMD64AsmEmitter
69 :     structure MemRegs=AMD64MemRegs
70 :     structure MLTreeEval=AMD64MLTreeEval
71 :     val memRegBase=SOME(AMD64Instr.C.rsp))
72 :    
73 :     (* Flowgraph data structure specialized to AMD64 instructions *)
74 :     structure AMD64CFG =
75 :     ControlFlowGraph
76 :     (structure I = AMD64Instr
77 :     structure PseudoOps = AMD64PseudoOps
78 :     structure GraphImpl = DirectedGraph
79 :     structure InsnProps = AMD64Props
80 :     structure Asm = AMD64AsmEmitter)
81 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0