|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)c23.c 1.3 (Berkeley/CCI) 8/14/86";
3: #endif
4:
5: #include "c2.h"
6: #define readonly
7:
8: readonly char revbr[] = {
9: JNE, JEQ, JGT, JLT, JGE, JLE,
10: JNE, JEQ, JHI, JLO, JHIS, JLOS,
11: JBS, JBC, };
12:
13: /* cursed be the preprocessor, whose impotence and stupidity
14: /* prevented this table being macro-generated from ../as/instrs
15: */
16:
17: readonly struct optab optab[] = {
18: "jbr",JBR,0,
19: "jeql",CBR,JEQ,
20: "jneq",CBR,JNE,
21: "jleq",CBR,JLE,
22: "jgeq",CBR,JGE,
23: "jlss",CBR,JLT,
24: "jgtr",CBR,JGT,
25: "jbc",CBR,JBC,
26: "jbs",CBR,JBS,
27: "jlequ",CBR,JLOS,
28: "jgequ",CBR,JHIS,
29: "jlssu",CBR,JLO,
30: "jgtru",CBR,JHI,
31: "adda",ADDA,LONG,
32: "addb2",ADD,U(BYTE,OP2),
33: "addb3",ADD,U(BYTE,OP3),
34: "addl2",ADD,U(LONG,OP2),
35: "addl3",ADD,U(LONG,OP3),
36: "addw2",ADD,U(WORD,OP2),
37: "addw3",ADD,U(WORD,OP3),
38: "aobleq",AOBLEQ,0,
39: "aoblss",AOBLSS,0,
40: "shal",SHAL,LONG,
41: "shar",SHAR,LONG,
42: "shll",SHL,LONG,
43: "shrl",SHR,LONG,
44: "shlq",SHL,QUAD,
45: "shrq",SHR,QUAD,
46: "bbc",CBR,JBC,
47: "bbs",CBR,JBS,
48: "bcc",CBR,JHIS,
49: "bcs",CBR,JLO,
50: "beql",CBR,JEQ,
51: "beqlu",CBR,JEQ,
52: "bgeq",CBR,JGE,
53: "bgequ",CBR,JHIS,
54: "bgtr",CBR,JGT,
55: "bgtru",CBR,JHI,
56: "andb2",AND,U(BYTE,OP2),
57: "andb3",AND,U(BYTE,OP3),
58: "andl2",AND,U(LONG,OP2),
59: "andl3",AND,U(LONG,OP3),
60: "andw2",AND,U(WORD,OP2),
61: "andw3",AND,U(WORD,OP3),
62: "orb2",OR,U(BYTE,OP2),
63: "orb3",OR,U(BYTE,OP3),
64: "orl2",OR,U(LONG,OP2),
65: "orl3",OR,U(LONG,OP3),
66: "orw2",OR,U(WORD,OP2),
67: "orw3",OR,U(WORD,OP3),
68: "bitb",BIT,BYTE,
69: "bitl",BIT,LONG,
70: "bitw",BIT,WORD,
71: "bleq",CBR,JLE,
72: "blequ",CBR,JLOS,
73: "blss",CBR,JLT,
74: "blssu",CBR,JLO,
75: "bneq",CBR,JNE,
76: "bnequ",CBR,JNE,
77: "brb",JBR,0,
78: "brw",JBR,0,
79: "bvc",CBR,0,
80: "bvs",CBR,0,
81: "callf",CALLF,0,
82: "calls",CALLS,0,
83: "casel",CASE,LONG,
84: "clrb",CLR,BYTE,
85: "clrl",CLR,LONG,
86: "clrw",CLR,WORD,
87: "cmpb",CMP,BYTE,
88: "cmpl",CMP,LONG,
89: "cmpw",CMP,WORD,
90: "cvtbl",CVT,U(BYTE,LONG),
91: "cvtbw",CVT,U(BYTE,WORD),
92: "cvtlb",CVT,U(LONG,BYTE),
93: "cvtlw",CVT,U(LONG,WORD),
94: "cvtwb",CVT,U(WORD,BYTE),
95: "cvtwl",CVT,U(WORD,LONG),
96: "decb",DEC,BYTE,
97: "decl",DEC,LONG,
98: "decw",DEC,WORD,
99: "divl2",DIV,U(LONG,OP2),
100: "divl3",DIV,U(LONG,OP3),
101: "ediv",EDIV,LONG,
102: #ifdef EMOD
103: "emod",EMOD,LONG,
104: #endif EMOD
105: "emul",EMUL,LONG,
106: "incb",INC,BYTE,
107: "incl",INC,LONG,
108: "incw",INC,WORD,
109: "jmp",JMP,0,
110: "mcomb",COM,BYTE,
111: "mcoml",COM,LONG,
112: "mcomw",COM,WORD,
113: "mnegb",NEG,BYTE,
114: "mnegl",NEG,LONG,
115: "mnegw",NEG,WORD,
116: "movab",MOVA,BYTE,
117: "moval",MOVA,LONG,
118: "movaw",MOVA,WORD,
119: "movb",MOV,BYTE,
120: "movl",MOV,LONG,
121: "movw",MOV,WORD,
122: "movzbl",MOVZ,U(BYTE,LONG),
123: "movzbw",MOVZ,U(BYTE,WORD),
124: "movzwl",MOVZ,U(WORD,LONG),
125: "mull2",MUL,U(LONG,OP2),
126: "mull3",MUL,U(LONG,OP3),
127: "pushab",PUSHA,BYTE,
128: "pushal",PUSHA,LONG,
129: "pushaw",PUSHA,WORD,
130: "pushb",PUSH,BYTE,
131: "pushl",PUSH,LONG,
132: "pushw",PUSH,WORD,
133: "ret",JBR,U(RET,2),
134: "ret#0",JBR,RET,
135: "ret#1",JBR,U(RET,1),
136: "ret#2",JBR,U(RET,2),
137: "suba",SUBA,LONG,
138: "subb2",SUB,U(BYTE,OP2),
139: "subb3",SUB,U(BYTE,OP3),
140: "subl2",SUB,U(LONG,OP2),
141: "subl3",SUB,U(LONG,OP3),
142: "subw2",SUB,U(WORD,OP2),
143: "subw3",SUB,U(WORD,OP3),
144: "tstb",TST,BYTE,
145: "tstl",TST,LONG,
146: "tstw",TST,WORD,
147: "xorb2",XOR,U(BYTE,OP2),
148: "xorb3",XOR,U(BYTE,OP3),
149: "xorl2",XOR,U(LONG,OP2),
150: "xorl3",XOR,U(LONG,OP3),
151: "xorw2",XOR,U(WORD,OP2),
152: "xorw3",XOR,U(WORD,OP3),
153: "movblk",MOVBLK,0,
154: "ldf",LDF,FLOAT,
155: "ldd",LDF,DOUBLE,
156: "lnf",LNF,FLOAT,
157: "lnd",LNF,DOUBLE,
158: "stf",STF,FLOAT,
159: "std",STF,DOUBLE,
160: "cmpf",CMPF,FLOAT,
161: "cmpd",CMPF,DOUBLE,
162: "cmpf2",CMPF2,FLOAT,
163: "cmpd2",CMPF2,DOUBLE,
164: "tstf",TSTF,FLOAT,
165: "tstd",TSTF,DOUBLE,
166: "pushd",PUSHD,DOUBLE,
167: "cvlf",CVLF,U(LONG,FLOAT),
168: "cvld",CVLF,U(LONG,DOUBLE),
169: "cvfl",CVFL,U(FLOAT,LONG),
170: "cvdl",CVFL,U(DOUBLE,LONG),
171: "ldfd",LDFD,U(FLOAT,DOUBLE),
172: "cvdf",CVDF,U(DOUBLE,FLOAT),
173: "negf",NEGF,FLOAT,
174: "negd",NEGF,DOUBLE,
175: "addf",ADDF,FLOAT,
176: "addd",ADDF,DOUBLE,
177: "subf",SUBF,FLOAT,
178: "subd",SUBF,DOUBLE,
179: "mulf",MULF,FLOAT,
180: "muld",MULF,DOUBLE,
181: "divf",DIVF,FLOAT,
182: "divd",DIVF,DOUBLE,
183: "sinf",SINF,FLOAT,
184: "cosf",COSF,FLOAT,
185: "atanf",ATANF,FLOAT,
186: "logf",LOGF,FLOAT,
187: "sqrtf",SQRTF,FLOAT,
188: "expf",EXPF,FLOAT,
189: ".globl",EROU,0,
190: ".text",TEXT,0,
191: ".data",DATA,0,
192: ".bss",BSS,0,
193: ".align",ALIGN,0,
194: ".word",WGEN,0,
195: ".long",LGEN,0,
196: ".set",SET,0,
197: ".lcomm",LCOMM,0,
198: ".comm",COMM,0,
199: ".end",END,0,
200: "mfpr",MFPR,LONG,
201: "mtpr",MTPR,LONG,
202: "probe",PROBE,BYTE,
203: "adwc",NIL,0,
204: "movob",MOVO,BYTE,
205: "movow",MOVO,WORD,
206: "bbssi",NIL,0,
207: "bicpsw",NIL,0,
208: "bispsw",NIL,0,
209: "bpt",NIL,0,
210: "btcs",NIL,0,
211: "cmps2",NIL,0,
212: "cmps3",NIL,0,
213: "emul",NIL,0,
214: "ffc",NIL,0,
215: "ffs",NIL,0,
216: "halt",NIL,0,
217: "insque",NIL,0,
218: "kcall",NIL,0,
219: "ldpctx",NIL,0,
220: "loadr",NIL,0,
221: "movpsl",NIL,0,
222: "movs2",NIL,0,
223: "movs3",NIL,0,
224: "nop",NIL,0,
225: "rei",NIL,0,
226: "remque",NIL,0,
227: "sbwc",NIL,0,
228: "storer",NIL,0,
229: "svpctx",NIL,0,
230: "sinf",NIL,0,
231: "cosf",NIL,0,
232: "atanf",NIL,0,
233: "logf",NIL,0,
234: "sqrtf",NIL,0,
235: "expf",NIL,0,
236: {0}};
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.