1
0
mirror of https://github.com/PDP-10/PCC20.git synced 2026-01-13 23:26:39 +00:00
2018-10-25 11:25:56 +02:00

102 lines
2.2 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
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;