BSD 4_4 release
[unix-history] / usr / src / old / pcc / c2.tahoe / c23.c
CommitLineData
ac7b3842 1#ifndef lint
ca67e7b4 2static char sccsid[] = "@(#)c23.c 1.3 (Berkeley/CCI) 8/14/86";
ac7b3842
SL
3#endif
4
5#include "c2.h"
6#define readonly
7
8readonly 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
17readonly 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,
864f1f35 203"adwc",NIL,0,
ac7b3842
SL
204"movob",MOVO,BYTE,
205"movow",MOVO,WORD,
864f1f35
SL
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}};