1*e887ea33SDavid du Colombier #define EXTERN
2*e887ea33SDavid du Colombier #include "a.h"
3*e887ea33SDavid du Colombier #include "y.tab.h"
4*e887ea33SDavid du Colombier #include <ctype.h>
5*e887ea33SDavid du Colombier
6*e887ea33SDavid du Colombier void
main(int argc,char * argv[])7*e887ea33SDavid du Colombier main(int argc, char *argv[])
8*e887ea33SDavid du Colombier {
9*e887ea33SDavid du Colombier char *p;
10*e887ea33SDavid du Colombier int nout, nproc, status, i, c;
11*e887ea33SDavid du Colombier
12*e887ea33SDavid du Colombier thechar = '6';
13*e887ea33SDavid du Colombier thestring = "amd64";
14*e887ea33SDavid du Colombier memset(debug, 0, sizeof(debug));
15*e887ea33SDavid du Colombier cinit();
16*e887ea33SDavid du Colombier outfile = 0;
17*e887ea33SDavid du Colombier include[ninclude++] = ".";
18*e887ea33SDavid du Colombier ARGBEGIN {
19*e887ea33SDavid du Colombier default:
20*e887ea33SDavid du Colombier c = ARGC();
21*e887ea33SDavid du Colombier if(c >= 0 || c < sizeof(debug))
22*e887ea33SDavid du Colombier debug[c] = 1;
23*e887ea33SDavid du Colombier break;
24*e887ea33SDavid du Colombier
25*e887ea33SDavid du Colombier case 'o':
26*e887ea33SDavid du Colombier outfile = ARGF();
27*e887ea33SDavid du Colombier break;
28*e887ea33SDavid du Colombier
29*e887ea33SDavid du Colombier case 'D':
30*e887ea33SDavid du Colombier p = ARGF();
31*e887ea33SDavid du Colombier if(p)
32*e887ea33SDavid du Colombier Dlist[nDlist++] = p;
33*e887ea33SDavid du Colombier break;
34*e887ea33SDavid du Colombier
35*e887ea33SDavid du Colombier case 'I':
36*e887ea33SDavid du Colombier p = ARGF();
37*e887ea33SDavid du Colombier setinclude(p);
38*e887ea33SDavid du Colombier break;
39*e887ea33SDavid du Colombier } ARGEND
40*e887ea33SDavid du Colombier if(*argv == 0) {
41*e887ea33SDavid du Colombier print("usage: %ca [-options] file.s\n", thechar);
42*e887ea33SDavid du Colombier errorexit();
43*e887ea33SDavid du Colombier }
44*e887ea33SDavid du Colombier if(argc > 1 && systemtype(Windows)){
45*e887ea33SDavid du Colombier print("can't assemble multiple files on windows\n");
46*e887ea33SDavid du Colombier errorexit();
47*e887ea33SDavid du Colombier }
48*e887ea33SDavid du Colombier if(argc > 1 && !systemtype(Windows)) {
49*e887ea33SDavid du Colombier nproc = 1;
50*e887ea33SDavid du Colombier if(p = getenv("NPROC"))
51*e887ea33SDavid du Colombier nproc = atol(p); /* */
52*e887ea33SDavid du Colombier c = 0;
53*e887ea33SDavid du Colombier nout = 0;
54*e887ea33SDavid du Colombier for(;;) {
55*e887ea33SDavid du Colombier while(nout < nproc && argc > 0) {
56*e887ea33SDavid du Colombier i = myfork();
57*e887ea33SDavid du Colombier if(i < 0) {
58*e887ea33SDavid du Colombier i = mywait(&status);
59*e887ea33SDavid du Colombier if(i < 0)
60*e887ea33SDavid du Colombier errorexit();
61*e887ea33SDavid du Colombier if(status)
62*e887ea33SDavid du Colombier c++;
63*e887ea33SDavid du Colombier nout--;
64*e887ea33SDavid du Colombier continue;
65*e887ea33SDavid du Colombier }
66*e887ea33SDavid du Colombier if(i == 0) {
67*e887ea33SDavid du Colombier print("%s:\n", *argv);
68*e887ea33SDavid du Colombier if(assemble(*argv))
69*e887ea33SDavid du Colombier errorexit();
70*e887ea33SDavid du Colombier exits(0);
71*e887ea33SDavid du Colombier }
72*e887ea33SDavid du Colombier nout++;
73*e887ea33SDavid du Colombier argc--;
74*e887ea33SDavid du Colombier argv++;
75*e887ea33SDavid du Colombier }
76*e887ea33SDavid du Colombier i = mywait(&status);
77*e887ea33SDavid du Colombier if(i < 0) {
78*e887ea33SDavid du Colombier if(c)
79*e887ea33SDavid du Colombier errorexit();
80*e887ea33SDavid du Colombier exits(0);
81*e887ea33SDavid du Colombier }
82*e887ea33SDavid du Colombier if(status)
83*e887ea33SDavid du Colombier c++;
84*e887ea33SDavid du Colombier nout--;
85*e887ea33SDavid du Colombier }
86*e887ea33SDavid du Colombier }
87*e887ea33SDavid du Colombier if(assemble(argv[0]))
88*e887ea33SDavid du Colombier errorexit();
89*e887ea33SDavid du Colombier exits(0);
90*e887ea33SDavid du Colombier }
91*e887ea33SDavid du Colombier
92*e887ea33SDavid du Colombier int
assemble(char * file)93*e887ea33SDavid du Colombier assemble(char *file)
94*e887ea33SDavid du Colombier {
95*e887ea33SDavid du Colombier char ofile[100], incfile[20], *p;
96*e887ea33SDavid du Colombier int i, of;
97*e887ea33SDavid du Colombier
98*e887ea33SDavid du Colombier strcpy(ofile, file);
99*e887ea33SDavid du Colombier p = utfrrune(ofile, pathchar());
100*e887ea33SDavid du Colombier if(p) {
101*e887ea33SDavid du Colombier include[0] = ofile;
102*e887ea33SDavid du Colombier *p++ = 0;
103*e887ea33SDavid du Colombier } else
104*e887ea33SDavid du Colombier p = ofile;
105*e887ea33SDavid du Colombier if(outfile == 0) {
106*e887ea33SDavid du Colombier outfile = p;
107*e887ea33SDavid du Colombier if(outfile){
108*e887ea33SDavid du Colombier p = utfrrune(outfile, '.');
109*e887ea33SDavid du Colombier if(p)
110*e887ea33SDavid du Colombier if(p[1] == 's' && p[2] == 0)
111*e887ea33SDavid du Colombier p[0] = 0;
112*e887ea33SDavid du Colombier p = utfrune(outfile, 0);
113*e887ea33SDavid du Colombier p[0] = '.';
114*e887ea33SDavid du Colombier p[1] = thechar;
115*e887ea33SDavid du Colombier p[2] = 0;
116*e887ea33SDavid du Colombier } else
117*e887ea33SDavid du Colombier outfile = "/dev/null";
118*e887ea33SDavid du Colombier }
119*e887ea33SDavid du Colombier p = getenv("INCLUDE");
120*e887ea33SDavid du Colombier if(p) {
121*e887ea33SDavid du Colombier setinclude(p);
122*e887ea33SDavid du Colombier } else {
123*e887ea33SDavid du Colombier if(systemtype(Plan9)) {
124*e887ea33SDavid du Colombier sprint(incfile,"/%s/include", thestring);
125*e887ea33SDavid du Colombier setinclude(strdup(incfile));
126*e887ea33SDavid du Colombier }
127*e887ea33SDavid du Colombier }
128*e887ea33SDavid du Colombier
129*e887ea33SDavid du Colombier of = mycreat(outfile, 0664);
130*e887ea33SDavid du Colombier if(of < 0) {
131*e887ea33SDavid du Colombier yyerror("%ca: cannot create %s", thechar, outfile);
132*e887ea33SDavid du Colombier errorexit();
133*e887ea33SDavid du Colombier }
134*e887ea33SDavid du Colombier Binit(&obuf, of, OWRITE);
135*e887ea33SDavid du Colombier
136*e887ea33SDavid du Colombier pass = 1;
137*e887ea33SDavid du Colombier pinit(file);
138*e887ea33SDavid du Colombier for(i=0; i<nDlist; i++)
139*e887ea33SDavid du Colombier dodefine(Dlist[i]);
140*e887ea33SDavid du Colombier yyparse();
141*e887ea33SDavid du Colombier if(nerrors) {
142*e887ea33SDavid du Colombier cclean();
143*e887ea33SDavid du Colombier return nerrors;
144*e887ea33SDavid du Colombier }
145*e887ea33SDavid du Colombier
146*e887ea33SDavid du Colombier pass = 2;
147*e887ea33SDavid du Colombier outhist();
148*e887ea33SDavid du Colombier pinit(file);
149*e887ea33SDavid du Colombier for(i=0; i<nDlist; i++)
150*e887ea33SDavid du Colombier dodefine(Dlist[i]);
151*e887ea33SDavid du Colombier yyparse();
152*e887ea33SDavid du Colombier cclean();
153*e887ea33SDavid du Colombier return nerrors;
154*e887ea33SDavid du Colombier }
155*e887ea33SDavid du Colombier
156*e887ea33SDavid du Colombier struct
157*e887ea33SDavid du Colombier {
158*e887ea33SDavid du Colombier char *name;
159*e887ea33SDavid du Colombier ushort type;
160*e887ea33SDavid du Colombier ushort value;
161*e887ea33SDavid du Colombier } itab[] =
162*e887ea33SDavid du Colombier {
163*e887ea33SDavid du Colombier "SP", LSP, D_AUTO,
164*e887ea33SDavid du Colombier "SB", LSB, D_EXTERN,
165*e887ea33SDavid du Colombier "FP", LFP, D_PARAM,
166*e887ea33SDavid du Colombier "PC", LPC, D_BRANCH,
167*e887ea33SDavid du Colombier
168*e887ea33SDavid du Colombier "AL", LBREG, D_AL,
169*e887ea33SDavid du Colombier "CL", LBREG, D_CL,
170*e887ea33SDavid du Colombier "DL", LBREG, D_DL,
171*e887ea33SDavid du Colombier "BL", LBREG, D_BL,
172*e887ea33SDavid du Colombier /* "SPB", LBREG, D_SPB, */
173*e887ea33SDavid du Colombier "SIB", LBREG, D_SIB,
174*e887ea33SDavid du Colombier "DIB", LBREG, D_DIB,
175*e887ea33SDavid du Colombier "BPB", LBREG, D_BPB,
176*e887ea33SDavid du Colombier "R8B", LBREG, D_R8B,
177*e887ea33SDavid du Colombier "R9B", LBREG, D_R9B,
178*e887ea33SDavid du Colombier "R10B", LBREG, D_R10B,
179*e887ea33SDavid du Colombier "R11B", LBREG, D_R11B,
180*e887ea33SDavid du Colombier "R12B", LBREG, D_R12B,
181*e887ea33SDavid du Colombier "R13B", LBREG, D_R13B,
182*e887ea33SDavid du Colombier "R14B", LBREG, D_R14B,
183*e887ea33SDavid du Colombier "R15B", LBREG, D_R15B,
184*e887ea33SDavid du Colombier
185*e887ea33SDavid du Colombier "AH", LBREG, D_AH,
186*e887ea33SDavid du Colombier "CH", LBREG, D_CH,
187*e887ea33SDavid du Colombier "DH", LBREG, D_DH,
188*e887ea33SDavid du Colombier "BH", LBREG, D_BH,
189*e887ea33SDavid du Colombier
190*e887ea33SDavid du Colombier "AX", LLREG, D_AX,
191*e887ea33SDavid du Colombier "CX", LLREG, D_CX,
192*e887ea33SDavid du Colombier "DX", LLREG, D_DX,
193*e887ea33SDavid du Colombier "BX", LLREG, D_BX,
194*e887ea33SDavid du Colombier /* "SP", LLREG, D_SP, */
195*e887ea33SDavid du Colombier "BP", LLREG, D_BP,
196*e887ea33SDavid du Colombier "SI", LLREG, D_SI,
197*e887ea33SDavid du Colombier "DI", LLREG, D_DI,
198*e887ea33SDavid du Colombier "R8", LLREG, D_R8,
199*e887ea33SDavid du Colombier "R9", LLREG, D_R9,
200*e887ea33SDavid du Colombier "R10", LLREG, D_R10,
201*e887ea33SDavid du Colombier "R11", LLREG, D_R11,
202*e887ea33SDavid du Colombier "R12", LLREG, D_R12,
203*e887ea33SDavid du Colombier "R13", LLREG, D_R13,
204*e887ea33SDavid du Colombier "R14", LLREG, D_R14,
205*e887ea33SDavid du Colombier "R15", LLREG, D_R15,
206*e887ea33SDavid du Colombier
207*e887ea33SDavid du Colombier "RARG", LLREG, REGARG,
208*e887ea33SDavid du Colombier
209*e887ea33SDavid du Colombier "F0", LFREG, D_F0+0,
210*e887ea33SDavid du Colombier "F1", LFREG, D_F0+1,
211*e887ea33SDavid du Colombier "F2", LFREG, D_F0+2,
212*e887ea33SDavid du Colombier "F3", LFREG, D_F0+3,
213*e887ea33SDavid du Colombier "F4", LFREG, D_F0+4,
214*e887ea33SDavid du Colombier "F5", LFREG, D_F0+5,
215*e887ea33SDavid du Colombier "F6", LFREG, D_F0+6,
216*e887ea33SDavid du Colombier "F7", LFREG, D_F0+7,
217*e887ea33SDavid du Colombier
218*e887ea33SDavid du Colombier "M0", LMREG, D_M0+0,
219*e887ea33SDavid du Colombier "M1", LMREG, D_M0+1,
220*e887ea33SDavid du Colombier "M2", LMREG, D_M0+2,
221*e887ea33SDavid du Colombier "M3", LMREG, D_M0+3,
222*e887ea33SDavid du Colombier "M4", LMREG, D_M0+4,
223*e887ea33SDavid du Colombier "M5", LMREG, D_M0+5,
224*e887ea33SDavid du Colombier "M6", LMREG, D_M0+6,
225*e887ea33SDavid du Colombier "M7", LMREG, D_M0+7,
226*e887ea33SDavid du Colombier
227*e887ea33SDavid du Colombier "X0", LXREG, D_X0+0,
228*e887ea33SDavid du Colombier "X1", LXREG, D_X0+1,
229*e887ea33SDavid du Colombier "X2", LXREG, D_X0+2,
230*e887ea33SDavid du Colombier "X3", LXREG, D_X0+3,
231*e887ea33SDavid du Colombier "X4", LXREG, D_X0+4,
232*e887ea33SDavid du Colombier "X5", LXREG, D_X0+5,
233*e887ea33SDavid du Colombier "X6", LXREG, D_X0+6,
234*e887ea33SDavid du Colombier "X7", LXREG, D_X0+7,
235*e887ea33SDavid du Colombier "X8", LXREG, D_X0+8,
236*e887ea33SDavid du Colombier "X9", LXREG, D_X0+9,
237*e887ea33SDavid du Colombier "X10", LXREG, D_X0+10,
238*e887ea33SDavid du Colombier "X11", LXREG, D_X0+11,
239*e887ea33SDavid du Colombier "X12", LXREG, D_X0+12,
240*e887ea33SDavid du Colombier "X13", LXREG, D_X0+13,
241*e887ea33SDavid du Colombier "X14", LXREG, D_X0+14,
242*e887ea33SDavid du Colombier "X15", LXREG, D_X0+15,
243*e887ea33SDavid du Colombier
244*e887ea33SDavid du Colombier "CS", LSREG, D_CS,
245*e887ea33SDavid du Colombier "SS", LSREG, D_SS,
246*e887ea33SDavid du Colombier "DS", LSREG, D_DS,
247*e887ea33SDavid du Colombier "ES", LSREG, D_ES,
248*e887ea33SDavid du Colombier "FS", LSREG, D_FS,
249*e887ea33SDavid du Colombier "GS", LSREG, D_GS,
250*e887ea33SDavid du Colombier
251*e887ea33SDavid du Colombier "GDTR", LBREG, D_GDTR,
252*e887ea33SDavid du Colombier "IDTR", LBREG, D_IDTR,
253*e887ea33SDavid du Colombier "LDTR", LBREG, D_LDTR,
254*e887ea33SDavid du Colombier "MSW", LBREG, D_MSW,
255*e887ea33SDavid du Colombier "TASK", LBREG, D_TASK,
256*e887ea33SDavid du Colombier
257*e887ea33SDavid du Colombier "CR0", LBREG, D_CR+0,
258*e887ea33SDavid du Colombier "CR1", LBREG, D_CR+1,
259*e887ea33SDavid du Colombier "CR2", LBREG, D_CR+2,
260*e887ea33SDavid du Colombier "CR3", LBREG, D_CR+3,
261*e887ea33SDavid du Colombier "CR4", LBREG, D_CR+4,
262*e887ea33SDavid du Colombier "CR5", LBREG, D_CR+5,
263*e887ea33SDavid du Colombier "CR6", LBREG, D_CR+6,
264*e887ea33SDavid du Colombier "CR7", LBREG, D_CR+7,
265*e887ea33SDavid du Colombier "CR8", LBREG, D_CR+8,
266*e887ea33SDavid du Colombier "CR9", LBREG, D_CR+9,
267*e887ea33SDavid du Colombier "CR10", LBREG, D_CR+10,
268*e887ea33SDavid du Colombier "CR11", LBREG, D_CR+11,
269*e887ea33SDavid du Colombier "CR12", LBREG, D_CR+12,
270*e887ea33SDavid du Colombier "CR13", LBREG, D_CR+13,
271*e887ea33SDavid du Colombier "CR14", LBREG, D_CR+14,
272*e887ea33SDavid du Colombier "CR15", LBREG, D_CR+15,
273*e887ea33SDavid du Colombier
274*e887ea33SDavid du Colombier "DR0", LBREG, D_DR+0,
275*e887ea33SDavid du Colombier "DR1", LBREG, D_DR+1,
276*e887ea33SDavid du Colombier "DR2", LBREG, D_DR+2,
277*e887ea33SDavid du Colombier "DR3", LBREG, D_DR+3,
278*e887ea33SDavid du Colombier "DR4", LBREG, D_DR+4,
279*e887ea33SDavid du Colombier "DR5", LBREG, D_DR+5,
280*e887ea33SDavid du Colombier "DR6", LBREG, D_DR+6,
281*e887ea33SDavid du Colombier "DR7", LBREG, D_DR+7,
282*e887ea33SDavid du Colombier
283*e887ea33SDavid du Colombier "TR0", LBREG, D_TR+0,
284*e887ea33SDavid du Colombier "TR1", LBREG, D_TR+1,
285*e887ea33SDavid du Colombier "TR2", LBREG, D_TR+2,
286*e887ea33SDavid du Colombier "TR3", LBREG, D_TR+3,
287*e887ea33SDavid du Colombier "TR4", LBREG, D_TR+4,
288*e887ea33SDavid du Colombier "TR5", LBREG, D_TR+5,
289*e887ea33SDavid du Colombier "TR6", LBREG, D_TR+6,
290*e887ea33SDavid du Colombier "TR7", LBREG, D_TR+7,
291*e887ea33SDavid du Colombier
292*e887ea33SDavid du Colombier "AAA", LTYPE0, AAAA,
293*e887ea33SDavid du Colombier "AAD", LTYPE0, AAAD,
294*e887ea33SDavid du Colombier "AAM", LTYPE0, AAAM,
295*e887ea33SDavid du Colombier "AAS", LTYPE0, AAAS,
296*e887ea33SDavid du Colombier "ADCB", LTYPE3, AADCB,
297*e887ea33SDavid du Colombier "ADCL", LTYPE3, AADCL,
298*e887ea33SDavid du Colombier "ADCQ", LTYPE3, AADCQ,
299*e887ea33SDavid du Colombier "ADCW", LTYPE3, AADCW,
300*e887ea33SDavid du Colombier "ADDB", LTYPE3, AADDB,
301*e887ea33SDavid du Colombier "ADDL", LTYPE3, AADDL,
302*e887ea33SDavid du Colombier "ADDQ", LTYPE3, AADDQ,
303*e887ea33SDavid du Colombier "ADDW", LTYPE3, AADDW,
304*e887ea33SDavid du Colombier "ADJSP", LTYPE2, AADJSP,
305*e887ea33SDavid du Colombier "ANDB", LTYPE3, AANDB,
306*e887ea33SDavid du Colombier "ANDL", LTYPE3, AANDL,
307*e887ea33SDavid du Colombier "ANDQ", LTYPE3, AANDQ,
308*e887ea33SDavid du Colombier "ANDW", LTYPE3, AANDW,
309*e887ea33SDavid du Colombier "ARPL", LTYPE3, AARPL,
310*e887ea33SDavid du Colombier "BOUNDL", LTYPE3, ABOUNDL,
311*e887ea33SDavid du Colombier "BOUNDW", LTYPE3, ABOUNDW,
312*e887ea33SDavid du Colombier "BSFL", LTYPE3, ABSFL,
313*e887ea33SDavid du Colombier "BSFQ", LTYPE3, ABSFQ,
314*e887ea33SDavid du Colombier "BSFW", LTYPE3, ABSFW,
315*e887ea33SDavid du Colombier "BSRL", LTYPE3, ABSRL,
316*e887ea33SDavid du Colombier "BSRQ", LTYPE3, ABSRQ,
317*e887ea33SDavid du Colombier "BSRW", LTYPE3, ABSRW,
318*e887ea33SDavid du Colombier "BTCL", LTYPE3, ABTCL,
319*e887ea33SDavid du Colombier "BTCQ", LTYPE3, ABTCQ,
320*e887ea33SDavid du Colombier "BTCW", LTYPE3, ABTCW,
321*e887ea33SDavid du Colombier "BTL", LTYPE3, ABTL,
322*e887ea33SDavid du Colombier "BTQ", LTYPE3, ABTQ,
323*e887ea33SDavid du Colombier "BTRL", LTYPE3, ABTRL,
324*e887ea33SDavid du Colombier "BTRQ", LTYPE3, ABTRQ,
325*e887ea33SDavid du Colombier "BTRW", LTYPE3, ABTRW,
326*e887ea33SDavid du Colombier "BTSL", LTYPE3, ABTSL,
327*e887ea33SDavid du Colombier "BTSQ", LTYPE3, ABTSQ,
328*e887ea33SDavid du Colombier "BTSW", LTYPE3, ABTSW,
329*e887ea33SDavid du Colombier "BTW", LTYPE3, ABTW,
330*e887ea33SDavid du Colombier "BYTE", LTYPE2, ABYTE,
331*e887ea33SDavid du Colombier "CALL", LTYPEC, ACALL,
332*e887ea33SDavid du Colombier "CLC", LTYPE0, ACLC,
333*e887ea33SDavid du Colombier "CLD", LTYPE0, ACLD,
334*e887ea33SDavid du Colombier "CLI", LTYPE0, ACLI,
335*e887ea33SDavid du Colombier "CLTS", LTYPE0, ACLTS,
336*e887ea33SDavid du Colombier "CMC", LTYPE0, ACMC,
337*e887ea33SDavid du Colombier "CMPB", LTYPE4, ACMPB,
338*e887ea33SDavid du Colombier "CMPL", LTYPE4, ACMPL,
339*e887ea33SDavid du Colombier "CMPQ", LTYPE4, ACMPQ,
340*e887ea33SDavid du Colombier "CMPW", LTYPE4, ACMPW,
341*e887ea33SDavid du Colombier "CMPSB", LTYPE0, ACMPSB,
342*e887ea33SDavid du Colombier "CMPSL", LTYPE0, ACMPSL,
343*e887ea33SDavid du Colombier "CMPSQ", LTYPE0, ACMPSQ,
344*e887ea33SDavid du Colombier "CMPSW", LTYPE0, ACMPSW,
345*e887ea33SDavid du Colombier "CMPXCHG8B", LTYPE1, ACMPXCHG8B,
346*e887ea33SDavid du Colombier "CMPXCHGB", LTYPE3, ACMPXCHGB, /* LTYPE3? */
347*e887ea33SDavid du Colombier "CMPXCHGL", LTYPE3, ACMPXCHGL,
348*e887ea33SDavid du Colombier "CMPXCHGQ", LTYPE3, ACMPXCHGQ,
349*e887ea33SDavid du Colombier "CMPXCHGW", LTYPE3, ACMPXCHGW,
350*e887ea33SDavid du Colombier "CPUID", LTYPE0, ACPUID,
351*e887ea33SDavid du Colombier "DAA", LTYPE0, ADAA,
352*e887ea33SDavid du Colombier "DAS", LTYPE0, ADAS,
353*e887ea33SDavid du Colombier "DATA", LTYPED, ADATA,
354*e887ea33SDavid du Colombier "DECB", LTYPE1, ADECB,
355*e887ea33SDavid du Colombier "DECL", LTYPE1, ADECL,
356*e887ea33SDavid du Colombier "DECQ", LTYPE1, ADECQ,
357*e887ea33SDavid du Colombier "DECW", LTYPE1, ADECW,
358*e887ea33SDavid du Colombier "DIVB", LTYPE2, ADIVB,
359*e887ea33SDavid du Colombier "DIVL", LTYPE2, ADIVL,
360*e887ea33SDavid du Colombier "DIVQ", LTYPE2, ADIVQ,
361*e887ea33SDavid du Colombier "DIVW", LTYPE2, ADIVW,
362*e887ea33SDavid du Colombier "EMMS", LTYPE0, AEMMS,
363*e887ea33SDavid du Colombier "END", LTYPE0, AEND,
364*e887ea33SDavid du Colombier "ENTER", LTYPE2, AENTER,
365*e887ea33SDavid du Colombier "GLOBL", LTYPET, AGLOBL,
366*e887ea33SDavid du Colombier "HLT", LTYPE0, AHLT,
367*e887ea33SDavid du Colombier "IDIVB", LTYPE2, AIDIVB,
368*e887ea33SDavid du Colombier "IDIVL", LTYPE2, AIDIVL,
369*e887ea33SDavid du Colombier "IDIVQ", LTYPE2, AIDIVQ,
370*e887ea33SDavid du Colombier "IDIVW", LTYPE2, AIDIVW,
371*e887ea33SDavid du Colombier "IMULB", LTYPEI, AIMULB,
372*e887ea33SDavid du Colombier "IMULL", LTYPEI, AIMULL,
373*e887ea33SDavid du Colombier "IMULQ", LTYPEI, AIMULQ,
374*e887ea33SDavid du Colombier "IMULW", LTYPEI, AIMULW,
375*e887ea33SDavid du Colombier "INB", LTYPE0, AINB,
376*e887ea33SDavid du Colombier "INL", LTYPE0, AINL,
377*e887ea33SDavid du Colombier "INW", LTYPE0, AINW,
378*e887ea33SDavid du Colombier "INCB", LTYPE1, AINCB,
379*e887ea33SDavid du Colombier "INCL", LTYPE1, AINCL,
380*e887ea33SDavid du Colombier "INCQ", LTYPE1, AINCQ,
381*e887ea33SDavid du Colombier "INCW", LTYPE1, AINCW,
382*e887ea33SDavid du Colombier "INSB", LTYPE0, AINSB,
383*e887ea33SDavid du Colombier "INSL", LTYPE0, AINSL,
384*e887ea33SDavid du Colombier "INSW", LTYPE0, AINSW,
385*e887ea33SDavid du Colombier "INT", LTYPE2, AINT,
386*e887ea33SDavid du Colombier "INTO", LTYPE0, AINTO,
387*e887ea33SDavid du Colombier "INVD", LTYPE0, AINVD,
388*e887ea33SDavid du Colombier "INVLPG", LTYPE2, AINVLPG,
389*e887ea33SDavid du Colombier "IRETL", LTYPE0, AIRETL,
390*e887ea33SDavid du Colombier "IRETQ", LTYPE0, AIRETQ,
391*e887ea33SDavid du Colombier "IRETW", LTYPE0, AIRETW,
392*e887ea33SDavid du Colombier
393*e887ea33SDavid du Colombier "JOS", LTYPER, AJOS,
394*e887ea33SDavid du Colombier "JO", LTYPER, AJOS, /* alternate */
395*e887ea33SDavid du Colombier "JOC", LTYPER, AJOC,
396*e887ea33SDavid du Colombier "JNO", LTYPER, AJOC, /* alternate */
397*e887ea33SDavid du Colombier "JCS", LTYPER, AJCS,
398*e887ea33SDavid du Colombier "JB", LTYPER, AJCS, /* alternate */
399*e887ea33SDavid du Colombier "JC", LTYPER, AJCS, /* alternate */
400*e887ea33SDavid du Colombier "JNAE", LTYPER, AJCS, /* alternate */
401*e887ea33SDavid du Colombier "JLO", LTYPER, AJCS, /* alternate */
402*e887ea33SDavid du Colombier "JCC", LTYPER, AJCC,
403*e887ea33SDavid du Colombier "JAE", LTYPER, AJCC, /* alternate */
404*e887ea33SDavid du Colombier "JNB", LTYPER, AJCC, /* alternate */
405*e887ea33SDavid du Colombier "JNC", LTYPER, AJCC, /* alternate */
406*e887ea33SDavid du Colombier "JHS", LTYPER, AJCC, /* alternate */
407*e887ea33SDavid du Colombier "JEQ", LTYPER, AJEQ,
408*e887ea33SDavid du Colombier "JE", LTYPER, AJEQ, /* alternate */
409*e887ea33SDavid du Colombier "JZ", LTYPER, AJEQ, /* alternate */
410*e887ea33SDavid du Colombier "JNE", LTYPER, AJNE,
411*e887ea33SDavid du Colombier "JNZ", LTYPER, AJNE, /* alternate */
412*e887ea33SDavid du Colombier "JLS", LTYPER, AJLS,
413*e887ea33SDavid du Colombier "JBE", LTYPER, AJLS, /* alternate */
414*e887ea33SDavid du Colombier "JNA", LTYPER, AJLS, /* alternate */
415*e887ea33SDavid du Colombier "JHI", LTYPER, AJHI,
416*e887ea33SDavid du Colombier "JA", LTYPER, AJHI, /* alternate */
417*e887ea33SDavid du Colombier "JNBE", LTYPER, AJHI, /* alternate */
418*e887ea33SDavid du Colombier "JMI", LTYPER, AJMI,
419*e887ea33SDavid du Colombier "JS", LTYPER, AJMI, /* alternate */
420*e887ea33SDavid du Colombier "JPL", LTYPER, AJPL,
421*e887ea33SDavid du Colombier "JNS", LTYPER, AJPL, /* alternate */
422*e887ea33SDavid du Colombier "JPS", LTYPER, AJPS,
423*e887ea33SDavid du Colombier "JP", LTYPER, AJPS, /* alternate */
424*e887ea33SDavid du Colombier "JPE", LTYPER, AJPS, /* alternate */
425*e887ea33SDavid du Colombier "JPC", LTYPER, AJPC,
426*e887ea33SDavid du Colombier "JNP", LTYPER, AJPC, /* alternate */
427*e887ea33SDavid du Colombier "JPO", LTYPER, AJPC, /* alternate */
428*e887ea33SDavid du Colombier "JLT", LTYPER, AJLT,
429*e887ea33SDavid du Colombier "JL", LTYPER, AJLT, /* alternate */
430*e887ea33SDavid du Colombier "JNGE", LTYPER, AJLT, /* alternate */
431*e887ea33SDavid du Colombier "JGE", LTYPER, AJGE,
432*e887ea33SDavid du Colombier "JNL", LTYPER, AJGE, /* alternate */
433*e887ea33SDavid du Colombier "JLE", LTYPER, AJLE,
434*e887ea33SDavid du Colombier "JNG", LTYPER, AJLE, /* alternate */
435*e887ea33SDavid du Colombier "JGT", LTYPER, AJGT,
436*e887ea33SDavid du Colombier "JG", LTYPER, AJGT, /* alternate */
437*e887ea33SDavid du Colombier "JNLE", LTYPER, AJGT, /* alternate */
438*e887ea33SDavid du Colombier
439*e887ea33SDavid du Colombier "JCXZ", LTYPER, AJCXZ,
440*e887ea33SDavid du Colombier "JMP", LTYPEC, AJMP,
441*e887ea33SDavid du Colombier "LAHF", LTYPE0, ALAHF,
442*e887ea33SDavid du Colombier "LARL", LTYPE3, ALARL,
443*e887ea33SDavid du Colombier "LARW", LTYPE3, ALARW,
444*e887ea33SDavid du Colombier "LEAL", LTYPE3, ALEAL,
445*e887ea33SDavid du Colombier "LEAQ", LTYPE3, ALEAQ,
446*e887ea33SDavid du Colombier "LEAW", LTYPE3, ALEAW,
447*e887ea33SDavid du Colombier "LEAVEL", LTYPE0, ALEAVEL,
448*e887ea33SDavid du Colombier "LEAVEQ", LTYPE0, ALEAVEQ,
449*e887ea33SDavid du Colombier "LEAVEW", LTYPE0, ALEAVEW,
450*e887ea33SDavid du Colombier "LFENCE", LTYPE0, ALFENCE,
451*e887ea33SDavid du Colombier "LOCK", LTYPE0, ALOCK,
452*e887ea33SDavid du Colombier "LODSB", LTYPE0, ALODSB,
453*e887ea33SDavid du Colombier "LODSL", LTYPE0, ALODSL,
454*e887ea33SDavid du Colombier "LODSQ", LTYPE0, ALODSQ,
455*e887ea33SDavid du Colombier "LODSW", LTYPE0, ALODSW,
456*e887ea33SDavid du Colombier "LONG", LTYPE2, ALONG,
457*e887ea33SDavid du Colombier "LOOP", LTYPER, ALOOP,
458*e887ea33SDavid du Colombier "LOOPEQ", LTYPER, ALOOPEQ,
459*e887ea33SDavid du Colombier "LOOPNE", LTYPER, ALOOPNE,
460*e887ea33SDavid du Colombier "LSLL", LTYPE3, ALSLL,
461*e887ea33SDavid du Colombier "LSLW", LTYPE3, ALSLW,
462*e887ea33SDavid du Colombier "MFENCE", LTYPE0, AMFENCE,
463*e887ea33SDavid du Colombier "MODE", LTYPE2, AMODE,
464*e887ea33SDavid du Colombier "MOVB", LTYPE3, AMOVB,
465*e887ea33SDavid du Colombier "MOVL", LTYPEM, AMOVL,
466*e887ea33SDavid du Colombier "MOVQ", LTYPEM, AMOVQ,
467*e887ea33SDavid du Colombier "MOVW", LTYPEM, AMOVW,
468*e887ea33SDavid du Colombier "MOVBLSX", LTYPE3, AMOVBLSX,
469*e887ea33SDavid du Colombier "MOVBLZX", LTYPE3, AMOVBLZX,
470*e887ea33SDavid du Colombier "MOVBQSX", LTYPE3, AMOVBQSX,
471*e887ea33SDavid du Colombier "MOVBQZX", LTYPE3, AMOVBQZX,
472*e887ea33SDavid du Colombier "MOVBWSX", LTYPE3, AMOVBWSX,
473*e887ea33SDavid du Colombier "MOVBWZX", LTYPE3, AMOVBWZX,
474*e887ea33SDavid du Colombier "MOVLQSX", LTYPE3, AMOVLQSX,
475*e887ea33SDavid du Colombier "MOVLQZX", LTYPE3, AMOVLQZX,
476*e887ea33SDavid du Colombier "MOVNTIL", LTYPE3, AMOVNTIL,
477*e887ea33SDavid du Colombier "MOVNTIQ", LTYPE3, AMOVNTIQ,
478*e887ea33SDavid du Colombier "MOVWLSX", LTYPE3, AMOVWLSX,
479*e887ea33SDavid du Colombier "MOVWLZX", LTYPE3, AMOVWLZX,
480*e887ea33SDavid du Colombier "MOVWQSX", LTYPE3, AMOVWQSX,
481*e887ea33SDavid du Colombier "MOVWQZX", LTYPE3, AMOVWQZX,
482*e887ea33SDavid du Colombier "MOVSB", LTYPE0, AMOVSB,
483*e887ea33SDavid du Colombier "MOVSL", LTYPE0, AMOVSL,
484*e887ea33SDavid du Colombier "MOVSQ", LTYPE0, AMOVSQ,
485*e887ea33SDavid du Colombier "MOVSW", LTYPE0, AMOVSW,
486*e887ea33SDavid du Colombier "MULB", LTYPE2, AMULB,
487*e887ea33SDavid du Colombier "MULL", LTYPE2, AMULL,
488*e887ea33SDavid du Colombier "MULQ", LTYPE2, AMULQ,
489*e887ea33SDavid du Colombier "MULW", LTYPE2, AMULW,
490*e887ea33SDavid du Colombier "NEGB", LTYPE1, ANEGB,
491*e887ea33SDavid du Colombier "NEGL", LTYPE1, ANEGL,
492*e887ea33SDavid du Colombier "NEGQ", LTYPE1, ANEGQ,
493*e887ea33SDavid du Colombier "NEGW", LTYPE1, ANEGW,
494*e887ea33SDavid du Colombier "NOP", LTYPEN, ANOP,
495*e887ea33SDavid du Colombier "NOTB", LTYPE1, ANOTB,
496*e887ea33SDavid du Colombier "NOTL", LTYPE1, ANOTL,
497*e887ea33SDavid du Colombier "NOTQ", LTYPE1, ANOTQ,
498*e887ea33SDavid du Colombier "NOTW", LTYPE1, ANOTW,
499*e887ea33SDavid du Colombier "ORB", LTYPE3, AORB,
500*e887ea33SDavid du Colombier "ORL", LTYPE3, AORL,
501*e887ea33SDavid du Colombier "ORQ", LTYPE3, AORQ,
502*e887ea33SDavid du Colombier "ORW", LTYPE3, AORW,
503*e887ea33SDavid du Colombier "OUTB", LTYPE0, AOUTB,
504*e887ea33SDavid du Colombier "OUTL", LTYPE0, AOUTL,
505*e887ea33SDavid du Colombier "OUTW", LTYPE0, AOUTW,
506*e887ea33SDavid du Colombier "OUTSB", LTYPE0, AOUTSB,
507*e887ea33SDavid du Colombier "OUTSL", LTYPE0, AOUTSL,
508*e887ea33SDavid du Colombier "OUTSW", LTYPE0, AOUTSW,
509*e887ea33SDavid du Colombier "POPAL", LTYPE0, APOPAL,
510*e887ea33SDavid du Colombier "POPAW", LTYPE0, APOPAW,
511*e887ea33SDavid du Colombier "POPFL", LTYPE0, APOPFL,
512*e887ea33SDavid du Colombier "POPFQ", LTYPE0, APOPFQ,
513*e887ea33SDavid du Colombier "POPFW", LTYPE0, APOPFW,
514*e887ea33SDavid du Colombier "POPL", LTYPE1, APOPL,
515*e887ea33SDavid du Colombier "POPQ", LTYPE1, APOPQ,
516*e887ea33SDavid du Colombier "POPW", LTYPE1, APOPW,
517*e887ea33SDavid du Colombier "PUSHAL", LTYPE0, APUSHAL,
518*e887ea33SDavid du Colombier "PUSHAW", LTYPE0, APUSHAW,
519*e887ea33SDavid du Colombier "PUSHFL", LTYPE0, APUSHFL,
520*e887ea33SDavid du Colombier "PUSHFQ", LTYPE0, APUSHFQ,
521*e887ea33SDavid du Colombier "PUSHFW", LTYPE0, APUSHFW,
522*e887ea33SDavid du Colombier "PUSHL", LTYPE2, APUSHL,
523*e887ea33SDavid du Colombier "PUSHQ", LTYPE2, APUSHQ,
524*e887ea33SDavid du Colombier "PUSHW", LTYPE2, APUSHW,
525*e887ea33SDavid du Colombier "RCLB", LTYPE3, ARCLB,
526*e887ea33SDavid du Colombier "RCLL", LTYPE3, ARCLL,
527*e887ea33SDavid du Colombier "RCLQ", LTYPE3, ARCLQ,
528*e887ea33SDavid du Colombier "RCLW", LTYPE3, ARCLW,
529*e887ea33SDavid du Colombier "RCRB", LTYPE3, ARCRB,
530*e887ea33SDavid du Colombier "RCRL", LTYPE3, ARCRL,
531*e887ea33SDavid du Colombier "RCRQ", LTYPE3, ARCRQ,
532*e887ea33SDavid du Colombier "RCRW", LTYPE3, ARCRW,
533*e887ea33SDavid du Colombier "RDMSR", LTYPE0, ARDMSR,
534*e887ea33SDavid du Colombier "RDPMC", LTYPE0, ARDPMC,
535*e887ea33SDavid du Colombier "RDTSC", LTYPE0, ARDTSC,
536*e887ea33SDavid du Colombier "REP", LTYPE0, AREP,
537*e887ea33SDavid du Colombier "REPN", LTYPE0, AREPN,
538*e887ea33SDavid du Colombier "RET", LTYPE0, ARET,
539*e887ea33SDavid du Colombier "RETFL", LTYPERT,ARETFL,
540*e887ea33SDavid du Colombier "RETFW", LTYPERT,ARETFW,
541*e887ea33SDavid du Colombier "RETFQ", LTYPERT,ARETFQ,
542*e887ea33SDavid du Colombier "ROLB", LTYPE3, AROLB,
543*e887ea33SDavid du Colombier "ROLL", LTYPE3, AROLL,
544*e887ea33SDavid du Colombier "ROLQ", LTYPE3, AROLQ,
545*e887ea33SDavid du Colombier "ROLW", LTYPE3, AROLW,
546*e887ea33SDavid du Colombier "RORB", LTYPE3, ARORB,
547*e887ea33SDavid du Colombier "RORL", LTYPE3, ARORL,
548*e887ea33SDavid du Colombier "RORQ", LTYPE3, ARORQ,
549*e887ea33SDavid du Colombier "RORW", LTYPE3, ARORW,
550*e887ea33SDavid du Colombier "RSM", LTYPE0, ARSM,
551*e887ea33SDavid du Colombier "SAHF", LTYPE0, ASAHF,
552*e887ea33SDavid du Colombier "SALB", LTYPE3, ASALB,
553*e887ea33SDavid du Colombier "SALL", LTYPE3, ASALL,
554*e887ea33SDavid du Colombier "SALQ", LTYPE3, ASALQ,
555*e887ea33SDavid du Colombier "SALW", LTYPE3, ASALW,
556*e887ea33SDavid du Colombier "SARB", LTYPE3, ASARB,
557*e887ea33SDavid du Colombier "SARL", LTYPE3, ASARL,
558*e887ea33SDavid du Colombier "SARQ", LTYPE3, ASARQ,
559*e887ea33SDavid du Colombier "SARW", LTYPE3, ASARW,
560*e887ea33SDavid du Colombier "SBBB", LTYPE3, ASBBB,
561*e887ea33SDavid du Colombier "SBBL", LTYPE3, ASBBL,
562*e887ea33SDavid du Colombier "SBBQ", LTYPE3, ASBBQ,
563*e887ea33SDavid du Colombier "SBBW", LTYPE3, ASBBW,
564*e887ea33SDavid du Colombier "SCASB", LTYPE0, ASCASB,
565*e887ea33SDavid du Colombier "SCASL", LTYPE0, ASCASL,
566*e887ea33SDavid du Colombier "SCASQ", LTYPE0, ASCASQ,
567*e887ea33SDavid du Colombier "SCASW", LTYPE0, ASCASW,
568*e887ea33SDavid du Colombier "SETCC", LTYPE1, ASETCC,
569*e887ea33SDavid du Colombier "SETCS", LTYPE1, ASETCS,
570*e887ea33SDavid du Colombier "SETEQ", LTYPE1, ASETEQ,
571*e887ea33SDavid du Colombier "SETGE", LTYPE1, ASETGE,
572*e887ea33SDavid du Colombier "SETGT", LTYPE1, ASETGT,
573*e887ea33SDavid du Colombier "SETHI", LTYPE1, ASETHI,
574*e887ea33SDavid du Colombier "SETLE", LTYPE1, ASETLE,
575*e887ea33SDavid du Colombier "SETLS", LTYPE1, ASETLS,
576*e887ea33SDavid du Colombier "SETLT", LTYPE1, ASETLT,
577*e887ea33SDavid du Colombier "SETMI", LTYPE1, ASETMI,
578*e887ea33SDavid du Colombier "SETNE", LTYPE1, ASETNE,
579*e887ea33SDavid du Colombier "SETOC", LTYPE1, ASETOC,
580*e887ea33SDavid du Colombier "SETOS", LTYPE1, ASETOS,
581*e887ea33SDavid du Colombier "SETPC", LTYPE1, ASETPC,
582*e887ea33SDavid du Colombier "SETPL", LTYPE1, ASETPL,
583*e887ea33SDavid du Colombier "SETPS", LTYPE1, ASETPS,
584*e887ea33SDavid du Colombier "SFENCE", LTYPE0, ASFENCE,
585*e887ea33SDavid du Colombier "CDQ", LTYPE0, ACDQ,
586*e887ea33SDavid du Colombier "CWD", LTYPE0, ACWD,
587*e887ea33SDavid du Colombier "CQO", LTYPE0, ACQO,
588*e887ea33SDavid du Colombier "SHLB", LTYPE3, ASHLB,
589*e887ea33SDavid du Colombier "SHLL", LTYPES, ASHLL,
590*e887ea33SDavid du Colombier "SHLQ", LTYPES, ASHLQ,
591*e887ea33SDavid du Colombier "SHLW", LTYPES, ASHLW,
592*e887ea33SDavid du Colombier "SHRB", LTYPE3, ASHRB,
593*e887ea33SDavid du Colombier "SHRL", LTYPES, ASHRL,
594*e887ea33SDavid du Colombier "SHRQ", LTYPES, ASHRQ,
595*e887ea33SDavid du Colombier "SHRW", LTYPES, ASHRW,
596*e887ea33SDavid du Colombier "STC", LTYPE0, ASTC,
597*e887ea33SDavid du Colombier "STD", LTYPE0, ASTD,
598*e887ea33SDavid du Colombier "STI", LTYPE0, ASTI,
599*e887ea33SDavid du Colombier "STOSB", LTYPE0, ASTOSB,
600*e887ea33SDavid du Colombier "STOSL", LTYPE0, ASTOSL,
601*e887ea33SDavid du Colombier "STOSQ", LTYPE0, ASTOSQ,
602*e887ea33SDavid du Colombier "STOSW", LTYPE0, ASTOSW,
603*e887ea33SDavid du Colombier "SUBB", LTYPE3, ASUBB,
604*e887ea33SDavid du Colombier "SUBL", LTYPE3, ASUBL,
605*e887ea33SDavid du Colombier "SUBQ", LTYPE3, ASUBQ,
606*e887ea33SDavid du Colombier "SUBW", LTYPE3, ASUBW,
607*e887ea33SDavid du Colombier "SYSCALL", LTYPE0, ASYSCALL,
608*e887ea33SDavid du Colombier "SYSRET", LTYPE0, ASYSRET,
609*e887ea33SDavid du Colombier "SWAPGS", LTYPE0, ASWAPGS,
610*e887ea33SDavid du Colombier "TESTB", LTYPE3, ATESTB,
611*e887ea33SDavid du Colombier "TESTL", LTYPE3, ATESTL,
612*e887ea33SDavid du Colombier "TESTQ", LTYPE3, ATESTQ,
613*e887ea33SDavid du Colombier "TESTW", LTYPE3, ATESTW,
614*e887ea33SDavid du Colombier "TEXT", LTYPET, ATEXT,
615*e887ea33SDavid du Colombier "VERR", LTYPE2, AVERR,
616*e887ea33SDavid du Colombier "VERW", LTYPE2, AVERW,
617*e887ea33SDavid du Colombier "QUAD", LTYPE2, AQUAD,
618*e887ea33SDavid du Colombier "WAIT", LTYPE0, AWAIT,
619*e887ea33SDavid du Colombier "WBINVD", LTYPE0, AWBINVD,
620*e887ea33SDavid du Colombier "WRMSR", LTYPE0, AWRMSR,
621*e887ea33SDavid du Colombier "WORD", LTYPE2, AWORD,
622*e887ea33SDavid du Colombier "XADDB", LTYPE3, AXADDB,
623*e887ea33SDavid du Colombier "XADDL", LTYPE3, AXADDL,
624*e887ea33SDavid du Colombier "XADDQ", LTYPE3, AXADDQ,
625*e887ea33SDavid du Colombier "XADDW", LTYPE3, AXADDW,
626*e887ea33SDavid du Colombier "XCHGB", LTYPE3, AXCHGB,
627*e887ea33SDavid du Colombier "XCHGL", LTYPE3, AXCHGL,
628*e887ea33SDavid du Colombier "XCHGQ", LTYPE3, AXCHGQ,
629*e887ea33SDavid du Colombier "XCHGW", LTYPE3, AXCHGW,
630*e887ea33SDavid du Colombier "XLAT", LTYPE2, AXLAT,
631*e887ea33SDavid du Colombier "XORB", LTYPE3, AXORB,
632*e887ea33SDavid du Colombier "XORL", LTYPE3, AXORL,
633*e887ea33SDavid du Colombier "XORQ", LTYPE3, AXORQ,
634*e887ea33SDavid du Colombier "XORW", LTYPE3, AXORW,
635*e887ea33SDavid du Colombier
636*e887ea33SDavid du Colombier "CMOVLCC", LTYPE3, ACMOVLCC,
637*e887ea33SDavid du Colombier "CMOVLCS", LTYPE3, ACMOVLCS,
638*e887ea33SDavid du Colombier "CMOVLEQ", LTYPE3, ACMOVLEQ,
639*e887ea33SDavid du Colombier "CMOVLGE", LTYPE3, ACMOVLGE,
640*e887ea33SDavid du Colombier "CMOVLGT", LTYPE3, ACMOVLGT,
641*e887ea33SDavid du Colombier "CMOVLHI", LTYPE3, ACMOVLHI,
642*e887ea33SDavid du Colombier "CMOVLLE", LTYPE3, ACMOVLLE,
643*e887ea33SDavid du Colombier "CMOVLLS", LTYPE3, ACMOVLLS,
644*e887ea33SDavid du Colombier "CMOVLLT", LTYPE3, ACMOVLLT,
645*e887ea33SDavid du Colombier "CMOVLMI", LTYPE3, ACMOVLMI,
646*e887ea33SDavid du Colombier "CMOVLNE", LTYPE3, ACMOVLNE,
647*e887ea33SDavid du Colombier "CMOVLOC", LTYPE3, ACMOVLOC,
648*e887ea33SDavid du Colombier "CMOVLOS", LTYPE3, ACMOVLOS,
649*e887ea33SDavid du Colombier "CMOVLPC", LTYPE3, ACMOVLPC,
650*e887ea33SDavid du Colombier "CMOVLPL", LTYPE3, ACMOVLPL,
651*e887ea33SDavid du Colombier "CMOVLPS", LTYPE3, ACMOVLPS,
652*e887ea33SDavid du Colombier "CMOVQCC", LTYPE3, ACMOVQCC,
653*e887ea33SDavid du Colombier "CMOVQCS", LTYPE3, ACMOVQCS,
654*e887ea33SDavid du Colombier "CMOVQEQ", LTYPE3, ACMOVQEQ,
655*e887ea33SDavid du Colombier "CMOVQGE", LTYPE3, ACMOVQGE,
656*e887ea33SDavid du Colombier "CMOVQGT", LTYPE3, ACMOVQGT,
657*e887ea33SDavid du Colombier "CMOVQHI", LTYPE3, ACMOVQHI,
658*e887ea33SDavid du Colombier "CMOVQLE", LTYPE3, ACMOVQLE,
659*e887ea33SDavid du Colombier "CMOVQLS", LTYPE3, ACMOVQLS,
660*e887ea33SDavid du Colombier "CMOVQLT", LTYPE3, ACMOVQLT,
661*e887ea33SDavid du Colombier "CMOVQMI", LTYPE3, ACMOVQMI,
662*e887ea33SDavid du Colombier "CMOVQNE", LTYPE3, ACMOVQNE,
663*e887ea33SDavid du Colombier "CMOVQOC", LTYPE3, ACMOVQOC,
664*e887ea33SDavid du Colombier "CMOVQOS", LTYPE3, ACMOVQOS,
665*e887ea33SDavid du Colombier "CMOVQPC", LTYPE3, ACMOVQPC,
666*e887ea33SDavid du Colombier "CMOVQPL", LTYPE3, ACMOVQPL,
667*e887ea33SDavid du Colombier "CMOVQPS", LTYPE3, ACMOVQPS,
668*e887ea33SDavid du Colombier "CMOVWCC", LTYPE3, ACMOVWCC,
669*e887ea33SDavid du Colombier "CMOVWCS", LTYPE3, ACMOVWCS,
670*e887ea33SDavid du Colombier "CMOVWEQ", LTYPE3, ACMOVWEQ,
671*e887ea33SDavid du Colombier "CMOVWGE", LTYPE3, ACMOVWGE,
672*e887ea33SDavid du Colombier "CMOVWGT", LTYPE3, ACMOVWGT,
673*e887ea33SDavid du Colombier "CMOVWHI", LTYPE3, ACMOVWHI,
674*e887ea33SDavid du Colombier "CMOVWLE", LTYPE3, ACMOVWLE,
675*e887ea33SDavid du Colombier "CMOVWLS", LTYPE3, ACMOVWLS,
676*e887ea33SDavid du Colombier "CMOVWLT", LTYPE3, ACMOVWLT,
677*e887ea33SDavid du Colombier "CMOVWMI", LTYPE3, ACMOVWMI,
678*e887ea33SDavid du Colombier "CMOVWNE", LTYPE3, ACMOVWNE,
679*e887ea33SDavid du Colombier "CMOVWOC", LTYPE3, ACMOVWOC,
680*e887ea33SDavid du Colombier "CMOVWOS", LTYPE3, ACMOVWOS,
681*e887ea33SDavid du Colombier "CMOVWPC", LTYPE3, ACMOVWPC,
682*e887ea33SDavid du Colombier "CMOVWPL", LTYPE3, ACMOVWPL,
683*e887ea33SDavid du Colombier "CMOVWPS", LTYPE3, ACMOVWPS,
684*e887ea33SDavid du Colombier
685*e887ea33SDavid du Colombier "FMOVB", LTYPE3, AFMOVB,
686*e887ea33SDavid du Colombier "FMOVBP", LTYPE3, AFMOVBP,
687*e887ea33SDavid du Colombier "FMOVD", LTYPE3, AFMOVD,
688*e887ea33SDavid du Colombier "FMOVDP", LTYPE3, AFMOVDP,
689*e887ea33SDavid du Colombier "FMOVF", LTYPE3, AFMOVF,
690*e887ea33SDavid du Colombier "FMOVFP", LTYPE3, AFMOVFP,
691*e887ea33SDavid du Colombier "FMOVL", LTYPE3, AFMOVL,
692*e887ea33SDavid du Colombier "FMOVLP", LTYPE3, AFMOVLP,
693*e887ea33SDavid du Colombier "FMOVV", LTYPE3, AFMOVV,
694*e887ea33SDavid du Colombier "FMOVVP", LTYPE3, AFMOVVP,
695*e887ea33SDavid du Colombier "FMOVW", LTYPE3, AFMOVW,
696*e887ea33SDavid du Colombier "FMOVWP", LTYPE3, AFMOVWP,
697*e887ea33SDavid du Colombier "FMOVX", LTYPE3, AFMOVX,
698*e887ea33SDavid du Colombier "FMOVXP", LTYPE3, AFMOVXP,
699*e887ea33SDavid du Colombier "FCOMB", LTYPE3, AFCOMB,
700*e887ea33SDavid du Colombier "FCOMBP", LTYPE3, AFCOMBP,
701*e887ea33SDavid du Colombier "FCOMD", LTYPE3, AFCOMD,
702*e887ea33SDavid du Colombier "FCOMDP", LTYPE3, AFCOMDP,
703*e887ea33SDavid du Colombier "FCOMDPP", LTYPE3, AFCOMDPP,
704*e887ea33SDavid du Colombier "FCOMF", LTYPE3, AFCOMF,
705*e887ea33SDavid du Colombier "FCOMFP", LTYPE3, AFCOMFP,
706*e887ea33SDavid du Colombier "FCOML", LTYPE3, AFCOML,
707*e887ea33SDavid du Colombier "FCOMLP", LTYPE3, AFCOMLP,
708*e887ea33SDavid du Colombier "FCOMW", LTYPE3, AFCOMW,
709*e887ea33SDavid du Colombier "FCOMWP", LTYPE3, AFCOMWP,
710*e887ea33SDavid du Colombier "FUCOM", LTYPE3, AFUCOM,
711*e887ea33SDavid du Colombier "FUCOMP", LTYPE3, AFUCOMP,
712*e887ea33SDavid du Colombier "FUCOMPP", LTYPE3, AFUCOMPP,
713*e887ea33SDavid du Colombier "FADDW", LTYPE3, AFADDW,
714*e887ea33SDavid du Colombier "FADDL", LTYPE3, AFADDL,
715*e887ea33SDavid du Colombier "FADDF", LTYPE3, AFADDF,
716*e887ea33SDavid du Colombier "FADDD", LTYPE3, AFADDD,
717*e887ea33SDavid du Colombier "FADDDP", LTYPE3, AFADDDP,
718*e887ea33SDavid du Colombier "FSUBDP", LTYPE3, AFSUBDP,
719*e887ea33SDavid du Colombier "FSUBW", LTYPE3, AFSUBW,
720*e887ea33SDavid du Colombier "FSUBL", LTYPE3, AFSUBL,
721*e887ea33SDavid du Colombier "FSUBF", LTYPE3, AFSUBF,
722*e887ea33SDavid du Colombier "FSUBD", LTYPE3, AFSUBD,
723*e887ea33SDavid du Colombier "FSUBRDP", LTYPE3, AFSUBRDP,
724*e887ea33SDavid du Colombier "FSUBRW", LTYPE3, AFSUBRW,
725*e887ea33SDavid du Colombier "FSUBRL", LTYPE3, AFSUBRL,
726*e887ea33SDavid du Colombier "FSUBRF", LTYPE3, AFSUBRF,
727*e887ea33SDavid du Colombier "FSUBRD", LTYPE3, AFSUBRD,
728*e887ea33SDavid du Colombier "FMULDP", LTYPE3, AFMULDP,
729*e887ea33SDavid du Colombier "FMULW", LTYPE3, AFMULW,
730*e887ea33SDavid du Colombier "FMULL", LTYPE3, AFMULL,
731*e887ea33SDavid du Colombier "FMULF", LTYPE3, AFMULF,
732*e887ea33SDavid du Colombier "FMULD", LTYPE3, AFMULD,
733*e887ea33SDavid du Colombier "FDIVDP", LTYPE3, AFDIVDP,
734*e887ea33SDavid du Colombier "FDIVW", LTYPE3, AFDIVW,
735*e887ea33SDavid du Colombier "FDIVL", LTYPE3, AFDIVL,
736*e887ea33SDavid du Colombier "FDIVF", LTYPE3, AFDIVF,
737*e887ea33SDavid du Colombier "FDIVD", LTYPE3, AFDIVD,
738*e887ea33SDavid du Colombier "FDIVRDP", LTYPE3, AFDIVRDP,
739*e887ea33SDavid du Colombier "FDIVRW", LTYPE3, AFDIVRW,
740*e887ea33SDavid du Colombier "FDIVRL", LTYPE3, AFDIVRL,
741*e887ea33SDavid du Colombier "FDIVRF", LTYPE3, AFDIVRF,
742*e887ea33SDavid du Colombier "FDIVRD", LTYPE3, AFDIVRD,
743*e887ea33SDavid du Colombier "FXCHD", LTYPE3, AFXCHD,
744*e887ea33SDavid du Colombier "FFREE", LTYPE1, AFFREE,
745*e887ea33SDavid du Colombier "FLDCW", LTYPE2, AFLDCW,
746*e887ea33SDavid du Colombier "FLDENV", LTYPE1, AFLDENV,
747*e887ea33SDavid du Colombier "FRSTOR", LTYPE2, AFRSTOR,
748*e887ea33SDavid du Colombier "FSAVE", LTYPE1, AFSAVE,
749*e887ea33SDavid du Colombier "FSTCW", LTYPE1, AFSTCW,
750*e887ea33SDavid du Colombier "FSTENV", LTYPE1, AFSTENV,
751*e887ea33SDavid du Colombier "FSTSW", LTYPE1, AFSTSW,
752*e887ea33SDavid du Colombier "F2XM1", LTYPE0, AF2XM1,
753*e887ea33SDavid du Colombier "FABS", LTYPE0, AFABS,
754*e887ea33SDavid du Colombier "FCHS", LTYPE0, AFCHS,
755*e887ea33SDavid du Colombier "FCLEX", LTYPE0, AFCLEX,
756*e887ea33SDavid du Colombier "FCOS", LTYPE0, AFCOS,
757*e887ea33SDavid du Colombier "FDECSTP", LTYPE0, AFDECSTP,
758*e887ea33SDavid du Colombier "FINCSTP", LTYPE0, AFINCSTP,
759*e887ea33SDavid du Colombier "FINIT", LTYPE0, AFINIT,
760*e887ea33SDavid du Colombier "FLD1", LTYPE0, AFLD1,
761*e887ea33SDavid du Colombier "FLDL2E", LTYPE0, AFLDL2E,
762*e887ea33SDavid du Colombier "FLDL2T", LTYPE0, AFLDL2T,
763*e887ea33SDavid du Colombier "FLDLG2", LTYPE0, AFLDLG2,
764*e887ea33SDavid du Colombier "FLDLN2", LTYPE0, AFLDLN2,
765*e887ea33SDavid du Colombier "FLDPI", LTYPE0, AFLDPI,
766*e887ea33SDavid du Colombier "FLDZ", LTYPE0, AFLDZ,
767*e887ea33SDavid du Colombier "FNOP", LTYPE0, AFNOP,
768*e887ea33SDavid du Colombier "FPATAN", LTYPE0, AFPATAN,
769*e887ea33SDavid du Colombier "FPREM", LTYPE0, AFPREM,
770*e887ea33SDavid du Colombier "FPREM1", LTYPE0, AFPREM1,
771*e887ea33SDavid du Colombier "FPTAN", LTYPE0, AFPTAN,
772*e887ea33SDavid du Colombier "FRNDINT", LTYPE0, AFRNDINT,
773*e887ea33SDavid du Colombier "FSCALE", LTYPE0, AFSCALE,
774*e887ea33SDavid du Colombier "FSIN", LTYPE0, AFSIN,
775*e887ea33SDavid du Colombier "FSINCOS", LTYPE0, AFSINCOS,
776*e887ea33SDavid du Colombier "FSQRT", LTYPE0, AFSQRT,
777*e887ea33SDavid du Colombier "FTST", LTYPE0, AFTST,
778*e887ea33SDavid du Colombier "FXAM", LTYPE0, AFXAM,
779*e887ea33SDavid du Colombier "FXTRACT", LTYPE0, AFXTRACT,
780*e887ea33SDavid du Colombier "FYL2X", LTYPE0, AFYL2X,
781*e887ea33SDavid du Colombier "FYL2XP1", LTYPE0, AFYL2XP1,
782*e887ea33SDavid du Colombier
783*e887ea33SDavid du Colombier "ADDPD", LTYPE3, AADDPD,
784*e887ea33SDavid du Colombier "ADDPS", LTYPE3, AADDPS,
785*e887ea33SDavid du Colombier "ADDSD", LTYPE3, AADDSD,
786*e887ea33SDavid du Colombier "ADDSS", LTYPE3, AADDSS,
787*e887ea33SDavid du Colombier "ANDNPD", LTYPE3, AANDNPD,
788*e887ea33SDavid du Colombier "ANDNPS", LTYPE3, AANDNPS,
789*e887ea33SDavid du Colombier "ANDPD", LTYPE3, AANDPD,
790*e887ea33SDavid du Colombier "ANDPS", LTYPE3, AANDPS,
791*e887ea33SDavid du Colombier "CMPPD", LTYPEXC,ACMPPD,
792*e887ea33SDavid du Colombier "CMPPS", LTYPEXC,ACMPPS,
793*e887ea33SDavid du Colombier "CMPSD", LTYPEXC,ACMPSD,
794*e887ea33SDavid du Colombier "CMPSS", LTYPEXC,ACMPSS,
795*e887ea33SDavid du Colombier "COMISD", LTYPE3, ACOMISD,
796*e887ea33SDavid du Colombier "COMISS", LTYPE3, ACOMISS,
797*e887ea33SDavid du Colombier "CVTPL2PD", LTYPE3, ACVTPL2PD,
798*e887ea33SDavid du Colombier "CVTPL2PS", LTYPE3, ACVTPL2PS,
799*e887ea33SDavid du Colombier "CVTPD2PL", LTYPE3, ACVTPD2PL,
800*e887ea33SDavid du Colombier "CVTPD2PS", LTYPE3, ACVTPD2PS,
801*e887ea33SDavid du Colombier "CVTPS2PL", LTYPE3, ACVTPS2PL,
802*e887ea33SDavid du Colombier "PF2IW", LTYPE3, APF2IW,
803*e887ea33SDavid du Colombier "PF2IL", LTYPE3, APF2IL,
804*e887ea33SDavid du Colombier "PF2ID", LTYPE3, APF2IL, /* syn */
805*e887ea33SDavid du Colombier "PI2FL", LTYPE3, API2FL,
806*e887ea33SDavid du Colombier "PI2FD", LTYPE3, API2FL, /* syn */
807*e887ea33SDavid du Colombier "PI2FW", LTYPE3, API2FW,
808*e887ea33SDavid du Colombier "CVTPS2PD", LTYPE3, ACVTPS2PD,
809*e887ea33SDavid du Colombier "CVTSD2SL", LTYPE3, ACVTSD2SL,
810*e887ea33SDavid du Colombier "CVTSD2SQ", LTYPE3, ACVTSD2SQ,
811*e887ea33SDavid du Colombier "CVTSD2SS", LTYPE3, ACVTSD2SS,
812*e887ea33SDavid du Colombier "CVTSL2SD", LTYPE3, ACVTSL2SD,
813*e887ea33SDavid du Colombier "CVTSQ2SD", LTYPE3, ACVTSQ2SD,
814*e887ea33SDavid du Colombier "CVTSL2SS", LTYPE3, ACVTSL2SS,
815*e887ea33SDavid du Colombier "CVTSQ2SS", LTYPE3, ACVTSQ2SS,
816*e887ea33SDavid du Colombier "CVTSS2SD", LTYPE3, ACVTSS2SD,
817*e887ea33SDavid du Colombier "CVTSS2SL", LTYPE3, ACVTSS2SL,
818*e887ea33SDavid du Colombier "CVTSS2SQ", LTYPE3, ACVTSS2SQ,
819*e887ea33SDavid du Colombier "CVTTPD2PL", LTYPE3, ACVTTPD2PL,
820*e887ea33SDavid du Colombier "CVTTPS2PL", LTYPE3, ACVTTPS2PL,
821*e887ea33SDavid du Colombier "CVTTSD2SL", LTYPE3, ACVTTSD2SL,
822*e887ea33SDavid du Colombier "CVTTSD2SQ", LTYPE3, ACVTTSD2SQ,
823*e887ea33SDavid du Colombier "CVTTSS2SL", LTYPE3, ACVTTSS2SL,
824*e887ea33SDavid du Colombier "CVTTSS2SQ", LTYPE3, ACVTTSS2SQ,
825*e887ea33SDavid du Colombier "DIVPD", LTYPE3, ADIVPD,
826*e887ea33SDavid du Colombier "DIVPS", LTYPE3, ADIVPS,
827*e887ea33SDavid du Colombier "DIVSD", LTYPE3, ADIVSD,
828*e887ea33SDavid du Colombier "DIVSS", LTYPE3, ADIVSS,
829*e887ea33SDavid du Colombier "FXRSTOR", LTYPE2, AFXRSTOR,
830*e887ea33SDavid du Colombier "FXRSTOR64", LTYPE2, AFXRSTOR64,
831*e887ea33SDavid du Colombier "FXSAVE", LTYPE1, AFXSAVE,
832*e887ea33SDavid du Colombier "FXSAVE64", LTYPE1, AFXSAVE64,
833*e887ea33SDavid du Colombier "LDMXCSR", LTYPE2, ALDMXCSR,
834*e887ea33SDavid du Colombier "MASKMOVOU", LTYPE3, AMASKMOVOU,
835*e887ea33SDavid du Colombier "MASKMOVDQU", LTYPE3, AMASKMOVOU, /* syn */
836*e887ea33SDavid du Colombier "MASKMOVQ", LTYPE3, AMASKMOVQ,
837*e887ea33SDavid du Colombier "MAXPD", LTYPE3, AMAXPD,
838*e887ea33SDavid du Colombier "MAXPS", LTYPE3, AMAXPS,
839*e887ea33SDavid du Colombier "MAXSD", LTYPE3, AMAXSD,
840*e887ea33SDavid du Colombier "MAXSS", LTYPE3, AMAXSS,
841*e887ea33SDavid du Colombier "MINPD", LTYPE3, AMINPD,
842*e887ea33SDavid du Colombier "MINPS", LTYPE3, AMINPS,
843*e887ea33SDavid du Colombier "MINSD", LTYPE3, AMINSD,
844*e887ea33SDavid du Colombier "MINSS", LTYPE3, AMINSS,
845*e887ea33SDavid du Colombier "MOVAPD", LTYPE3, AMOVAPD,
846*e887ea33SDavid du Colombier "MOVAPS", LTYPE3, AMOVAPS,
847*e887ea33SDavid du Colombier "MOVD", LTYPE3, AMOVQ, /* syn */
848*e887ea33SDavid du Colombier "MOVDQ2Q", LTYPE3, AMOVQ, /* syn */
849*e887ea33SDavid du Colombier "MOVO", LTYPE3, AMOVO,
850*e887ea33SDavid du Colombier "MOVOA", LTYPE3, AMOVO, /* syn */
851*e887ea33SDavid du Colombier "MOVOU", LTYPE3, AMOVOU,
852*e887ea33SDavid du Colombier "MOVHLPS", LTYPE3, AMOVHLPS,
853*e887ea33SDavid du Colombier "MOVHPD", LTYPE3, AMOVHPD,
854*e887ea33SDavid du Colombier "MOVHPS", LTYPE3, AMOVHPS,
855*e887ea33SDavid du Colombier "MOVLHPS", LTYPE3, AMOVLHPS,
856*e887ea33SDavid du Colombier "MOVLPD", LTYPE3, AMOVLPD,
857*e887ea33SDavid du Colombier "MOVLPS", LTYPE3, AMOVLPS,
858*e887ea33SDavid du Colombier "MOVMSKPD", LTYPE3, AMOVMSKPD,
859*e887ea33SDavid du Colombier "MOVMSKPS", LTYPE3, AMOVMSKPS,
860*e887ea33SDavid du Colombier "MOVNTO", LTYPE3, AMOVNTO,
861*e887ea33SDavid du Colombier "MOVNTDQ", LTYPE3, AMOVNTO, /* syn */
862*e887ea33SDavid du Colombier "MOVNTPD", LTYPE3, AMOVNTPD,
863*e887ea33SDavid du Colombier "MOVNTPS", LTYPE3, AMOVNTPS,
864*e887ea33SDavid du Colombier "MOVNTQ", LTYPE3, AMOVNTQ,
865*e887ea33SDavid du Colombier "MOVQOZX", LTYPE3, AMOVQOZX,
866*e887ea33SDavid du Colombier "MOVSD", LTYPE3, AMOVSD,
867*e887ea33SDavid du Colombier "MOVSS", LTYPE3, AMOVSS,
868*e887ea33SDavid du Colombier "MOVUPD", LTYPE3, AMOVUPD,
869*e887ea33SDavid du Colombier "MOVUPS", LTYPE3, AMOVUPS,
870*e887ea33SDavid du Colombier "MULPD", LTYPE3, AMULPD,
871*e887ea33SDavid du Colombier "MULPS", LTYPE3, AMULPS,
872*e887ea33SDavid du Colombier "MULSD", LTYPE3, AMULSD,
873*e887ea33SDavid du Colombier "MULSS", LTYPE3, AMULSS,
874*e887ea33SDavid du Colombier "ORPD", LTYPE3, AORPD,
875*e887ea33SDavid du Colombier "ORPS", LTYPE3, AORPS,
876*e887ea33SDavid du Colombier "PACKSSLW", LTYPE3, APACKSSLW,
877*e887ea33SDavid du Colombier "PACKSSWB", LTYPE3, APACKSSWB,
878*e887ea33SDavid du Colombier "PACKUSWB", LTYPE3, APACKUSWB,
879*e887ea33SDavid du Colombier "PADDB", LTYPE3, APADDB,
880*e887ea33SDavid du Colombier "PADDL", LTYPE3, APADDL,
881*e887ea33SDavid du Colombier "PADDQ", LTYPE3, APADDQ,
882*e887ea33SDavid du Colombier "PADDSB", LTYPE3, APADDSB,
883*e887ea33SDavid du Colombier "PADDSW", LTYPE3, APADDSW,
884*e887ea33SDavid du Colombier "PADDUSB", LTYPE3, APADDUSB,
885*e887ea33SDavid du Colombier "PADDUSW", LTYPE3, APADDUSW,
886*e887ea33SDavid du Colombier "PADDW", LTYPE3, APADDW,
887*e887ea33SDavid du Colombier "PAND", LTYPE3, APAND,
888*e887ea33SDavid du Colombier "PANDB", LTYPE3, APANDB,
889*e887ea33SDavid du Colombier "PANDL", LTYPE3, APANDL,
890*e887ea33SDavid du Colombier "PANDSB", LTYPE3, APANDSB,
891*e887ea33SDavid du Colombier "PANDSW", LTYPE3, APANDSW,
892*e887ea33SDavid du Colombier "PANDUSB", LTYPE3, APANDUSB,
893*e887ea33SDavid du Colombier "PANDUSW", LTYPE3, APANDUSW,
894*e887ea33SDavid du Colombier "PANDW", LTYPE3, APANDW,
895*e887ea33SDavid du Colombier "PANDN", LTYPE3, APANDN,
896*e887ea33SDavid du Colombier "PAVGB", LTYPE3, APAVGB,
897*e887ea33SDavid du Colombier "PAVGW", LTYPE3, APAVGW,
898*e887ea33SDavid du Colombier "PCMPEQB", LTYPE3, APCMPEQB,
899*e887ea33SDavid du Colombier "PCMPEQL", LTYPE3, APCMPEQL,
900*e887ea33SDavid du Colombier "PCMPEQW", LTYPE3, APCMPEQW,
901*e887ea33SDavid du Colombier "PCMPGTB", LTYPE3, APCMPGTB,
902*e887ea33SDavid du Colombier "PCMPGTL", LTYPE3, APCMPGTL,
903*e887ea33SDavid du Colombier "PCMPGTW", LTYPE3, APCMPGTW,
904*e887ea33SDavid du Colombier "PEXTRW", LTYPEX, APEXTRW,
905*e887ea33SDavid du Colombier "PINSRW", LTYPEX, APINSRW,
906*e887ea33SDavid du Colombier "PMADDWL", LTYPE3, APMADDWL,
907*e887ea33SDavid du Colombier "PMAXSW", LTYPE3, APMAXSW,
908*e887ea33SDavid du Colombier "PMAXUB", LTYPE3, APMAXUB,
909*e887ea33SDavid du Colombier "PMINSW", LTYPE3, APMINSW,
910*e887ea33SDavid du Colombier "PMINUB", LTYPE3, APMINUB,
911*e887ea33SDavid du Colombier "PMOVMSKB", LTYPE3, APMOVMSKB,
912*e887ea33SDavid du Colombier "PMULHRW", LTYPE3, APMULHRW,
913*e887ea33SDavid du Colombier "PMULHUW", LTYPE3, APMULHUW,
914*e887ea33SDavid du Colombier "PMULHW", LTYPE3, APMULHW,
915*e887ea33SDavid du Colombier "PMULLW", LTYPE3, APMULLW,
916*e887ea33SDavid du Colombier "PMULULQ", LTYPE3, APMULULQ,
917*e887ea33SDavid du Colombier "POR", LTYPE3, APOR,
918*e887ea33SDavid du Colombier "PSADBW", LTYPE3, APSADBW,
919*e887ea33SDavid du Colombier "PSHUFHW", LTYPEX, APSHUFHW,
920*e887ea33SDavid du Colombier "PSHUFL", LTYPEX, APSHUFL,
921*e887ea33SDavid du Colombier "PSHUFLW", LTYPEX, APSHUFLW,
922*e887ea33SDavid du Colombier "PSHUFW", LTYPEX, APSHUFW,
923*e887ea33SDavid du Colombier "PSLLO", LTYPE3, APSLLO,
924*e887ea33SDavid du Colombier "PSLLDQ", LTYPE3, APSLLO, /* syn */
925*e887ea33SDavid du Colombier "PSLLL", LTYPE3, APSLLL,
926*e887ea33SDavid du Colombier "PSLLQ", LTYPE3, APSLLQ,
927*e887ea33SDavid du Colombier "PSLLW", LTYPE3, APSLLW,
928*e887ea33SDavid du Colombier "PSRAL", LTYPE3, APSRAL,
929*e887ea33SDavid du Colombier "PSRAW", LTYPE3, APSRAW,
930*e887ea33SDavid du Colombier "PSRLO", LTYPE3, APSRLO,
931*e887ea33SDavid du Colombier "PSRLDQ", LTYPE3, APSRLO, /* syn */
932*e887ea33SDavid du Colombier "PSRLL", LTYPE3, APSRLL,
933*e887ea33SDavid du Colombier "PSRLQ", LTYPE3, APSRLQ,
934*e887ea33SDavid du Colombier "PSRLW", LTYPE3, APSRLW,
935*e887ea33SDavid du Colombier "PSUBB", LTYPE3, APSUBB,
936*e887ea33SDavid du Colombier "PSUBL", LTYPE3, APSUBL,
937*e887ea33SDavid du Colombier "PSUBQ", LTYPE3, APSUBQ,
938*e887ea33SDavid du Colombier "PSUBSB", LTYPE3, APSUBSB,
939*e887ea33SDavid du Colombier "PSUBSW", LTYPE3, APSUBSW,
940*e887ea33SDavid du Colombier "PSUBUSB", LTYPE3, APSUBUSB,
941*e887ea33SDavid du Colombier "PSUBUSW", LTYPE3, APSUBUSW,
942*e887ea33SDavid du Colombier "PSUBW", LTYPE3, APSUBW,
943*e887ea33SDavid du Colombier "PUNPCKHBW", LTYPE3, APUNPCKHBW,
944*e887ea33SDavid du Colombier "PUNPCKHLQ", LTYPE3, APUNPCKHLQ,
945*e887ea33SDavid du Colombier "PUNPCKHQDQ", LTYPE3, APUNPCKHQDQ,
946*e887ea33SDavid du Colombier "PUNPCKHWL", LTYPE3, APUNPCKHWL,
947*e887ea33SDavid du Colombier "PUNPCKLBW", LTYPE3, APUNPCKLBW,
948*e887ea33SDavid du Colombier "PUNPCKLLQ", LTYPE3, APUNPCKLLQ,
949*e887ea33SDavid du Colombier "PUNPCKLQDQ", LTYPE3, APUNPCKLQDQ,
950*e887ea33SDavid du Colombier "PUNPCKLWL", LTYPE3, APUNPCKLWL,
951*e887ea33SDavid du Colombier "PXOR", LTYPE3, APXOR,
952*e887ea33SDavid du Colombier "RCPPS", LTYPE3, ARCPPS,
953*e887ea33SDavid du Colombier "RCPSS", LTYPE3, ARCPSS,
954*e887ea33SDavid du Colombier "RSQRTPS", LTYPE3, ARSQRTPS,
955*e887ea33SDavid du Colombier "RSQRTSS", LTYPE3, ARSQRTSS,
956*e887ea33SDavid du Colombier "SHUFPD", LTYPEX, ASHUFPD,
957*e887ea33SDavid du Colombier "SHUFPS", LTYPEX, ASHUFPS,
958*e887ea33SDavid du Colombier "SQRTPD", LTYPE3, ASQRTPD,
959*e887ea33SDavid du Colombier "SQRTPS", LTYPE3, ASQRTPS,
960*e887ea33SDavid du Colombier "SQRTSD", LTYPE3, ASQRTSD,
961*e887ea33SDavid du Colombier "SQRTSS", LTYPE3, ASQRTSS,
962*e887ea33SDavid du Colombier "STMXCSR", LTYPE1, ASTMXCSR,
963*e887ea33SDavid du Colombier "SUBPD", LTYPE3, ASUBPD,
964*e887ea33SDavid du Colombier "SUBPS", LTYPE3, ASUBPS,
965*e887ea33SDavid du Colombier "SUBSD", LTYPE3, ASUBSD,
966*e887ea33SDavid du Colombier "SUBSS", LTYPE3, ASUBSS,
967*e887ea33SDavid du Colombier "UCOMISD", LTYPE3, AUCOMISD,
968*e887ea33SDavid du Colombier "UCOMISS", LTYPE3, AUCOMISS,
969*e887ea33SDavid du Colombier "UNPCKHPD", LTYPE3, AUNPCKHPD,
970*e887ea33SDavid du Colombier "UNPCKHPS", LTYPE3, AUNPCKHPS,
971*e887ea33SDavid du Colombier "UNPCKLPD", LTYPE3, AUNPCKLPD,
972*e887ea33SDavid du Colombier "UNPCKLPS", LTYPE3, AUNPCKLPS,
973*e887ea33SDavid du Colombier "XORPD", LTYPE3, AXORPD,
974*e887ea33SDavid du Colombier "XORPS", LTYPE3, AXORPS,
975*e887ea33SDavid du Colombier
976*e887ea33SDavid du Colombier 0
977*e887ea33SDavid du Colombier };
978*e887ea33SDavid du Colombier
979*e887ea33SDavid du Colombier void
cinit(void)980*e887ea33SDavid du Colombier cinit(void)
981*e887ea33SDavid du Colombier {
982*e887ea33SDavid du Colombier Sym *s;
983*e887ea33SDavid du Colombier int i;
984*e887ea33SDavid du Colombier
985*e887ea33SDavid du Colombier nullgen.sym = S;
986*e887ea33SDavid du Colombier nullgen.offset = 0;
987*e887ea33SDavid du Colombier if(FPCHIP)
988*e887ea33SDavid du Colombier nullgen.dval = 0;
989*e887ea33SDavid du Colombier for(i=0; i<sizeof(nullgen.sval); i++)
990*e887ea33SDavid du Colombier nullgen.sval[i] = 0;
991*e887ea33SDavid du Colombier nullgen.type = D_NONE;
992*e887ea33SDavid du Colombier nullgen.index = D_NONE;
993*e887ea33SDavid du Colombier nullgen.scale = 0;
994*e887ea33SDavid du Colombier
995*e887ea33SDavid du Colombier nerrors = 0;
996*e887ea33SDavid du Colombier iostack = I;
997*e887ea33SDavid du Colombier iofree = I;
998*e887ea33SDavid du Colombier peekc = IGN;
999*e887ea33SDavid du Colombier nhunk = 0;
1000*e887ea33SDavid du Colombier for(i=0; i<NHASH; i++)
1001*e887ea33SDavid du Colombier hash[i] = S;
1002*e887ea33SDavid du Colombier for(i=0; itab[i].name; i++) {
1003*e887ea33SDavid du Colombier s = slookup(itab[i].name);
1004*e887ea33SDavid du Colombier if(s->type != LNAME)
1005*e887ea33SDavid du Colombier yyerror("double initialization %s", itab[i].name);
1006*e887ea33SDavid du Colombier s->type = itab[i].type;
1007*e887ea33SDavid du Colombier s->value = itab[i].value;
1008*e887ea33SDavid du Colombier }
1009*e887ea33SDavid du Colombier
1010*e887ea33SDavid du Colombier pathname = allocn(pathname, 0, 100);
1011*e887ea33SDavid du Colombier if(mygetwd(pathname, 99) == 0) {
1012*e887ea33SDavid du Colombier pathname = allocn(pathname, 100, 900);
1013*e887ea33SDavid du Colombier if(mygetwd(pathname, 999) == 0)
1014*e887ea33SDavid du Colombier strcpy(pathname, "/???");
1015*e887ea33SDavid du Colombier }
1016*e887ea33SDavid du Colombier }
1017*e887ea33SDavid du Colombier
1018*e887ea33SDavid du Colombier void
checkscale(int scale)1019*e887ea33SDavid du Colombier checkscale(int scale)
1020*e887ea33SDavid du Colombier {
1021*e887ea33SDavid du Colombier
1022*e887ea33SDavid du Colombier switch(scale) {
1023*e887ea33SDavid du Colombier case 1:
1024*e887ea33SDavid du Colombier case 2:
1025*e887ea33SDavid du Colombier case 4:
1026*e887ea33SDavid du Colombier case 8:
1027*e887ea33SDavid du Colombier return;
1028*e887ea33SDavid du Colombier }
1029*e887ea33SDavid du Colombier yyerror("scale must be 1248: %d", scale);
1030*e887ea33SDavid du Colombier }
1031*e887ea33SDavid du Colombier
1032*e887ea33SDavid du Colombier void
syminit(Sym * s)1033*e887ea33SDavid du Colombier syminit(Sym *s)
1034*e887ea33SDavid du Colombier {
1035*e887ea33SDavid du Colombier
1036*e887ea33SDavid du Colombier s->type = LNAME;
1037*e887ea33SDavid du Colombier s->value = 0;
1038*e887ea33SDavid du Colombier }
1039*e887ea33SDavid du Colombier
1040*e887ea33SDavid du Colombier void
cclean(void)1041*e887ea33SDavid du Colombier cclean(void)
1042*e887ea33SDavid du Colombier {
1043*e887ea33SDavid du Colombier Gen2 g2;
1044*e887ea33SDavid du Colombier
1045*e887ea33SDavid du Colombier g2.from = nullgen;
1046*e887ea33SDavid du Colombier g2.to = nullgen;
1047*e887ea33SDavid du Colombier outcode(AEND, &g2);
1048*e887ea33SDavid du Colombier Bflush(&obuf);
1049*e887ea33SDavid du Colombier }
1050*e887ea33SDavid du Colombier
1051*e887ea33SDavid du Colombier void
zname(char * n,int t,int s)1052*e887ea33SDavid du Colombier zname(char *n, int t, int s)
1053*e887ea33SDavid du Colombier {
1054*e887ea33SDavid du Colombier
1055*e887ea33SDavid du Colombier Bputc(&obuf, ANAME); /* as(2) */
1056*e887ea33SDavid du Colombier Bputc(&obuf, ANAME>>8);
1057*e887ea33SDavid du Colombier Bputc(&obuf, t); /* type */
1058*e887ea33SDavid du Colombier Bputc(&obuf, s); /* sym */
1059*e887ea33SDavid du Colombier while(*n) {
1060*e887ea33SDavid du Colombier Bputc(&obuf, *n);
1061*e887ea33SDavid du Colombier n++;
1062*e887ea33SDavid du Colombier }
1063*e887ea33SDavid du Colombier Bputc(&obuf, 0);
1064*e887ea33SDavid du Colombier }
1065*e887ea33SDavid du Colombier
1066*e887ea33SDavid du Colombier void
zaddr(Gen * a,int s)1067*e887ea33SDavid du Colombier zaddr(Gen *a, int s)
1068*e887ea33SDavid du Colombier {
1069*e887ea33SDavid du Colombier long l;
1070*e887ea33SDavid du Colombier int i, t;
1071*e887ea33SDavid du Colombier char *n;
1072*e887ea33SDavid du Colombier Ieee e;
1073*e887ea33SDavid du Colombier
1074*e887ea33SDavid du Colombier t = 0;
1075*e887ea33SDavid du Colombier if(a->index != D_NONE || a->scale != 0)
1076*e887ea33SDavid du Colombier t |= T_INDEX;
1077*e887ea33SDavid du Colombier if(a->offset != 0) {
1078*e887ea33SDavid du Colombier t |= T_OFFSET;
1079*e887ea33SDavid du Colombier l = a->offset;
1080*e887ea33SDavid du Colombier if((vlong)l != a->offset)
1081*e887ea33SDavid du Colombier t |= T_64;
1082*e887ea33SDavid du Colombier }
1083*e887ea33SDavid du Colombier if(s != 0)
1084*e887ea33SDavid du Colombier t |= T_SYM;
1085*e887ea33SDavid du Colombier
1086*e887ea33SDavid du Colombier switch(a->type) {
1087*e887ea33SDavid du Colombier default:
1088*e887ea33SDavid du Colombier t |= T_TYPE;
1089*e887ea33SDavid du Colombier break;
1090*e887ea33SDavid du Colombier case D_FCONST:
1091*e887ea33SDavid du Colombier t |= T_FCONST;
1092*e887ea33SDavid du Colombier break;
1093*e887ea33SDavid du Colombier case D_SCONST:
1094*e887ea33SDavid du Colombier t |= T_SCONST;
1095*e887ea33SDavid du Colombier break;
1096*e887ea33SDavid du Colombier case D_NONE:
1097*e887ea33SDavid du Colombier break;
1098*e887ea33SDavid du Colombier }
1099*e887ea33SDavid du Colombier Bputc(&obuf, t);
1100*e887ea33SDavid du Colombier
1101*e887ea33SDavid du Colombier if(t & T_INDEX) { /* implies index, scale */
1102*e887ea33SDavid du Colombier Bputc(&obuf, a->index);
1103*e887ea33SDavid du Colombier Bputc(&obuf, a->scale);
1104*e887ea33SDavid du Colombier }
1105*e887ea33SDavid du Colombier if(t & T_OFFSET) { /* implies offset */
1106*e887ea33SDavid du Colombier l = a->offset;
1107*e887ea33SDavid du Colombier Bputc(&obuf, l);
1108*e887ea33SDavid du Colombier Bputc(&obuf, l>>8);
1109*e887ea33SDavid du Colombier Bputc(&obuf, l>>16);
1110*e887ea33SDavid du Colombier Bputc(&obuf, l>>24);
1111*e887ea33SDavid du Colombier if(t & T_64) {
1112*e887ea33SDavid du Colombier l = a->offset>>32;
1113*e887ea33SDavid du Colombier Bputc(&obuf, l);
1114*e887ea33SDavid du Colombier Bputc(&obuf, l>>8);
1115*e887ea33SDavid du Colombier Bputc(&obuf, l>>16);
1116*e887ea33SDavid du Colombier Bputc(&obuf, l>>24);
1117*e887ea33SDavid du Colombier }
1118*e887ea33SDavid du Colombier }
1119*e887ea33SDavid du Colombier if(t & T_SYM) /* implies sym */
1120*e887ea33SDavid du Colombier Bputc(&obuf, s);
1121*e887ea33SDavid du Colombier if(t & T_FCONST) {
1122*e887ea33SDavid du Colombier ieeedtod(&e, a->dval);
1123*e887ea33SDavid du Colombier l = e.l;
1124*e887ea33SDavid du Colombier Bputc(&obuf, l);
1125*e887ea33SDavid du Colombier Bputc(&obuf, l>>8);
1126*e887ea33SDavid du Colombier Bputc(&obuf, l>>16);
1127*e887ea33SDavid du Colombier Bputc(&obuf, l>>24);
1128*e887ea33SDavid du Colombier l = e.h;
1129*e887ea33SDavid du Colombier Bputc(&obuf, l);
1130*e887ea33SDavid du Colombier Bputc(&obuf, l>>8);
1131*e887ea33SDavid du Colombier Bputc(&obuf, l>>16);
1132*e887ea33SDavid du Colombier Bputc(&obuf, l>>24);
1133*e887ea33SDavid du Colombier return;
1134*e887ea33SDavid du Colombier }
1135*e887ea33SDavid du Colombier if(t & T_SCONST) {
1136*e887ea33SDavid du Colombier n = a->sval;
1137*e887ea33SDavid du Colombier for(i=0; i<NSNAME; i++) {
1138*e887ea33SDavid du Colombier Bputc(&obuf, *n);
1139*e887ea33SDavid du Colombier n++;
1140*e887ea33SDavid du Colombier }
1141*e887ea33SDavid du Colombier return;
1142*e887ea33SDavid du Colombier }
1143*e887ea33SDavid du Colombier if(t & T_TYPE)
1144*e887ea33SDavid du Colombier Bputc(&obuf, a->type);
1145*e887ea33SDavid du Colombier }
1146*e887ea33SDavid du Colombier
1147*e887ea33SDavid du Colombier void
outcode(int a,Gen2 * g2)1148*e887ea33SDavid du Colombier outcode(int a, Gen2 *g2)
1149*e887ea33SDavid du Colombier {
1150*e887ea33SDavid du Colombier int sf, st, t;
1151*e887ea33SDavid du Colombier Sym *s;
1152*e887ea33SDavid du Colombier
1153*e887ea33SDavid du Colombier if(pass == 1)
1154*e887ea33SDavid du Colombier goto out;
1155*e887ea33SDavid du Colombier
1156*e887ea33SDavid du Colombier jackpot:
1157*e887ea33SDavid du Colombier sf = 0;
1158*e887ea33SDavid du Colombier s = g2->from.sym;
1159*e887ea33SDavid du Colombier while(s != S) {
1160*e887ea33SDavid du Colombier sf = s->sym;
1161*e887ea33SDavid du Colombier if(sf < 0 || sf >= NSYM)
1162*e887ea33SDavid du Colombier sf = 0;
1163*e887ea33SDavid du Colombier t = g2->from.type;
1164*e887ea33SDavid du Colombier if(t == D_ADDR)
1165*e887ea33SDavid du Colombier t = g2->from.index;
1166*e887ea33SDavid du Colombier if(h[sf].type == t)
1167*e887ea33SDavid du Colombier if(h[sf].sym == s)
1168*e887ea33SDavid du Colombier break;
1169*e887ea33SDavid du Colombier zname(s->name, t, sym);
1170*e887ea33SDavid du Colombier s->sym = sym;
1171*e887ea33SDavid du Colombier h[sym].sym = s;
1172*e887ea33SDavid du Colombier h[sym].type = t;
1173*e887ea33SDavid du Colombier sf = sym;
1174*e887ea33SDavid du Colombier sym++;
1175*e887ea33SDavid du Colombier if(sym >= NSYM)
1176*e887ea33SDavid du Colombier sym = 1;
1177*e887ea33SDavid du Colombier break;
1178*e887ea33SDavid du Colombier }
1179*e887ea33SDavid du Colombier st = 0;
1180*e887ea33SDavid du Colombier s = g2->to.sym;
1181*e887ea33SDavid du Colombier while(s != S) {
1182*e887ea33SDavid du Colombier st = s->sym;
1183*e887ea33SDavid du Colombier if(st < 0 || st >= NSYM)
1184*e887ea33SDavid du Colombier st = 0;
1185*e887ea33SDavid du Colombier t = g2->to.type;
1186*e887ea33SDavid du Colombier if(t == D_ADDR)
1187*e887ea33SDavid du Colombier t = g2->to.index;
1188*e887ea33SDavid du Colombier if(h[st].type == t)
1189*e887ea33SDavid du Colombier if(h[st].sym == s)
1190*e887ea33SDavid du Colombier break;
1191*e887ea33SDavid du Colombier zname(s->name, t, sym);
1192*e887ea33SDavid du Colombier s->sym = sym;
1193*e887ea33SDavid du Colombier h[sym].sym = s;
1194*e887ea33SDavid du Colombier h[sym].type = t;
1195*e887ea33SDavid du Colombier st = sym;
1196*e887ea33SDavid du Colombier sym++;
1197*e887ea33SDavid du Colombier if(sym >= NSYM)
1198*e887ea33SDavid du Colombier sym = 1;
1199*e887ea33SDavid du Colombier if(st == sf)
1200*e887ea33SDavid du Colombier goto jackpot;
1201*e887ea33SDavid du Colombier break;
1202*e887ea33SDavid du Colombier }
1203*e887ea33SDavid du Colombier Bputc(&obuf, a);
1204*e887ea33SDavid du Colombier Bputc(&obuf, a>>8);
1205*e887ea33SDavid du Colombier Bputc(&obuf, lineno);
1206*e887ea33SDavid du Colombier Bputc(&obuf, lineno>>8);
1207*e887ea33SDavid du Colombier Bputc(&obuf, lineno>>16);
1208*e887ea33SDavid du Colombier Bputc(&obuf, lineno>>24);
1209*e887ea33SDavid du Colombier zaddr(&g2->from, sf);
1210*e887ea33SDavid du Colombier zaddr(&g2->to, st);
1211*e887ea33SDavid du Colombier
1212*e887ea33SDavid du Colombier out:
1213*e887ea33SDavid du Colombier if(a != AGLOBL && a != ADATA && a != AMODE)
1214*e887ea33SDavid du Colombier pc++;
1215*e887ea33SDavid du Colombier }
1216*e887ea33SDavid du Colombier
1217*e887ea33SDavid du Colombier void
outhist(void)1218*e887ea33SDavid du Colombier outhist(void)
1219*e887ea33SDavid du Colombier {
1220*e887ea33SDavid du Colombier Gen g;
1221*e887ea33SDavid du Colombier Hist *h;
1222*e887ea33SDavid du Colombier char *p, *q, *op, c;
1223*e887ea33SDavid du Colombier int n;
1224*e887ea33SDavid du Colombier
1225*e887ea33SDavid du Colombier g = nullgen;
1226*e887ea33SDavid du Colombier c = pathchar();
1227*e887ea33SDavid du Colombier for(h = hist; h != H; h = h->link) {
1228*e887ea33SDavid du Colombier p = h->name;
1229*e887ea33SDavid du Colombier op = 0;
1230*e887ea33SDavid du Colombier /* on windows skip drive specifier in pathname */
1231*e887ea33SDavid du Colombier if(systemtype(Windows) && p && p[1] == ':'){
1232*e887ea33SDavid du Colombier p += 2;
1233*e887ea33SDavid du Colombier c = *p;
1234*e887ea33SDavid du Colombier }
1235*e887ea33SDavid du Colombier if(p && p[0] != c && h->offset == 0 && pathname){
1236*e887ea33SDavid du Colombier /* on windows skip drive specifier in pathname */
1237*e887ea33SDavid du Colombier if(systemtype(Windows) && pathname[1] == ':') {
1238*e887ea33SDavid du Colombier op = p;
1239*e887ea33SDavid du Colombier p = pathname+2;
1240*e887ea33SDavid du Colombier c = *p;
1241*e887ea33SDavid du Colombier } else if(pathname[0] == c){
1242*e887ea33SDavid du Colombier op = p;
1243*e887ea33SDavid du Colombier p = pathname;
1244*e887ea33SDavid du Colombier }
1245*e887ea33SDavid du Colombier }
1246*e887ea33SDavid du Colombier while(p) {
1247*e887ea33SDavid du Colombier q = strchr(p, c);
1248*e887ea33SDavid du Colombier if(q) {
1249*e887ea33SDavid du Colombier n = q-p;
1250*e887ea33SDavid du Colombier if(n == 0){
1251*e887ea33SDavid du Colombier n = 1; /* leading "/" */
1252*e887ea33SDavid du Colombier *p = '/'; /* don't emit "\" on windows */
1253*e887ea33SDavid du Colombier }
1254*e887ea33SDavid du Colombier q++;
1255*e887ea33SDavid du Colombier } else {
1256*e887ea33SDavid du Colombier n = strlen(p);
1257*e887ea33SDavid du Colombier q = 0;
1258*e887ea33SDavid du Colombier }
1259*e887ea33SDavid du Colombier if(n) {
1260*e887ea33SDavid du Colombier Bputc(&obuf, ANAME);
1261*e887ea33SDavid du Colombier Bputc(&obuf, ANAME>>8);
1262*e887ea33SDavid du Colombier Bputc(&obuf, D_FILE); /* type */
1263*e887ea33SDavid du Colombier Bputc(&obuf, 1); /* sym */
1264*e887ea33SDavid du Colombier Bputc(&obuf, '<');
1265*e887ea33SDavid du Colombier Bwrite(&obuf, p, n);
1266*e887ea33SDavid du Colombier Bputc(&obuf, 0);
1267*e887ea33SDavid du Colombier }
1268*e887ea33SDavid du Colombier p = q;
1269*e887ea33SDavid du Colombier if(p == 0 && op) {
1270*e887ea33SDavid du Colombier p = op;
1271*e887ea33SDavid du Colombier op = 0;
1272*e887ea33SDavid du Colombier }
1273*e887ea33SDavid du Colombier }
1274*e887ea33SDavid du Colombier g.offset = h->offset;
1275*e887ea33SDavid du Colombier
1276*e887ea33SDavid du Colombier Bputc(&obuf, AHISTORY);
1277*e887ea33SDavid du Colombier Bputc(&obuf, AHISTORY>>8);
1278*e887ea33SDavid du Colombier Bputc(&obuf, h->line);
1279*e887ea33SDavid du Colombier Bputc(&obuf, h->line>>8);
1280*e887ea33SDavid du Colombier Bputc(&obuf, h->line>>16);
1281*e887ea33SDavid du Colombier Bputc(&obuf, h->line>>24);
1282*e887ea33SDavid du Colombier zaddr(&nullgen, 0);
1283*e887ea33SDavid du Colombier zaddr(&g, 0);
1284*e887ea33SDavid du Colombier }
1285*e887ea33SDavid du Colombier }
1286*e887ea33SDavid du Colombier
1287*e887ea33SDavid du Colombier #include "../cc/lexbody"
1288*e887ea33SDavid du Colombier #include "../cc/macbody"
1289*e887ea33SDavid du Colombier #include "../cc/compat"
1290