|
|
1.1 root 1: static char sccsid[] = "@(#)c22.c 4.1 10/16/80";
2: #include "c2.h"
3: /* char c22[] = "@(#)c22.c 1.10 80/03/14 10:27:37"; */
4: #define readonly
5:
6: readonly char revbr[] = {
7: JNE, JEQ, JGT, JLT, JGE, JLE,
8: JNE, JEQ, JHI, JLO, JHIS, JLOS,
9: JBS, JBC, JLBS, JLBC, JBSC, JBCC, JBSS, JBCS };
10:
11: /* cursed be the preprocessor, whose impotence and stupidity
12: /* prevented this table being macro-generated from ../as/instrs
13: */
14:
15: readonly struct optab optab[] = {
16: "jbr",JBR,
17: "jeql",T(CBR,JEQ),
18: "jneq",T(CBR,JNE),
19: "jleq",T(CBR,JLE),
20: "jgeq",T(CBR,JGE),
21: "jlss",T(CBR,JLT),
22: "jgtr",T(CBR,JGT),
23: "jbc",T(CBR,JBC),
24: "jbs",T(CBR,JBS),
25: "jlequ",T(CBR,JLOS),
26: "jgequ",T(CBR,JHIS),
27: "jlssu",T(CBR,JLO),
28: "jgtru",T(CBR,JHI),
29: "jlbc",T(CBR,JLBC),
30: "jlbs",T(CBR,JLBS),
31: "jbcc",T(CBR,JBCC),
32: "jbsc",T(CBR,JBSC),
33: "jbcs",T(CBR,JBCS),
34: "jbss",T(CBR,JBSS),
35: "acbb",T(ACB,BYTE),
36: "acbd",T(ACB,DOUBLE),
37: "acbf",T(ACB,FLOAT),
38: "acbl",T(ACB,LONG),
39: "acbw",T(ACB,WORD),
40: "addb2",T(ADD,U(BYTE,OP2)),
41: "addb3",T(ADD,U(BYTE,OP3)),
42: "addd2",T(ADD,U(DOUBLE,OP2)),
43: "addd3",T(ADD,U(DOUBLE,OP3)),
44: "addf2",T(ADD,U(FLOAT,OP2)),
45: "addf3",T(ADD,U(FLOAT,OP3)),
46: "addl2",T(ADD,U(LONG,OP2)),
47: "addl3",T(ADD,U(LONG,OP3)),
48: "addw2",T(ADD,U(WORD,OP2)),
49: "addw3",T(ADD,U(WORD,OP3)),
50: "aobleq",AOBLEQ,
51: "aoblss",AOBLSS,
52: "ashl",T(ASH,LONG),
53: "ashq",T(ASH,QUAD),
54: "bbc",T(CBR,JBC),
55: "bbcc",T(CBR,JBCC),
56: "bbcci",T(CBR,JBCC),
57: "bbcs",T(CBR,JBCS),
58: "bbs",T(CBR,JBS),
59: "bbsc",T(CBR,JBSC),
60: "bbss",T(CBR,JBSS),
61: "bbssi",T(CBR,JBSS),
62: "bcc",T(CBR,JHIS),
63: "bcs",T(CBR,JLO),
64: "beql",T(CBR,JEQ),
65: "beqlu",T(CBR,JEQ),
66: "bgeq",T(CBR,JGE),
67: "bgequ",T(CBR,JHIS),
68: "bgtr",T(CBR,JGT),
69: "bgtru",T(CBR,JHI),
70: "bicb2",T(BIC,U(BYTE,OP2)),
71: "bicb3",T(BIC,U(BYTE,OP3)),
72: "bicl2",T(BIC,U(LONG,OP2)),
73: "bicl3",T(BIC,U(LONG,OP3)),
74: "bicw2",T(BIC,U(WORD,OP2)),
75: "bicw3",T(BIC,U(WORD,OP3)),
76: "bisb2",T(BIS,U(BYTE,OP2)),
77: "bisb3",T(BIS,U(BYTE,OP3)),
78: "bisl2",T(BIS,U(LONG,OP2)),
79: "bisl3",T(BIS,U(LONG,OP3)),
80: "bisw2",T(BIS,U(WORD,OP2)),
81: "bisw3",T(BIS,U(WORD,OP3)),
82: "bitb",T(BIT,BYTE),
83: "bitl",T(BIT,LONG),
84: "bitw",T(BIT,WORD),
85: "blbs",T(CBR,JLBS),
86: "blbc",T(CBR,JLBC),
87: "bleq",T(CBR,JLE),
88: "blequ",T(CBR,JLOS),
89: "blss",T(CBR,JLT),
90: "blssu",T(CBR,JLO),
91: "bneq",T(CBR,JNE),
92: "bnequ",T(CBR,JNE),
93: "brb",JBR,
94: "brw",JBR,
95: "bvc",T(CBR,0),
96: "bvs",T(CBR,0),
97: "callg",CALLS,
98: "calls",CALLS,
99: "caseb",T(CASE,BYTE),
100: "casel",T(CASE,LONG),
101: "casew",T(CASE,WORD),
102: "clrb",T(CLR,BYTE),
103: "clrd",T(CLR,DOUBLE),
104: "clrf",T(CLR,FLOAT),
105: "clrl",T(CLR,LONG),
106: "clrq",T(CLR,QUAD),
107: "clrw",T(CLR,WORD),
108: "cmpb",T(CMP,BYTE),
109: "cmpd",T(CMP,DOUBLE),
110: "cmpf",T(CMP,FLOAT),
111: "cmpl",T(CMP,LONG),
112: "cmpw",T(CMP,WORD),
113: "cvtbd",T(CVT,U(BYTE,DOUBLE)),
114: "cvtbf",T(CVT,U(BYTE,FLOAT)),
115: "cvtbl",T(CVT,U(BYTE,LONG)),
116: "cvtbw",T(CVT,U(BYTE,WORD)),
117: "cvtdb",T(CVT,U(DOUBLE,BYTE)),
118: "cvtdf",T(CVT,U(DOUBLE,FLOAT)),
119: "cvtdl",T(CVT,U(DOUBLE,LONG)),
120: "cvtdw",T(CVT,U(DOUBLE,WORD)),
121: "cvtfb",T(CVT,U(FLOAT,BYTE)),
122: "cvtfd",T(CVT,U(FLOAT,DOUBLE)),
123: "cvtfl",T(CVT,U(FLOAT,LONG)),
124: "cvtfw",T(CVT,U(FLOAT,WORD)),
125: "cvtlb",T(CVT,U(LONG,BYTE)),
126: "cvtld",T(CVT,U(LONG,DOUBLE)),
127: "cvtlf",T(CVT,U(LONG,FLOAT)),
128: "cvtlw",T(CVT,U(LONG,WORD)),
129: "cvtrdl",T(CVT,U(DOUBLE,LONG)),
130: "cvtrfl",T(CVT,U(FLOAT,LONG)),
131: "cvtwb",T(CVT,U(WORD,BYTE)),
132: "cvtwd",T(CVT,U(WORD,DOUBLE)),
133: "cvtwf",T(CVT,U(WORD,FLOAT)),
134: "cvtwl",T(CVT,U(WORD,LONG)),
135: "decb",T(DEC,BYTE),
136: "decl",T(DEC,LONG),
137: "decw",T(DEC,WORD),
138: "divb2",T(DIV,U(BYTE,OP2)),
139: "divb3",T(DIV,U(BYTE,OP3)),
140: "divd2",T(DIV,U(DOUBLE,OP2)),
141: "divd3",T(DIV,U(DOUBLE,OP3)),
142: "divf2",T(DIV,U(FLOAT,OP2)),
143: "divf3",T(DIV,U(FLOAT,OP3)),
144: "divl2",T(DIV,U(LONG,OP2)),
145: "divl3",T(DIV,U(LONG,OP3)),
146: "divw2",T(DIV,U(WORD,OP2)),
147: "divw3",T(DIV,U(WORD,OP3)),
148: "extv",T(EXTV,LONG),
149: "extzv",T(EXTZV,LONG),
150: "incb",T(INC,BYTE),
151: "incl",T(INC,LONG),
152: "incw",T(INC,WORD),
153: "insv",T(INSV,-1),
154: "jmp",JMP,
155: "mcomb",T(COM,BYTE),
156: "mcoml",T(COM,LONG),
157: "mcomw",T(COM,WORD),
158: "mnegb",T(NEG,BYTE),
159: "mnegd",T(NEG,DOUBLE),
160: "mnegf",T(NEG,FLOAT),
161: "mnegl",T(NEG,LONG),
162: "mnegw",T(NEG,WORD),
163: "movab",T(MOVA,BYTE),
164: "movad",T(MOVA,DOUBLE),
165: "movaf",T(MOVA,FLOAT),
166: "moval",T(MOVA,LONG),
167: "movaq",T(MOVA,QUAD),
168: "movaw",T(MOVA,WORD),
169: "movb",T(MOV,BYTE),
170: "movd",T(MOV,DOUBLE),
171: "movf",T(MOV,FLOAT),
172: "movl",T(MOV,LONG),
173: "movq",T(MOV,QUAD),
174: "movw",T(MOV,WORD),
175: "movzbl",T(MOVZ,U(BYTE,LONG)),
176: "movzbw",T(MOVZ,U(BYTE,WORD)),
177: "movzwl",T(MOVZ,U(WORD,LONG)),
178: "mulb2",T(MUL,U(BYTE,OP2)),
179: "mulb3",T(MUL,U(BYTE,OP3)),
180: "muld2",T(MUL,U(DOUBLE,OP2)),
181: "muld3",T(MUL,U(DOUBLE,OP3)),
182: "mulf2",T(MUL,U(FLOAT,OP2)),
183: "mulf3",T(MUL,U(FLOAT,OP3)),
184: "mull2",T(MUL,U(LONG,OP2)),
185: "mull3",T(MUL,U(LONG,OP3)),
186: "mulw2",T(MUL,U(WORD,OP2)),
187: "mulw3",T(MUL,U(WORD,OP3)),
188: "pushab",T(PUSHA,BYTE),
189: "pushad",T(PUSHA,DOUBLE),
190: "pushaf",T(PUSHA,FLOAT),
191: "pushal",T(PUSHA,LONG),
192: "pushaq",T(PUSHA,QUAD),
193: "pushaw",T(PUSHA,WORD),
194: "pushl",T(PUSH,LONG),
195: "ret",T(JBR,RET),
196: "sobgeq",SOBGEQ,
197: "sobgtr",SOBGTR,
198: "subb2",T(SUB,U(BYTE,OP2)),
199: "subb3",T(SUB,U(BYTE,OP3)),
200: "subd2",T(SUB,U(DOUBLE,OP2)),
201: "subd3",T(SUB,U(DOUBLE,OP3)),
202: "subf2",T(SUB,U(FLOAT,OP2)),
203: "subf3",T(SUB,U(FLOAT,OP3)),
204: "subl2",T(SUB,U(LONG,OP2)),
205: "subl3",T(SUB,U(LONG,OP3)),
206: "subw2",T(SUB,U(WORD,OP2)),
207: "subw3",T(SUB,U(WORD,OP3)),
208: "tstb",T(TST,BYTE),
209: "tstd",T(TST,DOUBLE),
210: "tstf",T(TST,FLOAT),
211: "tstl",T(TST,LONG),
212: "tstw",T(TST,WORD),
213: "xorb2",T(XOR,U(BYTE,OP2)),
214: "xorb3",T(XOR,U(BYTE,OP3)),
215: "xorl2",T(XOR,U(LONG,OP2)),
216: "xorl3",T(XOR,U(LONG,OP3)),
217: "xorw2",T(XOR,U(WORD,OP2)),
218: "xorw3",T(XOR,U(WORD,OP3)),
219: "movc3",MOVC3,
220: ".globl",EROU,
221: ".text",TEXT,
222: ".data",DATA,
223: ".bss",BSS,
224: ".align",ALIGN,
225: ".word",WGEN,
226: ".long",LGEN,
227: ".set",SET,
228: ".lcomm",LCOMM,
229: ".comm",COMM,
230: ".end",END,
231: "rsb",T(JBR,RSB),
232: "jsb",JSB,
233: "mfpr",T(MFPR,LONG),
234: "mtpr",T(MTPR,LONG),
235: "prober",T(PROBER,BYTE),
236: "probew",T(PROBEW,BYTE),
237: "adawi",0,
238: "addp4",0,
239: "addp6",0,
240: "adwc",0,
241: "ashp",0,
242: "bicpsw",0,
243: "bispsw",0,
244: "bpt",0,
245: "bsbb",0,
246: "bsbw",0,
247: "chme",0,
248: "chmk",0,
249: "chms",0,
250: "chmu",0,
251: "cmpc3",0,
252: "cmpc5",0,
253: "cmpp3",0,
254: "cmpp4",0,
255: "cmpv",0,
256: "cmpzv",0,
257: "crc",0,
258: "cvtlp",0,
259: "cvtpl",0,
260: "cvttp",0,
261: "cvtpt",0,
262: "cvtps",0,
263: "cvtsp",0,
264: "divp",0,
265: "editpc",0,
266: "ediv",0,
267: "emodd",0,
268: "emodf",0,
269: "emul",0,
270: "ffc",0,
271: "ffs",0,
272: "halt",0,
273: "index",0,
274: "insque",0,
275: "ldpctx",0,
276: "locc",0,
277: "matchc",0,
278: "movc5",0,
279: "movp",0,
280: "movpsl",0,
281: "movtc",0,
282: "movtuc",0,
283: "mulp",0,
284: "nop",0,
285: "polyd",0,
286: "polyf",0,
287: "popr",0,
288: "pushr",0,
289: "rei",0,
290: "remque",0,
291: "rotl",0,
292: "sbwc",0,
293: "scanc",0,
294: "skpc",0,
295: "spanc",0,
296: "subp4",0,
297: "subp6",0,
298: "svpctx",0,
299: "xfc",0,
300: "escd",0,
301: "esce",0,
302: "escf",0,
303: 0, 0};
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.