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/hppa/hppaMLTree.sml
ViewVC logotype

View of /sml/trunk/src/compiler/CodeGen/hppa/hppaMLTree.sml

Parent Directory Parent Directory | Revision Log Revision Log

Revision 984 - (download) (annotate)
Wed Nov 21 19:00:08 2001 UTC (18 years, 11 months ago) by george
File size: 2077 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.
(* hppaMLTree.sml --- customize MLRISC for the HPPA.
 * COPYRIGHT (c) 1996 AT&T Bell Laboratories.

structure HppaMLTree = 
  MLTreeF(structure Constant=SMLNJConstant
	  structure Region=CPSRegions
	  structure Extension=SMLNJMLTreeExt

structure HppaMLTreeEval =
       (structure T = HppaMLTree
	fun eq _ _ =  false
        val eqRext = eq		val eqFext = eq
        val eqCCext = eq	val eqSext = eq)
structure HppaMLTreeHash = 
       (structure T = HppaMLTree
        fun h _ _ = 0w0
        val hashRext = h	val hashFext = h
        val hashCCext = h       val hashSext = h)

structure HppaGasPseudoOps = 
   HppaGasPseudoOps(structure T=HppaMLTree
		   structure MLTreeEval=HppaMLTreeEval)

structure HppaClientPseudoOps =
   SMLNJPseudoOps(structure Asm=HppaGasPseudoOps)

structure HppaPseudoOps = PseudoOps(structure Client = HppaClientPseudoOps)
structure HppaStream = InstructionStream(HppaPseudoOps)

structure HppaMLTreeStream = 
      (structure T = HppaMLTree
       structure S = HppaStream)

(* specialised hppa instruction set *)
structure HppaInstr = HppaInstr(HppaMLTree)

structure HppaShuffle = HppaShuffle(HppaInstr)

structure HppaProps = HppaProps(structure HppaInstr=HppaInstr
				structure MLTreeEval=HppaMLTreeEval
				structure MLTreeHash=HppaMLTreeHash)

structure HppaAsmEmitter = 
  HppaAsmEmitter(structure Instr=HppaInstr
		 structure Shuffle=HppaShuffle
                 structure S=HppaStream 
		 structure MLTreeEval=HppaMLTreeEval)

structure HppaMCEmitter = 
  HppaMCEmitter(structure Instr=HppaInstr
		structure Assembler=HppaAsmEmitter
                structure Stream=HppaStream 
		structure MLTreeEval=HppaMLTreeEval
		structure CodeString=CodeString)

(* flowgraph data structure specialized to Hppa instructions *)
structure HppaCFG = 
     (structure I = HppaInstr
      structure PseudoOps = HppaPseudoOps
      structure GraphImpl = DirectedGraph
      structure InsnProps = HppaProps
      structure Asm = HppaAsmEmitter)

ViewVC Help
Powered by ViewVC 1.0.0