|
|
1.1 root 1: (* Copyright 1989 by AT&T Bell Laboratories *)
2: (* emitter.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 the signature of the assembler and machine code emitters.
13: *)
14:
15: signature EMITTER =
16: sig
17: type instruction
18: type label
19:
20: val emitLong : int -> unit (* emit an integer constant *)
21: val emitString : string -> unit (* emit a (padded) string constant *)
22: val emitReal : string -> unit (* emit a real constant *)
23: (* NOTE: the following is useful for asm code, but could be replaced by
24: * emitLong. *)
25: val emitAddr : (label * int) -> unit (* emit a label value (with offset) *)
26:
27: val define : label -> unit (* define a label *)
28: val mark : unit -> unit (* emit a back-pointer mark *)
29:
30: val emitInstr : instruction -> unit (* emit an instruction *)
31:
32: val comment : string -> unit
33:
34: val init : int -> unit (* initialize to emit n bytes of code *)
35:
36: end (* signature EMITTER *)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.