OpenCores
URL https://opencores.org/ocsvn/raptor64/raptor64/trunk

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [software/] [c64/] [source/] [Cglbdec.h] - Blame information for rev 51

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 37 robfinch
/*
2
 *      68000 C compiler
3
 *
4
 *      Copyright 1984, 1985, 1986 Matthew Brandt.
5
 *  all commercial rights reserved.
6
 *
7
 *      This compiler is intended as an instructive tool for personal use. Any
8
 *      use for profit without the written consent of the author is prohibited.
9
 *
10
 *      This compiler may be distributed freely for non-commercial use as long
11
 *      as this notice stays intact. Please forward any enhancements or questions
12
 *      to:
13
 *
14
 *              Matthew Brandt
15
 *              Box 920337
16
 *              Norcross, Ga 30092
17
 */
18
 
19
/*      global ParseSpecifierarations     */
20
 
21
extern FILE             *input,
22
                        *list,
23
                        *output;
24 51 robfinch
extern FILE *outputG;
25
extern int incldepth;
26 37 robfinch
extern int              lineno;
27
extern int              nextlabel;
28
extern int              lastch;
29
extern int              lastst;
30
extern char             lastid[33];
31
extern char             laststr[MAX_STLP1];
32
extern __int64  ival;
33
extern double           rval;
34
 
35
extern TABLE            gsyms[257],
36
                        lsyms;
37
extern SYM              *lasthead;
38
extern struct slit      *strtab;
39
extern int              lc_static;
40
extern int              lc_auto;
41
extern struct snode     *bodyptr;       /* parse tree for function */
42
extern int              global_flag;
43
extern TABLE            defsyms;
44
extern int              save_mask;      /* register save mask */
45
extern int uctran_off;
46
extern int isPascal;
47
extern int isOscall;
48
extern int isInterrupt;
49
extern int isNocall;
50
extern int asmblock;
51
extern int optimize;
52
extern int exceptions;
53
extern SYM *currentFn;
54
 
55
extern void error(int n);
56
extern void needpunc(enum e_sym p);
57
// Memmgt.c
58
extern char *xalloc(int);
59
extern SYM *allocSYM();
60
extern TYP *allocTYP();
61
extern AMODE *allocAmode();
62
 
63
// NextToken.c
64
extern void initsym();
65
extern void NextToken();
66
extern int getch();
67
extern int isspace(char c);
68
extern void getbase(b);
69
extern void SkipSpaces();
70
 
71
// Stmt.c
72
extern struct snode *ParseCompoundStatement();
73
 
74
extern void GenerateDiadic(int op, int len, struct amode *ap1,struct amode *ap2);
75
// Symbol.c
76
extern SYM *gsearch(char *na);
77
extern SYM *search(char *na,SYM *thead);
78
extern void insert(SYM* sp, TABLE *table);
79
 
80
extern char *litlate(char *);
81
// Decl.c
82
extern void dodecl(int defclass);
83
extern void ParseParameterDeclarations(int);
84
extern void ParseAutoDeclarations();
85
extern void ParseSpecifier(TABLE *table);
86
extern void ParseDeclarationPrefix();
87
extern void ParseStructDeclaration(int);
88
extern void ParseEnumerationList(TABLE *table);
89
 
90
extern void initstack();
91
extern int getline(int listflag);
92
 
93
// Init.c
94
extern void doinit(SYM *sp);
95
// Func.c
96
extern void funcbody(SYM *sp);
97
// Intexpr.c
98 51 robfinch
extern __int64 GetIntegerExpression();
99 37 robfinch
// Expr.c
100
extern ENODE *makenode(int nt, ENODE *v1, ENODE *v2);
101
extern ENODE *makeinode(int nt, __int64 v1);
102
extern TYP *expression(struct enode **node);
103
extern int IsLValue(struct enode *node);
104
// Optimize.c
105
extern void opt4(struct enode **node);
106
// GenerateStatement.c
107
extern void GenerateStatement(struct snode *stmt);
108
extern void GenerateFunction(struct snode *stmt);
109
extern void GenerateIntoff(struct snode *stmt);
110
extern void GenerateInton(struct snode *stmt);
111
extern void GenerateStop(struct snode *stmt);
112
extern void GenerateAsm(struct snode *stmt);
113
extern void GenerateFirstcall(struct snode *stmt);
114
extern void gen_regrestore();
115
extern AMODE *make_direct(__int64 i);
116
// Outcode.c
117
extern void GenerateByte(int val);
118
extern void GenerateChar(int val);
119
extern void genhalf(int val);
120
extern void GenerateWord(__int64 val);
121 51 robfinch
extern void GenerateLong(__int64 val);
122 37 robfinch
extern void genstorage(int nbytes);
123
extern void GenerateReference(SYM *sp,int offset);
124
extern void GenerateLabelReference(int n);
125
extern void gen_strlab(char *s);
126
extern void dumplits();
127
extern int  stringlit(char *s);
128
extern void nl();
129
extern void cseg();
130
extern void dseg();
131
extern void put_code(int op, int len,AMODE *aps, AMODE *apd, AMODE *);
132
extern void put_label(int lab);
133
// Peepgen.c
134
extern void flush_peep();
135
extern void GenerateLabel(int labno);
136
// Gencode.c
137
extern AMODE *make_label(__int64 lab);
138
extern AMODE *make_immed(__int64);
139
extern AMODE *make_indirect(int i);
140
extern AMODE *make_offset(struct enode *node);
141
extern void swap_nodes(struct enode *node);
142
extern int isshort(struct enode *node);
143
// IdentifyKeyword.c
144
extern int IdentifyKeyword();
145
// Preproc.c
146
extern int preprocess();
147
// CodeGenerator.c
148
extern AMODE *make_indirect(int i);
149
extern AMODE *make_indexed(__int64 o, int i);
150
extern void GenerateFalseJump(struct enode *node,int label);
151 51 robfinch
extern char *GetNamespace();
152
extern char nmspace[20][100];
153
enum e_sg { noseg, codeseg, dataseg, bssseg, idataseg };
154 37 robfinch
 
155


powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.