Annotation of researchv10no/cmd/sml/src/coder/machinstr.sig, revision 1.1.1.1

1.1       root        1: (* Copyright 1989 by AT&T Bell Laboratories *)
                      2: (* machinstr.sig
                      3:  *
                      4:  * J.H. Reppy
                      5:  * Cornell University
                      6:  * Ithaca, NY 14853
                      7:  * [email protected]
                      8:  *
                      9:  * HISTORY:
                     10:  *   11/20/89  created
                     11:  *
                     12:  *   This is an abstract interface to the machine instruction set.
                     13:  *)
                     14: 
                     15: signature MACHINSTR =
                     16: sig
                     17:     eqtype register
                     18:     eqtype label sharing type label = BaseCoder.label
                     19: 
                     20:   (** Instructions **)
                     21: 
                     22:     type instruction
                     23: 
                     24:     datatype ikind = IK_NOP | IK_JUMP | IK_INSTR
                     25: 
                     26:     val instrKind : instruction -> ikind
                     27:     val nop : instruction
                     28: 
                     29:   (** Span dependent instructions **)
                     30: 
                     31:     type sdi
                     32: 
                     33:     val minSize : sdi -> int
                     34:     val sizeOf : sdi -> (bool * int)
                     35:        (* sizeOf(I) returns the size of I under the current address assignment
                     36:         * for labels plus true if the size if the maximum possible for the sdi. *)
                     37:     val expand : (sdi * int) -> instruction list
                     38:        (* expand (I, n) returns the expansion of I into n bytes of machine
                     39:         * instructions. *)
                     40: 
                     41:   (** Resource usage **)
                     42: 
                     43:     val numResources : int
                     44:     val rUseDef : instruction -> (int list * int list)
                     45:     val hazard : (instruction * instruction) -> bool
                     46:     val needsNop : (instruction * instruction) -> bool
                     47: 
                     48: end (* signature MACHINSTR *)
                     49: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.