File:  [Research Unix] / researchv10no / cmd / sml / src / coder / machinstr.sig
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:35 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv10, HEAD
researchv10 Norman

(* Copyright 1989 by AT&T Bell Laboratories *)
(* machinstr.sig
 *
 * J.H. Reppy
 * Cornell University
 * Ithaca, NY 14853
 * [email protected]
 *
 * HISTORY:
 *   11/20/89  created
 *
 *   This is an abstract interface to the machine instruction set.
 *)

signature MACHINSTR =
sig
    eqtype register
    eqtype label sharing type label = BaseCoder.label

  (** Instructions **)

    type instruction

    datatype ikind = IK_NOP | IK_JUMP | IK_INSTR

    val instrKind : instruction -> ikind
    val nop : instruction

  (** Span dependent instructions **)

    type sdi

    val minSize : sdi -> int
    val sizeOf : sdi -> (bool * int)
	(* sizeOf(I) returns the size of I under the current address assignment
	 * for labels plus true if the size if the maximum possible for the sdi. *)
    val expand : (sdi * int) -> instruction list
	(* expand (I, n) returns the expansion of I into n bytes of machine
	 * instructions. *)

  (** Resource usage **)

    val numResources : int
    val rUseDef : instruction -> (int list * int list)
    val hazard : (instruction * instruction) -> bool
    val needsNop : (instruction * instruction) -> bool

end (* signature MACHINSTR *)


unix.superglobalmegacorp.com

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