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

SCM Repository

[smlnj] Annotation of /sml/trunk/src/MLRISC/instructions/stream.sml
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 430 - (view) (download)

1 : monnier 409 (*
2 :     * This is a generic instruction stream datatype.
3 :     * Components such as assemblers, machine code emitters, instruction
4 :     * selection modules communicate with each via this interface.
5 :     *
6 :     * -- Allen
7 :     *)
8 :    
9 :     functor InstructionStreamFn(structure P : PSEUDO_OPS
10 :     structure B : BLOCK_NAMES
11 :     ) : INSTRUCTION_STREAM =
12 :     struct
13 :    
14 :     structure P = P
15 :     structure B = B
16 :    
17 : monnier 429 datatype ('a,'b,'c,'d,'e,'f) stream =
18 : monnier 409 STREAM of
19 : monnier 429 { beginCluster: int -> 'b, (* start new compilation unit *)
20 :     endCluster : 'c -> unit, (* end compilation unit *)
21 :     emit : 'a, (* emit instruction *)
22 :     pseudoOp : P.pseudo_op -> unit, (* emit a pseudo op *)
23 :     defineLabel : Label.label -> unit, (* define a local label *)
24 :     entryLabel : Label.label -> unit, (* define an external label *)
25 :     comment : string -> unit, (* emit comment *)
26 :     blockName : B.name -> unit, (* change block name *)
27 :     annotation : Annotations.annotation -> unit, (* add annotation *)
28 :     exitBlock : 'd -> unit, (* mark the end of a procedure *)
29 :     alias : 'e -> unit, (* generate alias information *)
30 :     phi : 'f -> unit (* generate phi-function *)
31 :     }
32 : monnier 409
33 :     end

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