1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-27 09:18:58 +00:00
Files
PDP-10.its/src/c/c3.h
Lars Brinkhoff aec62f3117 Edit SAIL files to be like the originals from ITS.
Rename according to SAIL file C.LIB[C,SYS].  Fix E stuff and remove
trailing ^C and ^@s.
2018-10-30 08:36:56 +01:00

102 lines
2.2 KiB
C

/*
C COMPILER
Phase C: Code Generator
Insert File
Copyright (c) 1977 by Alan Snyder
*/
/* types */
struct _dref {int drbase, droffset;};
struct _loc {int flag, word;};
struct _oploc {struct _loc xloc [3]; int clobber;};
struct _enode {
int op;
type etype;
struct _dref edref;
char lvalue, degree, saved;
struct _enode *ep1, *ep2;
};
struct _econst {
int op;
type etype;
struct _dref edref;
char lvalue, degree, saved;
int eval;
};
struct _eidn {
int op;
type etype;
struct _dref edref;
char lvalue, degree, saved;
int eclass, eoffset;
};
# define dref struct _dref
# define loc struct _loc
# define oploc struct _oploc
# define enode struct _enode
# define econst struct _econst
# define eidn struct _eidn
/* machine description tables */
extern oploc xoploc[];
extern int tsize[], talign[], calign[], retreg[], tpoint[],
spoint[], trdt[], prdt[], conf[], rtopp[], rtopl[],
mactab[], opreg[], opmem[], (*off_ok[])(), ntype,
nmem, nac, npc, nreg, flt_hack;
/* code generator variables defined in C31 */
extern enode acore[], *acorp;
extern int lc_node, flc_node, *core, *corep, cbn, nfunc, lineno,
exprlev, ttxlev, cur_op, temploc, autoloc, aquote,
framesize, objmode, f_error, argops,
f_mac, f_node, fidn, ntw[], eof_node, aflag, ciln,
int_size, opdope[], adope[], allreg[], allmem[],
anywhere[];
extern char *fn_error, *fn_node, *fn_typtab, *options,
*fn_mac, type_node[], nodelen[], opbop[];
extern type ftype;
/* functions */
enode *cgassign(), *cgcall(), *cgcomma(), *cgexpr(), *cgfloat(),
*cgidn(), *cgindirect(), *cgint(), *cglseq(), *cgmove(),
*cgop(), *cgqmark(), *cgstring(), *conv(), *convd(),
*convert(), *convx(), *e_alloc(), *intcon(), *jumpval(),
*mkenode(), *mmove(), *opt(), *taddr(), *telist(), *tfarg(),
*texpr(), *tpadd(), *tpcomp(), *tpsub(), *tptrop(), *ttexpr(),
*txidn(), *txinc(), *txpr2(), *txpr3();
int *elist(), *ro2p();
oploc *choose();
type mkarray();
type mkptr();
type to2p();
/* special type values */
extern type TCHAR;
extern type TINT;
extern type TFLOAT;
extern type TDOUBLE;
extern type TLONG;
extern type TUNSIGNED;
extern type TUNDEF;
extern type TPCHAR;
extern type TACHAR;
extern type TFINT;