|
|
1.1 root 1: (* Copyright 1989 by AT&T Bell Laboratories *)
2: signature M68CODER = sig
3:
4: eqtype Label
5:
6: val newlabel : unit -> Label
7:
8: datatype Register = DataReg of int
9: | AddrReg of int
10: | FloatReg of int
11: | PC
12:
13: datatype Size = Byte | Word | Long
14:
15: datatype EA = Direct of Register
16: | PostInc of Register
17: | PreDec of Register
18: | Displace of Register * int
19: | Index of Register * int * Register * Size
20: | Immedlab of Label
21: | Immed of int
22: | Abs of int
23: | Address of Label
24:
25: val d0 : Register
26: val d1 : Register
27: val d2 : Register
28: val d3 : Register
29: val d4 : Register
30: val d5 : Register
31: val d6 : Register
32: val d7 : Register
33: val a0 : Register
34: val a1 : Register
35: val a2 : Register
36: val a3 : Register
37: val a4 : Register
38: val a5 : Register
39: val a6 : Register
40: val sp : Register
41: val fp0 : Register
42: val fp1 : Register
43: val fp2 : Register
44: val fp3 : Register
45: val fp4 : Register
46: val fp5 : Register
47: val fp6 : Register
48: val fp7 : Register
49:
50: val align : unit -> unit
51: val mark : unit -> unit
52: val define : Label -> unit
53: val emitstring : string -> unit
54: val realconst : string -> unit
55: val emitlong : int -> unit
56:
57: val emitlab : int * Label -> unit
58:
59: val rts : unit -> unit
60: val exg : (EA * EA) -> unit
61: val movl : (EA * EA) -> unit
62: val orl : (EA * EA) -> unit
63: val andl : (EA * EA) -> unit
64: val eorl : (EA * EA) -> unit
65: val addl : (EA * EA) -> unit
66: val subl : (EA * EA) -> unit
67: val cmpl : (EA * EA) -> unit
68: val btst : (EA * EA) -> unit
69: val pea : EA -> unit
70: val lea : (EA * EA) -> unit
71: val jne : EA -> unit
72: val jeq : EA -> unit
73: val jra : EA -> unit
74: val jbsr : EA -> unit
75:
76: val jgt : EA -> unit
77: val jge : EA -> unit
78: val jlt : EA -> unit
79: val jle : EA -> unit
80: val asrl : EA * EA -> unit
81: val asll : EA * EA -> unit
82: val divl : EA * EA -> unit
83: val mull : EA * EA -> unit
84: val movb : EA * EA -> unit
85:
86: val fjne : EA -> unit
87: val fjeq : EA -> unit
88: val fjgt : EA -> unit
89: val fjge : EA -> unit
90: val fjlt : EA -> unit
91: val fjle : EA -> unit
92:
93: val fcmpd : EA * EA -> unit
94: val faddd : EA * EA -> unit
95: val fsubd : EA * EA -> unit
96: val fmuld : EA * EA -> unit
97: val fdivd : EA * EA -> unit
98: val fnegd : EA * EA -> unit
99: val fmoved : EA * EA -> unit
100:
101: val trapv : unit -> unit
102: val trapmi : unit -> unit
103:
104: val exg : EA * EA -> unit
105:
106: val push : EA -> unit
107: val pusha : EA -> unit
108: val pop : EA -> unit
109:
110: val comment : string -> unit
111:
112: end (* signature CODER *)
113:
114: signature M68MCODER =
115: sig
116: structure Coder : M68CODER
117: val finish : unit -> string
118: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.