|
|
1.1 root 1: (* Copyright 1989 by AT&T Bell Laboratories *)
2: signature VAXCODER = sig
3:
4: eqtype Label
5:
6: val newlabel : unit -> Label
7:
8: datatype Register = reg of int
9:
10: datatype EA = direct of Register
11: | autoinc of Register
12: | autodec of Register
13: | displace of int * Register
14: | deferred of int * Register
15: | immed of int
16: | immedlab of Label
17: | address of Label
18: | index of EA * Register
19:
20: val r0 : Register
21: val r1 : Register
22: val r2 : Register
23: val r3 : Register
24: val r4 : Register
25: val r5 : Register
26: val r6 : Register
27: val r7 : Register
28: val r8 : Register
29: val r9 : Register
30: val r10 : Register
31: val r11 : Register
32: val r12 : Register
33: val r13 : Register
34: val sp : Register
35: val pc : Register
36:
37: val align : unit -> unit
38: val mark : unit -> unit
39: val define : Label -> unit
40: val emitstring : string -> unit
41: val realconst : string -> unit
42: val emitlong : int -> unit
43:
44: val emitlab : int * Label -> unit
45:
46: val jne : EA -> unit
47: val jbr : EA -> unit
48: val bbc : EA * EA * EA -> unit
49: val bbs : EA * EA * EA -> unit
50: val movl : EA * EA -> unit
51: val movq : EA * EA -> unit
52: val movb : EA * EA -> unit
53: val movzbl : EA * EA -> unit
54: val moval : EA * EA -> unit
55: val pushal : EA -> unit
56: val rsb : unit -> unit
57: val cmpl : EA * EA -> unit
58: val addl2 : EA * EA -> unit
59: val addl3 : EA * EA * EA -> unit
60: val subl2 : EA * EA -> unit
61: val subl3 : EA * EA * EA -> unit
62: val bisl3 : EA * EA * EA -> unit
63: val bicl3 : EA * EA * EA -> unit
64: val ashl : EA * EA * EA -> unit
65: val xorl3 : EA * EA * EA -> unit
66: val mull2 : EA * EA -> unit
67: val divl3 : EA * EA * EA -> unit
68: val divl2 : EA * EA -> unit
69: val jmp : EA -> unit
70: val brb : EA -> unit
71: val brw : EA -> unit
72: val beql : EA -> unit
73: val bneq : EA -> unit
74: val bgeq : EA -> unit
75: val bgtr : EA -> unit
76: val blss : EA -> unit
77: val bleq : EA -> unit
78: val sobgeq : EA * EA -> unit
79:
80: val movg : EA * EA -> unit
81: val mnegg : EA * EA -> unit
82: val addg3 : EA * EA * EA -> unit
83: val subg3 : EA * EA * EA -> unit
84: val mulg3 : EA * EA * EA -> unit
85: val divg3 : EA * EA * EA -> unit
86: val cmpg : EA * EA -> unit
87:
88: val push : EA -> unit
89: val pusha : EA -> unit
90: val pop : EA -> unit
91:
92: val comment : string -> unit
93:
94: end (* signature CODER *)
95:
96: signature VAXMCODER =
97: sig
98: structure Coder : VAXCODER
99: val finish : unit -> string
100: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.