7 main(int argc, char *argv[])
10 int nout, nproc, status, i, c;
14 memset(debug, 0, sizeof(debug));
17 include[ninclude++] = ".";
21 if(c >= 0 || c < sizeof(debug))
41 print("usage: %ca [-options] file.s\n", thechar);
44 if(argc > 1 && systemtype(Windows)){
45 print("can't assemble multiple files on windows\n");
48 if(argc > 1 && !systemtype(Windows)) {
50 if(p = getenv("NPROC"))
51 nproc = atol(p); /* */
55 while(nout < nproc && argc > 0) {
67 print("%s:\n", *argv);
95 char ofile[100], incfile[20], *p;
99 p = utfrrune(ofile, pathchar());
108 p = utfrrune(outfile, '.');
110 if(p[1] == 's' && p[2] == 0)
112 p = utfrune(outfile, 0);
117 outfile = "/dev/null";
119 p = getenv("INCLUDE");
123 if(systemtype(Plan9)) {
124 sprint(incfile,"/%s/include", thestring);
125 setinclude(strdup(incfile));
129 of = mycreat(outfile, 0664);
131 yyerror("%ca: cannot create %s", thechar, outfile);
134 Binit(&obuf, of, OWRITE);
138 for(i=0; i<nDlist; i++)
149 for(i=0; i<nDlist; i++)
172 "CACR", LTOS, D_CACR,
175 "CAAR", LTOS, D_CAAR,
178 "FPCR", LTOS, D_FPCR,
179 "FPSR", LTOS, D_FPSR,
180 "FPIAR", LTOS, D_FPIAR,
182 "ITT0", LTOS, D_ITT0,
183 "ITT1", LTOS, D_ITT1,
184 "DTT0", LTOS, D_DTT0,
185 "DTT1", LTOS, D_DTT1,
186 "MMUSR", LTOS, D_MMUSR,
217 "ABCD", LTYPE1, AABCD,
218 "ADDB", LTYPE1, AADDB,
219 "ADDL", LTYPE1, AADDL,
220 "ADDW", LTYPE1, AADDW,
221 "ADDXB", LTYPE1, AADDXB,
222 "ADDXL", LTYPE1, AADDXL,
223 "ADDXW", LTYPE1, AADDXW,
224 "ADJSP", LTYPE5, AADJSP,
225 "ANDB", LTYPE1, AANDB,
226 "ANDL", LTYPE1, AANDL,
227 "ANDW", LTYPE1, AANDW,
228 "ASLB", LTYPE1, AASLB,
229 "ASLL", LTYPE1, AASLL,
230 "ASLW", LTYPE1, AASLW,
231 "ASRB", LTYPE1, AASRB,
232 "ASRL", LTYPE1, AASRL,
233 "ASRW", LTYPE1, AASRW,
234 "BCASE", LTYPE7, ABCASE,
236 "BCHG", LTYPE1, ABCHG,
237 "BCLR", LTYPE1, ABCLR,
240 "BFCHG", LTYPEA, ABFCHG,
241 "BFCLR", LTYPEA, ABFCLR,
242 "BFEXTS", LTYPEA, ABFEXTS,
243 "BFEXTU", LTYPEA, ABFEXTU,
244 "BFFFO", LTYPEA, ABFFFO,
245 "BFINS", LTYPEA, ABFINS,
246 "BFSET", LTYPEA, ABFSET,
247 "BFTST", LTYPEA, ABFTST,
251 "BKPT", LTYPE1, ABKPT,
259 "BSET", LTYPE1, ABSET,
261 "BTST", LTYPE1, ABTST,
264 "CALLM", LTYPE1, ACALLM,
265 "CAS2B", LTYPE1, ACAS2B,
266 "CAS2L", LTYPE1, ACAS2L,
267 "CAS2W", LTYPE1, ACAS2W,
268 "CASB", LTYPE1, ACASB,
269 "CASEW", LTYPE2, ACASEW,
270 "CASL", LTYPE1, ACASL,
271 "CASW", LTYPE1, ACASW,
272 "CHK2B", LTYPE1, ACHK2B,
273 "CHK2L", LTYPE1, ACHK2L,
274 "CHK2W", LTYPE1, ACHK2W,
275 "CHKL", LTYPE1, ACHKL,
276 "CHKW", LTYPE1, ACHKW,
277 "CLRB", LTYPE3, ACLRB,
278 "CLRL", LTYPE3, ACLRL,
279 "CLRW", LTYPE3, ACLRW,
280 "CMP2B", LTYPE1, ACMP2B,
281 "CMP2L", LTYPE1, ACMP2L,
282 "CMP2W", LTYPE1, ACMP2W,
283 "CMPB", LTYPE1, ACMPB,
284 "CMPL", LTYPE1, ACMPL,
285 "CMPW", LTYPE1, ACMPW,
286 "DATA", LTYPE4, ADATA,
287 "DBCC", LTYPE7, ADBCC,
288 "DBCS", LTYPE7, ADBCS,
289 "DBEQ", LTYPE7, ADBEQ,
291 "DBGE", LTYPE7, ADBGE,
292 "DBGT", LTYPE7, ADBGT,
293 "DBHI", LTYPE7, ADBHI,
294 "DBLE", LTYPE7, ADBLE,
295 "DBLS", LTYPE7, ADBLS,
296 "DBLT", LTYPE7, ADBLT,
297 "DBMI", LTYPE7, ADBMI,
298 "DBNE", LTYPE7, ADBNE,
299 "DBPL", LTYPE7, ADBPL,
301 "DBVC", LTYPE7, ADBVC,
302 "DBVS", LTYPE7, ADBVS,
303 "DIVSL", LTYPE1, ADIVSL,
304 "DIVSW", LTYPE1, ADIVSW,
305 "DIVUL", LTYPE1, ADIVUL,
306 "DIVUW", LTYPE1, ADIVUW,
308 "EORB", LTYPE1, AEORB,
309 "EORL", LTYPE1, AEORL,
310 "EORW", LTYPE1, AEORW,
312 "EXTBL", LTYPE3, AEXTBL,
313 "EXTBW", LTYPE3, AEXTBW,
314 "EXTWL", LTYPE3, AEXTWL,
315 "FABSB", LTYPE1, AFABSB,
316 "FABSD", LTYPE1, AFABSD,
317 "FABSF", LTYPE1, AFABSF,
318 "FABSL", LTYPE1, AFABSL,
319 "FABSW", LTYPE1, AFABSW,
320 "FACOSB", LTYPE1, AFACOSB,
321 "FACOSD", LTYPE1, AFACOSD,
322 "FACOSF", LTYPE1, AFACOSF,
323 "FACOSL", LTYPE1, AFACOSL,
324 "FACOSW", LTYPE1, AFACOSW,
325 "FADDB", LTYPE1, AFADDB,
326 "FADDD", LTYPE1, AFADDD,
327 "FADDF", LTYPE1, AFADDF,
328 "FADDL", LTYPE1, AFADDL,
329 "FADDW", LTYPE1, AFADDW,
330 "FASINB", LTYPE1, AFASINB,
331 "FASIND", LTYPE1, AFASIND,
332 "FASINF", LTYPE1, AFASINF,
333 "FASINL", LTYPE1, AFASINL,
334 "FASINW", LTYPE1, AFASINW,
335 "FATANB", LTYPE1, AFATANB,
336 "FATAND", LTYPE1, AFATAND,
337 "FATANF", LTYPE1, AFATANF,
338 "FATANHB", LTYPE1, AFATANHB,
339 "FATANHD", LTYPE1, AFATANHD,
340 "FATANHF", LTYPE1, AFATANHF,
341 "FATANHL", LTYPE1, AFATANHL,
342 "FATANHW", LTYPE1, AFATANHW,
343 "FATANL", LTYPE1, AFATANL,
344 "FATANW", LTYPE1, AFATANW,
345 "FBEQ", LTYPE6, AFBEQ,
347 "FBGE", LTYPE6, AFBGE,
348 "FBGT", LTYPE6, AFBGT,
349 "FBLE", LTYPE6, AFBLE,
350 "FBLT", LTYPE6, AFBLT,
351 "FBNE", LTYPE6, AFBNE,
353 "FCMPB", LTYPE1, AFCMPB,
354 "FCMPD", LTYPE1, AFCMPD,
355 "FCMPF", LTYPE1, AFCMPF,
356 "FCMPL", LTYPE1, AFCMPL,
357 "FCMPW", LTYPE1, AFCMPW,
358 "FCOSB", LTYPE1, AFCOSB,
359 "FCOSD", LTYPE1, AFCOSD,
360 "FCOSF", LTYPE1, AFCOSF,
361 "FCOSHB", LTYPE1, AFCOSHB,
362 "FCOSHD", LTYPE1, AFCOSHD,
363 "FCOSHF", LTYPE1, AFCOSHF,
364 "FCOSHL", LTYPE1, AFCOSHL,
365 "FCOSHW", LTYPE1, AFCOSHW,
366 "FCOSL", LTYPE1, AFCOSL,
367 "FCOSW", LTYPE1, AFCOSW,
368 "FDBEQ", LTYPE7, AFDBEQ,
369 "FDBF", LTYPE7, AFDBF,
370 "FDBGE", LTYPE7, AFDBGE,
371 "FDBGT", LTYPE7, AFDBGT,
372 "FDBLE", LTYPE7, AFDBLE,
373 "FDBLT", LTYPE7, AFDBLT,
374 "FDBNE", LTYPE7, AFDBNE,
375 "FDBT", LTYPE7, AFDBT,
376 "FDIVB", LTYPE1, AFDIVB,
377 "FDIVD", LTYPE1, AFDIVD,
378 "FDIVF", LTYPE1, AFDIVF,
379 "FDIVL", LTYPE1, AFDIVL,
380 "FDIVW", LTYPE1, AFDIVW,
381 "FETOXB", LTYPE1, AFETOXB,
382 "FETOXD", LTYPE1, AFETOXD,
383 "FETOXF", LTYPE1, AFETOXF,
384 "FETOXL", LTYPE1, AFETOXL,
385 "FETOXM1B", LTYPE1, AFETOXM1B,
386 "FETOXM1D", LTYPE1, AFETOXM1D,
387 "FETOXM1F", LTYPE1, AFETOXM1F,
388 "FETOXM1L", LTYPE1, AFETOXM1L,
389 "FETOXM1W", LTYPE1, AFETOXM1W,
390 "FETOXW", LTYPE1, AFETOXW,
391 "FGETEXPB", LTYPE1, AFGETEXPB,
392 "FGETEXPD", LTYPE1, AFGETEXPD,
393 "FGETEXPF", LTYPE1, AFGETEXPF,
394 "FGETEXPL", LTYPE1, AFGETEXPL,
395 "FGETEXPW", LTYPE1, AFGETEXPW,
396 "FGETMANB", LTYPE1, AFGETMANB,
397 "FGETMAND", LTYPE1, AFGETMAND,
398 "FGETMANF", LTYPE1, AFGETMANF,
399 "FGETMANL", LTYPE1, AFGETMANL,
400 "FGETMANW", LTYPE1, AFGETMANW,
401 "FINTB", LTYPE1, AFINTB,
402 "FINTD", LTYPE1, AFINTD,
403 "FINTF", LTYPE1, AFINTF,
404 "FINTL", LTYPE1, AFINTL,
405 "FINTRZB", LTYPE1, AFINTRZB,
406 "FINTRZD", LTYPE1, AFINTRZD,
407 "FINTRZF", LTYPE1, AFINTRZF,
408 "FINTRZL", LTYPE1, AFINTRZL,
409 "FINTRZW", LTYPE1, AFINTRZW,
410 "FINTW", LTYPE1, AFINTW,
411 "FLOG10B", LTYPE1, AFLOG10B,
412 "FLOG10D", LTYPE1, AFLOG10D,
413 "FLOG10F", LTYPE1, AFLOG10F,
414 "FLOG10L", LTYPE1, AFLOG10L,
415 "FLOG10W", LTYPE1, AFLOG10W,
416 "FLOG2B", LTYPE1, AFLOG2B,
417 "FLOG2D", LTYPE1, AFLOG2D,
418 "FLOG2F", LTYPE1, AFLOG2F,
419 "FLOG2L", LTYPE1, AFLOG2L,
420 "FLOG2W", LTYPE1, AFLOG2W,
421 "FLOGNB", LTYPE1, AFLOGNB,
422 "FLOGND", LTYPE1, AFLOGND,
423 "FLOGNF", LTYPE1, AFLOGNF,
424 "FLOGNL", LTYPE1, AFLOGNL,
425 "FLOGNP1B", LTYPE1, AFLOGNP1B,
426 "FLOGNP1D", LTYPE1, AFLOGNP1D,
427 "FLOGNP1F", LTYPE1, AFLOGNP1F,
428 "FLOGNP1L", LTYPE1, AFLOGNP1L,
429 "FLOGNP1W", LTYPE1, AFLOGNP1W,
430 "FLOGNW", LTYPE1, AFLOGNW,
431 "FMODB", LTYPE1, AFMODB,
432 "FMODD", LTYPE1, AFMODD,
433 "FMODF", LTYPE1, AFMODF,
434 "FMODL", LTYPE1, AFMODL,
435 "FMODW", LTYPE1, AFMODW,
436 "FMOVEB", LTYPE1, AFMOVEB,
437 "FMOVED", LTYPE1, AFMOVED,
438 "FMOVEF", LTYPE1, AFMOVEF,
439 "FMOVEL", LTYPE1, AFMOVEL,
440 "FMOVEW", LTYPE1, AFMOVEW,
441 "FMULB", LTYPE1, AFMULB,
442 "FMULD", LTYPE1, AFMULD,
443 "FMULF", LTYPE1, AFMULF,
444 "FMULL", LTYPE1, AFMULL,
445 "FMULW", LTYPE1, AFMULW,
446 "FNEGB", LTYPE8, AFNEGB,
447 "FNEGD", LTYPE8, AFNEGD,
448 "FNEGF", LTYPE8, AFNEGF,
449 "FNEGL", LTYPE8, AFNEGL,
450 "FNEGW", LTYPE8, AFNEGW,
451 "FREMB", LTYPE1, AFREMB,
452 "FREMD", LTYPE1, AFREMD,
453 "FREMF", LTYPE1, AFREMF,
454 "FREML", LTYPE1, AFREML,
455 "FREMW", LTYPE1, AFREMW,
456 "FSCALEB", LTYPE1, AFSCALEB,
457 "FSCALED", LTYPE1, AFSCALED,
458 "FSCALEF", LTYPE1, AFSCALEF,
459 "FSCALEL", LTYPE1, AFSCALEL,
460 "FSCALEW", LTYPE1, AFSCALEW,
461 "FSEQ", LTYPE1, AFSEQ,
463 "FSGE", LTYPE1, AFSGE,
464 "FSGT", LTYPE1, AFSGT,
465 "FSINB", LTYPE1, AFSINB,
466 "FSIND", LTYPE1, AFSIND,
467 "FSINF", LTYPE1, AFSINF,
468 "FSINHB", LTYPE1, AFSINHB,
469 "FSINHD", LTYPE1, AFSINHD,
470 "FSINHF", LTYPE1, AFSINHF,
471 "FSINHL", LTYPE1, AFSINHL,
472 "FSINHW", LTYPE1, AFSINHW,
473 "FSINL", LTYPE1, AFSINL,
474 "FSINW", LTYPE1, AFSINW,
475 "FSLE", LTYPE1, AFSLE,
476 "FSLT", LTYPE1, AFSLT,
477 "FSNE", LTYPE1, AFSNE,
478 "FSQRTB", LTYPE1, AFSQRTB,
479 "FSQRTD", LTYPE1, AFSQRTD,
480 "FSQRTF", LTYPE1, AFSQRTF,
481 "FSQRTL", LTYPE1, AFSQRTL,
482 "FSQRTW", LTYPE1, AFSQRTW,
484 "FSUBB", LTYPE1, AFSUBB,
485 "FSUBD", LTYPE1, AFSUBD,
486 "FSUBF", LTYPE1, AFSUBF,
487 "FSUBL", LTYPE1, AFSUBL,
488 "FSUBW", LTYPE1, AFSUBW,
489 "FTANB", LTYPE1, AFTANB,
490 "FTAND", LTYPE1, AFTAND,
491 "FTANF", LTYPE1, AFTANF,
492 "FTANHB", LTYPE1, AFTANHB,
493 "FTANHD", LTYPE1, AFTANHD,
494 "FTANHF", LTYPE1, AFTANHF,
495 "FTANHL", LTYPE1, AFTANHL,
496 "FTANHW", LTYPE1, AFTANHW,
497 "FTANL", LTYPE1, AFTANL,
498 "FTANW", LTYPE1, AFTANW,
499 "FTENTOXB", LTYPE1, AFTENTOXB,
500 "FTENTOXD", LTYPE1, AFTENTOXD,
501 "FTENTOXF", LTYPE1, AFTENTOXF,
502 "FTENTOXL", LTYPE1, AFTENTOXL,
503 "FTENTOXW", LTYPE1, AFTENTOXW,
504 "FTSTB", LTYPE1, AFTSTB,
505 "FTSTD", LTYPE1, AFTSTD,
506 "FTSTF", LTYPE1, AFTSTF,
507 "FTSTL", LTYPE1, AFTSTL,
508 "FTSTW", LTYPE1, AFTSTW,
509 "FTWOTOXB", LTYPE1, AFTWOTOXB,
510 "FTWOTOXD", LTYPE1, AFTWOTOXD,
511 "FTWOTOXF", LTYPE1, AFTWOTOXF,
512 "FTWOTOXL", LTYPE1, AFTWOTOXL,
513 "FTWOTOXW", LTYPE1, AFTWOTOXW,
514 "FMOVEM", LTYPE1, AFMOVEM,
515 "FMOVEMC", LTYPE1, AFMOVEMC,
516 "FRESTORE", LTYPE3, AFRESTORE,
517 "FSAVE", LTYPE3, AFSAVE,
518 "GLOBL", LTYPE1, AGLOBL,
520 "HISTORY", LTYPE2, AHISTORY,
521 "ILLEG", LTYPE2, AILLEG,
522 "INSTR", LTYPE3, AINSTR,
526 "LINKL", LTYPE1, ALINKL,
527 "LINKW", LTYPE1, ALINKW,
528 "LOCATE", LTYPE1, ALOCATE,
529 "LONG", LTYPE3, ALONG,
530 "LSLB", LTYPE1, ALSLB,
531 "LSLL", LTYPE1, ALSLL,
532 "LSLW", LTYPE1, ALSLW,
533 "LSRB", LTYPE1, ALSRB,
534 "LSRL", LTYPE1, ALSRL,
535 "LSRW", LTYPE1, ALSRW,
536 "MOVB", LTYPE1, AMOVB,
537 "MOVEM", LTYPE1, AMOVEM,
538 "MOVEPL", LTYPE1, AMOVEPL,
539 "MOVEPW", LTYPE1, AMOVEPW,
540 "MOVESB", LTYPE1, AMOVESB,
541 "MOVESL", LTYPE1, AMOVESL,
542 "MOVESW", LTYPE1, AMOVESW,
543 "MOVL", LTYPE1, AMOVL,
544 "MOVW", LTYPE1, AMOVW,
545 "MULSL", LTYPE1, AMULSL,
546 "MULSW", LTYPE1, AMULSW,
547 "MULUL", LTYPE1, AMULUL,
548 "MULUW", LTYPE1, AMULUW,
549 "NAME", LTYPE1, ANAME,
550 "NBCD", LTYPE3, ANBCD,
551 "NEGB", LTYPE3, ANEGB,
552 "NEGL", LTYPE3, ANEGL,
553 "NEGW", LTYPE3, ANEGW,
554 "NEGXB", LTYPE3, ANEGXB,
555 "NEGXL", LTYPE3, ANEGXL,
556 "NEGXW", LTYPE3, ANEGXW,
558 "NOTB", LTYPE3, ANOTB,
559 "NOTL", LTYPE3, ANOTL,
560 "NOTW", LTYPE3, ANOTW,
564 "PACK", LTYPE1, APACK,
566 "RESET", LTYPE2, ARESET,
567 "ROTLB", LTYPE1, AROTLB,
568 "ROTLL", LTYPE1, AROTLL,
569 "ROTLW", LTYPE1, AROTLW,
570 "ROTRB", LTYPE1, AROTRB,
571 "ROTRL", LTYPE1, AROTRL,
572 "ROTRW", LTYPE1, AROTRW,
573 "ROXLB", LTYPE1, AROXLB,
574 "ROXLL", LTYPE1, AROXLL,
575 "ROXLW", LTYPE1, AROXLW,
576 "ROXRB", LTYPE1, AROXRB,
577 "ROXRL", LTYPE1, AROXRL,
578 "ROXRW", LTYPE1, AROXRW,
584 "SBCD", LTYPE1, ASBCD,
599 "STOP", LTYPE3, ASTOP,
600 "SUBB", LTYPE1, ASUBB,
601 "SUBL", LTYPE1, ASUBL,
602 "SUBW", LTYPE1, ASUBW,
603 "SUBXB", LTYPE1, ASUBXB,
604 "SUBXL", LTYPE1, ASUBXL,
605 "SUBXW", LTYPE1, ASUBXW,
608 "SWAP", LTYPE3, ASWAP,
611 "TEXT", LTYPEB, ATEXT,
612 "TRAP", LTYPE3, ATRAP,
613 "TRAPCC", LTYPE2, ATRAPCC,
614 "TRAPCS", LTYPE2, ATRAPCS,
615 "TRAPEQ", LTYPE2, ATRAPEQ,
616 "TRAPF", LTYPE2, ATRAPF,
617 "TRAPGE", LTYPE2, ATRAPGE,
618 "TRAPGT", LTYPE2, ATRAPGT,
619 "TRAPHI", LTYPE2, ATRAPHI,
620 "TRAPLE", LTYPE2, ATRAPLE,
621 "TRAPLS", LTYPE2, ATRAPLS,
622 "TRAPLT", LTYPE2, ATRAPLT,
623 "TRAPMI", LTYPE2, ATRAPMI,
624 "TRAPNE", LTYPE2, ATRAPNE,
625 "TRAPPL", LTYPE2, ATRAPPL,
626 "TRAPT", LTYPE2, ATRAPT,
627 "TRAPV", LTYPE2, ATRAPV,
628 "TRAPVC", LTYPE2, ATRAPVC,
629 "TRAPVS", LTYPE2, ATRAPVS,
630 "TSTB", LTYPE3, ATSTB,
631 "TSTL", LTYPE3, ATSTL,
632 "TSTW", LTYPE3, ATSTW,
633 "UNLK", LTYPE3, AUNLK,
634 "UNPK", LTYPE1, AUNPK,
635 "WORD", LTYPE3, AWORD,
648 nullgen.type = D_NONE;
651 for(i=0; i<sizeof(nullgen.sval); i++)
653 nullgen.displace = 0;
654 nullgen.type = D_NONE;
662 for(i=0; i<NHASH; i++)
664 for(i=0; itab[i].name; i++) {
665 s = slookup(itab[i].name);
666 s->type = itab[i].type;
667 s->value = itab[i].value;
670 pathname = allocn(pathname, 0, 100);
671 if(mygetwd(pathname, 99) == 0) {
672 pathname = allocn(pathname, 100, 900);
673 if(mygetwd(pathname, 999) == 0)
674 strcpy(pathname, "/???");
698 zname(char *n, int t, int s)
701 Bputc(&obuf, ANAME); /* as */
702 Bputc(&obuf, ANAME>>8);
703 Bputc(&obuf, t); /* type */
704 Bputc(&obuf, s); /* sym */
730 if(a->type == D_FCONST)
733 if(a->type == D_SCONST)
740 if(t & T_FIELD) { /* implies field */
745 if(t & T_INDEX) { /* implies index, scale, displace */
756 if(t & T_OFFSET) { /* implies offset */
763 if(t & T_SYM) /* implies sym */
766 ieeedtod(&e, a->dval);
781 for(i=0; i<NSNAME; i++) {
794 outcode(int a, Gen2 *g2)
807 if(sf < 0 || sf >= NSYM)
809 t = g2->from.type & D_MASK;
813 zname(s->name, t, sym);
827 if(st < 0 || st >= NSYM)
829 t = g2->to.type & D_MASK;
833 zname(s->name, t, sym);
847 Bputc(&obuf, lineno);
848 Bputc(&obuf, lineno>>8);
849 Bputc(&obuf, lineno>>16);
850 Bputc(&obuf, lineno>>24);
851 zaddr(&g2->from, sf);
855 if(a != AGLOBL && a != ADATA)
869 for(h = hist; h != H; h = h->link) {
872 if(p && p[0] != c && h->offset == 0 && pathname){
873 /* on windows skip drive specifier in pathname */
874 if(systemtype(Windows) && pathname[1] == ':') {
878 } else if(pathname[0] == c){
888 n = 1; /* leading "/" */
889 *p = '/'; /* don't emit "\" on windows */
898 Bputc(&obuf, ANAME>>8);
899 Bputc(&obuf, D_FILE); /* type */
900 Bputc(&obuf, 1); /* sym */
911 g.offset = h->offset;
913 Bputc(&obuf, AHISTORY);
914 Bputc(&obuf, AHISTORY>>8);
915 Bputc(&obuf, h->line);
916 Bputc(&obuf, h->line>>8);
917 Bputc(&obuf, h->line>>16);
918 Bputc(&obuf, h->line>>24);
924 #include "../cc/lexbody"
925 #include "../cc/macbody"
926 #include "../cc/compat"