diff options
Diffstat (limited to 'utils/1l/l.h')
| -rw-r--r-- | utils/1l/l.h | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/utils/1l/l.h b/utils/1l/l.h deleted file mode 100644 index de8d48ff..00000000 --- a/utils/1l/l.h +++ /dev/null @@ -1,268 +0,0 @@ -#include <lib9.h> -#include <bio.h> -#include "../2c/2.out.h" - -#ifndef EXTERN -#define EXTERN extern -#endif - -#define P ((Prog*)0) -#define S ((Sym*)0) -#define TNAME (curtext?curtext->from.sym->name:noname) -#define CPUT(c)\ - { *cbp++ = c;\ - if(--cbc <= 0)\ - cflush(); } - -typedef struct Adr Adr; -typedef struct Prog Prog; -typedef struct Sym Sym; -typedef struct Auto Auto; -typedef struct Optab Optab; - -struct Adr -{ - short type; - uchar field; - union - { - struct - { - long u0displace; - long u0offset; - } s0; - char u0scon[8]; - Prog *u0cond; /* not used, but should be D_BRANCH */ - Ieee u0ieee; - } u0; - union - { - Auto* u1autom; - Sym* u1sym; - } u1; -}; - -#define displace u0.s0.u0displace -#define offset u0.s0.u0offset -#define scon u0.u0scon -#define cond u0.u0cond -#define ieee u0.u0ieee - -#define autom u1.u1autom -#define sym u1.u1sym - -struct Prog -{ - Adr from; - Adr to; - union - { - long u0stkoff; - Prog *u0forwd; - } u0; - Prog* link; - Prog* pcond; /* work on this */ - long pc; - long line; - short as; - uchar mark; /* work on these */ - uchar back; -}; - -#define stkoff u0.u0stkoff -#define forwd u0.u0forwd - -struct Auto -{ - Sym* asym; - Auto* link; - long aoffset; - short type; -}; -struct Sym -{ - char *name; - short type; - short version; - short become; - short frame; - long value; - Sym* link; -}; -struct Optab -{ - short as; - short fas; - short srcsp; - short dstsp; - ushort optype; - ushort opcode0; - ushort opcode1; - ushort opcode2; - ushort opcode3; -}; - -enum -{ - STEXT = 1, - SDATA, - SBSS, - SDATA1, - SXREF, - SAUTO, - SPARAM, - SFILE, - NHASH = 10007, - NHUNK = 100000, - MINSIZ = 4, - STRINGSZ = 200, - MAXIO = 8192, - MAXHIST = 20, /* limit of path elements for history symbols */ - A6OFFSET = 32766, -}; - -EXTERN union -{ - struct - { - char obuf[MAXIO]; /* output buffer */ - uchar ibuf[MAXIO]; /* input buffer */ - } u; - char dbuf[1]; -} buf; - -#define cbuf u.obuf -#define xbuf u.ibuf - -#pragma varargck type "A" int -#pragma varargck type "D" Adr* -#pragma varargck type "P" Prog* -#pragma varargck type "R" int -#pragma varargck type "S" char* - -EXTERN long HEADR; -EXTERN long HEADTYPE; -EXTERN long INITDAT; -EXTERN long INITRND; -EXTERN long INITTEXT; -EXTERN char* INITENTRY; /* entry point */ -EXTERN Biobuf bso; -EXTERN long bsssize; -EXTERN long casepc; -EXTERN int cbc; -EXTERN char* cbp; -EXTERN int cout; -EXTERN Auto* curauto; -EXTERN Auto* curhist; -EXTERN Prog* curp; -EXTERN Prog* curtext; -EXTERN Prog* datap; -EXTERN long datsize; -EXTERN char debug[128]; -EXTERN Prog* etextp; -EXTERN Prog* firstp; -EXTERN Prog* prog_divsl; -EXTERN Prog* prog_divul; -EXTERN Prog* prog_mull; -EXTERN Prog* prog_ccr; -EXTERN char fnuxi8[8]; -EXTERN char gnuxi8[8]; -EXTERN Sym* hash[NHASH]; -EXTERN Sym* histfrog[MAXHIST]; -EXTERN int histfrogp; -EXTERN int histgen; -EXTERN char* library[50]; -EXTERN char* libraryobj[50]; -EXTERN int libraryp; -EXTERN int xrefresolv; -EXTERN char* hunk; -EXTERN char inuxi1[1]; -EXTERN char inuxi2[2]; -EXTERN char inuxi4[4]; -EXTERN Prog* lastp; -EXTERN long lcsize; -EXTERN long relocsize; -EXTERN long ndata; -EXTERN int nerrors; -EXTERN long nhunk; -EXTERN long nsymbol; -EXTERN char* noname; -EXTERN short* op; -EXTERN char* outfile; -EXTERN long pc; -EXTERN char simple[I_MASK]; -EXTERN char special[I_MASK]; -EXTERN long spsize; -EXTERN Sym* symlist; -EXTERN long symsize; -EXTERN Prog* textp; -EXTERN long textsize; -EXTERN long thunk; -EXTERN int version; -EXTERN Prog zprg; - -extern Optab optab[]; -extern char mmsize[]; -extern char* anames[]; - -int Aconv(Fmt*); -int Dconv(Fmt*); -int Pconv(Fmt*); -int Rconv(Fmt*); -int Sconv(Fmt*); -int Xconv(Fmt*); -void addhist(long, int); -int andsize(Prog*, Adr*); -void asmb(void); -int asmea(Prog*, Adr*); -void asmins(Prog*); -void asmlc(void); -void asmsp(void); -void asmsym(void); -void asmreloc(void); -long atolwhex(char*); -Prog* brchain(Prog*); -Prog* brloop(Prog*); -void cflush(void); -Prog* copyp(Prog*); -double cputime(void); -void datblk(long, long); -void diag(char*, ...); -void dodata(void); -void doprof1(void); -void doprof2(void); -void dostkoff(void); -long entryvalue(void); -void errorexit(void); -int find1(long, int); -int find2(long, int); -void follow(void); -void gethunk(void); -int gnuxi(Ieee*, int, int); -void histtoauto(void); -double ieeedtod(Ieee*); -long ieeedtof(Ieee*); -void initmuldiv1(void); -void initmuldiv2(void); -void ldobj(int, long, char*); -void loadlib(void); -void listinit(void); -Sym* lookup(char*, int); -void lput(long); -void main(int, char*[]); -void mkfwd(void); -void* mysbrk(ulong); -void nuxiinit(void); -void objfile(char*); -void patch(void); -Prog* prg(void); -Prog* nprg(Prog*); -int relinv(int); -long reuse(Prog*, Sym*); -long rnd(long, long); -void s16put(char*); -void span(void); -void undef(void); -void xdefine(char*, int, long); -void xfol(Prog*); -int zaddr(uchar*, Adr*, Sym*[]); |
