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

revision 555, Fri Mar 3 16:10:30 2000 UTC revision 951, Tue Oct 9 13:54:40 2001 UTC
# Line 1  Line 1 
 (* specialised X86 instruction set *)  
 structure X86Instr =  
   X86Instr(structure LabelExp=SMLNJLabelExp  
            structure Region=CPSRegions)  
   
 structure X86Props = X86Props(X86Instr)  
   
 structure X86Rewrite = X86Rewrite(X86Instr)  
   
 structure X86Shuffle = X86Shuffle(X86Instr)  
   
1  structure X86PseudoOps =  structure X86PseudoOps =
2    PseudoOpsLittle(structure M=X86Spec val nop = SOME(0wx90:Word8.word))    PseudoOpsLittle(structure M=X86Spec val nop = SOME(0wx90:Word8.word))
3    structure X86Stream = InstructionStream(X86PseudoOps)
4    
5  structure X86MemRegs = X86MemRegs(X86Instr)  (* MLTree specialization *)
6    structure X86MLTree =
7      MLTreeF(structure Constant = SMLNJConstant
8              structure Region=CPSRegions
9              structure Stream=X86Stream
10              structure Extension=X86_SMLNJMLTreeExt)
11    
 (* Flowgraph data structure specialized to X86 instructions *)  
 structure X86FlowGraph =  
   FlowGraph(structure I=X86Instr  
             structure P=X86PseudoOps  
            )  
12    
13  structure X86Stream = InstructionStream(X86PseudoOps)  (* specialised X86 instruction set *)
14    structure X86Instr =
15      X86Instr(
16        LabelExp
17           (structure T = X86MLTree
18            val labelFmt = {gPrefix="L", aPrefix="L"}
19            fun h _ _ = 0w0 fun eq _ _ = false
20            val hashRext = h and hashFext = h and hashCCext = h and hashSext = h
21            val eqRext = eq and eqFext = eq and eqCCext = eq and eqSext = eq
22            ))
23    
24    structure X86MemRegs = X86MemRegs(X86Instr)
25    structure X86Props = X86Props(X86Instr)
26    structure X86Rewrite = X86Rewrite(X86Instr)
27    structure X86Shuffle = X86Shuffle(X86Instr)
28    
29  (* Assembly code emmitter *)  (* Assembly code emmitter *)
30  structure X86AsmEmitter=  structure X86AsmEmitter=
31    X86AsmEmitter(structure Instr=X86Instr    X86AsmEmitter(structure Instr=X86Instr
                 structure PseudoOps=X86PseudoOps  
32                  structure Shuffle=X86Shuffle                  structure Shuffle=X86Shuffle
33                  structure Stream=X86Stream                  structure MemRegs=X86MemRegs
34                  structure MemRegs=X86MemRegs)                  val memRegBase=SOME(X86Instr.C.esp))
35    
36    
37  (* Machine code emitter *)  (* Machine code emitter *)
38  structure X86MCEmitter =  structure X86MCEmitter =
39    X86MCEmitter(structure Instr=X86Instr    X86MCEmitter(structure Instr=X86Instr
40                 structure Shuffle=X86Shuffle                 structure Shuffle=X86Shuffle
41                 structure AsmEmitter=X86AsmEmitter                 structure AsmEmitter=X86AsmEmitter
42                 structure MemRegs=X86MemRegs)                 structure MemRegs=X86MemRegs
43                   val memRegBase=SOME(X86Instr.C.esp))
44    
45    (* Flowgraph data structure specialized to X86 instructions *)
46    structure X86CFG =
47      ControlFlowGraph
48         (structure I = X86Instr
49          structure PseudoOps = X86PseudoOps
50          structure GraphImpl = DirectedGraph
51          structure InsnProps = X86Props
52          structure Asm = X86AsmEmitter)
53    
 (* 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.951

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