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

SCM Repository

[smlnj] Diff of /sml/trunk/compiler/CodeGen/x86/x86MLTree.sml
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.555  
changed lines
  Added in v.4634

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