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/MLRISC/instructions/stream.sml
ViewVC logotype

View of /sml/trunk/src/MLRISC/instructions/stream.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 430 - (download) (annotate)
Wed Sep 8 09:47:00 1999 UTC (21 years, 1 month ago) by monnier
File size: 1375 byte(s)
This commit was generated by cvs2svn to compensate for changes in r429,
which included commits to RCS files with non-trunk default branches.
(*
 * This is a generic instruction stream datatype.
 * Components such as assemblers, machine code emitters, instruction
 * selection modules communicate with each via this interface.
 *
 * -- Allen
 *)

functor InstructionStreamFn(structure P : PSEUDO_OPS
                            structure B : BLOCK_NAMES
                           ) : INSTRUCTION_STREAM =
struct

   structure P = P
   structure B = B

   datatype ('a,'b,'c,'d,'e,'f) stream =
      STREAM of
      { beginCluster: int -> 'b,               (* start new compilation unit *)
        endCluster  : 'c -> unit,              (* end compilation unit *)
        emit        : 'a,                      (* emit instruction *)
        pseudoOp    : P.pseudo_op -> unit,     (* emit a pseudo op *)
        defineLabel : Label.label -> unit,     (* define a local label *)
        entryLabel  : Label.label -> unit,     (* define an external label *)
        comment     : string -> unit,          (* emit comment *)
        blockName   : B.name -> unit,          (* change block name *)
        annotation  : Annotations.annotation -> unit, (* add annotation *)
        exitBlock   : 'd -> unit,              (* mark the end of a procedure *)
        alias       : 'e -> unit,              (* generate alias information *)
        phi         : 'f -> unit               (* generate phi-function *)
      }

end

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