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

Subversion Repositories raptor64

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

Go to most recent revision | 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
 
25
extern int              lineno;
26
extern int              nextlabel;
27
extern int              lastch;
28
extern int              lastst;
29
extern char             lastid[33];
30
extern char             laststr[MAX_STLP1];
31
extern __int64  ival;
32
extern double           rval;
33
 
34
extern TABLE            gsyms[257],
35
                        lsyms;
36
extern SYM              *lasthead;
37
extern struct slit      *strtab;
38
extern int              lc_static;
39
extern int              lc_auto;
40
extern struct snode     *bodyptr;       /* parse tree for function */
41
extern int              global_flag;
42
extern TABLE            defsyms;
43
extern int              save_mask;      /* register save mask */
44
extern int uctran_off;
45
extern int isPascal;
46
extern int isOscall;
47
extern int isInterrupt;
48
extern int isNocall;
49
extern int asmblock;
50
extern int optimize;
51
extern int exceptions;
52
extern SYM *currentFn;
53
 
54
extern void error(int n);
55
extern void needpunc(enum e_sym p);
56
// Memmgt.c
57
extern char *xalloc(int);
58
extern SYM *allocSYM();
59
extern TYP *allocTYP();
60
extern AMODE *allocAmode();
61
 
62
// NextToken.c
63
extern void initsym();
64
extern void NextToken();
65
extern int getch();
66
extern int isspace(char c);
67
extern void getbase(b);
68
extern void SkipSpaces();
69
 
70
// Stmt.c
71
extern struct snode *ParseCompoundStatement();
72
 
73
extern void GenerateDiadic(int op, int len, struct amode *ap1,struct amode *ap2);
74
// Symbol.c
75
extern SYM *gsearch(char *na);
76
extern SYM *search(char *na,SYM *thead);
77
extern void insert(SYM* sp, TABLE *table);
78
 
79
extern char *litlate(char *);
80
// Decl.c
81
extern void dodecl(int defclass);
82
extern void ParseParameterDeclarations(int);
83
extern void ParseAutoDeclarations();
84
extern void ParseSpecifier(TABLE *table);
85
extern void ParseDeclarationPrefix();
86
extern void ParseStructDeclaration(int);
87
extern void ParseEnumerationList(TABLE *table);
88
 
89
extern void initstack();
90
extern int getline(int listflag);
91
 
92
// Init.c
93
extern void doinit(SYM *sp);
94
// Func.c
95
extern void funcbody(SYM *sp);
96
// Intexpr.c
97
extern int GetIntegerExpression();
98
// Expr.c
99
extern ENODE *makenode(int nt, ENODE *v1, ENODE *v2);
100
extern ENODE *makeinode(int nt, __int64 v1);
101
extern TYP *expression(struct enode **node);
102
extern int IsLValue(struct enode *node);
103
// Optimize.c
104
extern void opt4(struct enode **node);
105
// GenerateStatement.c
106
extern void GenerateStatement(struct snode *stmt);
107
extern void GenerateFunction(struct snode *stmt);
108
extern void GenerateIntoff(struct snode *stmt);
109
extern void GenerateInton(struct snode *stmt);
110
extern void GenerateStop(struct snode *stmt);
111
extern void GenerateAsm(struct snode *stmt);
112
extern void GenerateFirstcall(struct snode *stmt);
113
extern void gen_regrestore();
114
extern AMODE *make_direct(__int64 i);
115
// Outcode.c
116
extern void GenerateByte(int val);
117
extern void GenerateChar(int val);
118
extern void genhalf(int val);
119
extern void GenerateWord(__int64 val);
120
extern void GenerateLong(int val);
121
extern void genstorage(int nbytes);
122
extern void GenerateReference(SYM *sp,int offset);
123
extern void GenerateLabelReference(int n);
124
extern void gen_strlab(char *s);
125
extern void dumplits();
126
extern int  stringlit(char *s);
127
extern void nl();
128
extern void cseg();
129
extern void dseg();
130
extern void put_code(int op, int len,AMODE *aps, AMODE *apd, AMODE *);
131
extern void put_label(int lab);
132
// Peepgen.c
133
extern void flush_peep();
134
extern void GenerateLabel(int labno);
135
// Gencode.c
136
extern AMODE *make_label(__int64 lab);
137
extern AMODE *make_immed(__int64);
138
extern AMODE *make_indirect(int i);
139
extern AMODE *make_offset(struct enode *node);
140
extern void swap_nodes(struct enode *node);
141
extern int isshort(struct enode *node);
142
// IdentifyKeyword.c
143
extern int IdentifyKeyword();
144
// Preproc.c
145
extern int preprocess();
146
// CodeGenerator.c
147
extern AMODE *make_indirect(int i);
148
extern AMODE *make_indexed(__int64 o, int i);
149
extern void GenerateFalseJump(struct enode *node,int label);
150
 
151


powered by: WebSVN 2.1.0

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