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/trunk/compiler/CodeGen/x86/x86MLTree.sml
ViewVC logotype

Annotation of /sml/trunk/compiler/CodeGen/x86/x86MLTree.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4634 - (view) (download)

1 : jhr 4634 (* x86MLTree.sml
2 :     *
3 :     * COPYRIGHT (c) 2018 The Fellowship of SML/NJ (http://www.smlnj.org)
4 :     * All rights reserved.
5 :     *)
6 : leunga 775
7 :     (* MLTree specialization *)
8 : jhr 4634 structure X86MLTree =
9 : leunga 775 MLTreeF(structure Constant = SMLNJConstant
10 :     structure Region=CPSRegions
11 :     structure Extension=X86_SMLNJMLTreeExt)
12 :    
13 : george 984 structure X86MLTreeEval =
14 :     MLTreeEval
15 : leunga 775 (structure T = X86MLTree
16 : george 984 fun eq _ _ = false
17 :     val eqRext = eq val eqFext = eq
18 :     val eqCCext = eq val eqSext = eq)
19 : jhr 4634
20 :     structure X86MLTreeHash =
21 : george 984 MLTreeHash
22 :     (structure T = X86MLTree
23 :     fun h _ _ = 0w0
24 :     val hashRext = h val hashFext = h
25 :     val hashCCext = h val hashSext = h)
26 : monnier 247
27 : jhr 4634 structure X86GasPseudoOps =
28 : george 984 X86GasPseudoOps(structure T=X86MLTree
29 :     structure MLTreeEval=X86MLTreeEval)
30 :    
31 :     structure X86ClientPseudoOps =
32 :     SMLNJPseudoOps(structure Asm=X86GasPseudoOps)
33 :    
34 :     structure X86PseudoOps = PseudoOps(structure Client = X86ClientPseudoOps)
35 : jhr 4634
36 : george 984 structure X86Stream = InstructionStream(X86PseudoOps)
37 :    
38 : jhr 4634 structure X86MLTreeStream =
39 : george 984 MLTreeStream
40 :     (structure T = X86MLTree
41 :     structure S = X86Stream)
42 :    
43 :    
44 :     (* specialised X86 instruction set *)
45 :     structure X86Instr = X86Instr(X86MLTree)
46 :    
47 : george 909 structure X86MemRegs = X86MemRegs(X86Instr)
48 : george 984
49 : jhr 4634 structure X86Props =
50 : george 984 X86Props
51 :     (structure Instr=X86Instr
52 :     structure MLTreeHash = X86MLTreeHash
53 :     structure MLTreeEval = X86MLTreeEval)
54 :    
55 : monnier 247 structure X86Rewrite = X86Rewrite(X86Instr)
56 :     structure X86Shuffle = X86Shuffle(X86Instr)
57 :    
58 : george 909 (* Assembly code emmitter *)
59 :     structure X86AsmEmitter=
60 :     X86AsmEmitter(structure Instr=X86Instr
61 :     structure Shuffle=X86Shuffle
62 :     structure MemRegs=X86MemRegs
63 : george 984 structure MLTreeEval=X86MLTreeEval
64 :     structure S = X86Stream
65 : george 909 val memRegBase=SOME(X86Instr.C.esp))
66 : monnier 247
67 :    
68 : george 909 (* Machine code emitter *)
69 : jhr 4634 structure X86MCEmitter =
70 : george 909 X86MCEmitter(structure Instr=X86Instr
71 :     structure Shuffle=X86Shuffle
72 :     structure AsmEmitter=X86AsmEmitter
73 :     structure MemRegs=X86MemRegs
74 : blume 1132 structure MLTreeEval=X86MLTreeEval
75 : george 909 val memRegBase=SOME(X86Instr.C.esp))
76 : monnier 411
77 : george 909 (* Flowgraph data structure specialized to X86 instructions *)
78 : jhr 4634 structure X86CFG =
79 : george 909 ControlFlowGraph
80 :     (structure I = X86Instr
81 :     structure PseudoOps = X86PseudoOps
82 :     structure GraphImpl = DirectedGraph
83 :     structure InsnProps = X86Props
84 :     structure Asm = X86AsmEmitter)
85 : jhr 4634

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