cgen.h

This source file is part of the SubC compiler, which is described in the book

Practical Compiler Construction.

You might prefer to download the compiler source code. It is in the public domain.

Code Generator Interface

This header lists the prototypes of the functions in the target description module, cg386.c.

/*
 *	NMH's Simple C Compiler, 2011,2012
 *	Code generator interface
 */

void cgadd(void);
void cgand(void);
void cgargc(void);
void cgbool(void);
void cgbrfalse(int n);
void cgbrtrue(int n);
void cgbss(char *s, int z);
void cgcall(char *s);
void cgcalr(void);
void cgcalswtch(void);
void cgcase(int v, int l);
void cgclear(void);
void cgdata(void);
void cgdec1ib(void);
void cgdec1iw(void);
void cgdec1pi(void);
void cgdec2ib(void);
void cgdec2iw(void);
void cgdec2pi(void);
void cgdecgb(char *s);
void cgdecgw(char *s);
void cgdeclb(int a);
void cgdeclw(int a);
void cgdecpg(char *s);
void cgdecpl(int a);
void cgdecps(int a);
void cgdecsb(int a);
void cgdecsw(int a);
void cgdefb(int v);
void cgdefc(int c);
void cgdefl(int v);
void cgdefp(int v);
void cgdefw(int v);
void cgdiv(void);
void cgentry(void);
void cgeq(void);
void cgexit(void);
void cgge(void);
void cggt(void);
void cginc1ib(void);
void cginc1iw(void);
void cginc1pi(void);
void cginc2ib(void);
void cginc2iw(void);
void cginc2pi(void);
void cgincgb(char *s);
void cgincgw(char *s);
void cginclb(int a);
void cginclw(int a);
void cgincpg(char *s);
void cgincpl(int a);
void cgincps(int a);
void cgincsb(int a);
void cgincsw(int a);
void cgindb(void);
void cgindw(void);
void cginitlw(int v, int a);
void cgior(void);
void cgjump(int n);
void cgldga(char *s);
void cgldgb(char *s);
void cgldgw(char *s);
void cgldinc(void);
void cgldla(int n);
void cgldlab(int id);
void cgldlb(int n);
void cgldlw(int n);
void cgldsa(int n);
void cgldsb(int n);
void cgldsw(int n);
void cgldswtch(int n);
void cgle(void);
void cglit(int v);
void cglognot(void);
void cglt(void);
void cgmod(void);
void cgmul(void);
void cgne(void);
void cgneg(void);
void cgnot(void);
void cgpop2(void);
void cgpopptr(void);
void cgpostlude(void);
void cgprelude(void);
void cgpublic(char *s);
void cgpush(void);
void cgpushlit(int n);
void cgscale(void);
void cgscale2(void);
void cgshl(void);
void cgshr(void);
void cgstack(int n);
void cgstorgb(char *s);
void cgstorgw(char *s);
void cgstorib(void);
void cgstoriw(void);
void cgstorlb(int n);
void cgstorlw(int n);
void cgstorsb(int n);
void cgstorsw(int n);
void cgsub(void);
void cgswap(void);
void cgtext(void);
void cgunscale(void);
void cgxor(void);

contact