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