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

SCM Repository

[smlnj] View of /sml/trunk/src/compiler/CodeGen/sparc/sparcMLTree.sml
ViewVC logotype

View of /sml/trunk/src/compiler/CodeGen/sparc/sparcMLTree.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 984 - (download) (annotate)
Wed Nov 21 19:00:08 2001 UTC (18 years, 7 months ago) by george
File size: 2251 byte(s)
  Implemented a complete redesign of MLRISC pseudo-ops. Now there
  ought to never be any question of incompatabilities with
  pseudo-op syntax expected by host assemblers.

  For now, only modules supporting GAS syntax are implemented
  but more should follow, such as MASM, and vendor assembler
  syntax, e.g. IBM as, Sun as, etc.
(* sparcMLTree.sml --- customize MLRISC for the Sparc.
 * 
 * COPYRIGHT (c) 1998 AT&T Bell Laboratories.
 *)

structure SparcMLTree = 
  MLTreeF(structure Constant=SMLNJConstant
	  structure Region=CPSRegions
	  structure Extension=Sparc_SMLNJMLTreeExt
         )

structure SparcMLTreeEval =
    MLTreeEval
       (structure T = SparcMLTree
	fun eq _ _ =  false
        val eqRext = eq		val eqFext = eq
        val eqCCext = eq	val eqSext = eq)
					    
structure SparcMLTreeHash = 
    MLTreeHash
       (structure T = SparcMLTree
        fun h _ _ = 0w0
        val hashRext = h	val hashFext = h
        val hashCCext = h       val hashSext = h)

structure SparcGasPseudoOps = 
   SparcGasPseudoOps(structure T=SparcMLTree
		   structure MLTreeEval=SparcMLTreeEval)

structure SparcClientPseudoOps =
   SMLNJPseudoOps(structure Asm=SparcGasPseudoOps)

structure SparcPseudoOps = PseudoOps(structure Client = SparcClientPseudoOps)
	      
structure SparcStream = InstructionStream(SparcPseudoOps)

structure SparcMLTreeStream = 
    MLTreeStream
      (structure T = SparcMLTree
       structure S = SparcStream)

(* specialised sparc instruction set *)
structure SparcInstr = SparcInstr(SparcMLTree)

structure SparcPseudoInstrs = SparcPseudoInstrs(SparcInstr)

structure SparcProps = 
  SparcProps
    (structure SparcInstr = SparcInstr
     structure MLTreeEval = SparcMLTreeEval
     structure MLTreeHash = SparcMLTreeHash)


structure SparcShuffle = SparcShuffle(SparcInstr)

structure SparcAsmEmitter = 
  SparcAsmEmitter(structure Instr=SparcInstr
		  structure Shuffle=SparcShuffle
                  structure S = SparcStream
		  structure MLTreeEval=SparcMLTreeEval
                  val V9 = false)

structure SparcMCEmitter = 
  SparcMCEmitter(structure Instr=SparcInstr
		 structure Assembler=SparcAsmEmitter
                 structure Stream = SparcStream
		 structure MLTreeEval=SparcMLTreeEval
		 structure CodeString=CodeString)

(* flowgraph data structure specialized to Sparc instructions *)
structure SparcCFG = 
  ControlFlowGraph
     (structure I = SparcInstr
      structure PseudoOps = SparcPseudoOps
      structure GraphImpl = DirectedGraph
      structure InsnProps = SparcProps
      structure Asm = SparcAsmEmitter)



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