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/branches/SMLNJ/src/MLRISC/mlrisc/cells.sig
ViewVC logotype

Annotation of /sml/branches/SMLNJ/src/MLRISC/mlrisc/cells.sig

Parent Directory Parent Directory | Revision Log Revision Log


Revision 106 - (view) (download) (as text)

1 : monnier 16 (* cells.sig
2 :     *
3 :     * COPYRIGHT (c) 1995 AT&T Bell Laboratories.
4 :     *
5 :     * CELLS - describes storage units on the machine, such as
6 :     * dedicated and general registers, memory ...
7 :     *
8 :     * This file acts as a bridge between MLRISC and the machine
9 :     * code.
10 :     *
11 :     *)
12 :     signature CELLS = sig
13 :    
14 : monnier 106 type regmap = int Intmap.intmap
15 :     eqtype cellclass
16 :     exception Cells
17 :     val GP : cellclass (* general purpose register *)
18 :     val FP : cellclass (* floating point register *)
19 :     val CC : cellclass (* conditional code register *)
20 :     val MEM : cellclass (* memory *)
21 :     val CTRL : cellclass (* control dependence *)
22 :    
23 : monnier 16 val stackptrR : int (* stack pointer register *)
24 :     val asmTmpR : int (* assembly temporary *)
25 :     val fasmTmp : int (* floating point temporary *)
26 :    
27 : monnier 106 val newCell : cellclass -> unit -> int (* generate a new name *)
28 :     val numCell : cellclass -> unit -> int (* number of names in class *)
29 :     val maxCell : unit -> int (* max id of name *)
30 :     val cellToString : int * cellclass -> string
31 : monnier 16
32 : monnier 106 val newReg : unit -> int (* newClass GP *)
33 :     val newFreg : unit -> int (* newClass FP *)
34 :     val newCCreg : unit -> int (* newClass CC *)
35 : monnier 16
36 : monnier 106 val firstPseudo : int
37 :     val zero : cellclass -> int option
38 :     (* name of the register that contains zero *)
39 : monnier 16
40 : monnier 106 val resetRegs : unit -> regmap (* reset any local state *)
41 :    
42 : monnier 16 type cellset
43 :     val cellset2string : cellset -> string
44 :     val empty : cellset
45 : monnier 106 val addCell : cellclass -> int * cellset -> cellset
46 :     val cellsetToRegs : regmap * cellset -> int list
47 :    
48 :     val addReg : int * cellset -> cellset (* addCell GP *)
49 :     val addFreg : int * cellset -> cellset (* addCell FP *)
50 : monnier 16 end
51 :    
52 :    
53 :     (*
54 :     * $Log: cells.sig,v $
55 : monnier 106 * Revision 1.2 1998/05/19 15:47:05 george
56 :     * The cells interface now makes registers an abstract type called cellclass.
57 :     *
58 : monnier 93 * Revision 1.1.1.1 1998/04/08 18:39:02 george
59 :     * Version 110.5
60 : monnier 16 *
61 :     *)

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