1 /* codegen.c */ 2 3 4 extern void DoLibHeader(void); 5 extern void outname(const char *sname, char pref); 6 extern int getloc(SYMBOL *sym, int off); 7 extern void putstk(LVALUE *lval); 8 extern void puttos(void); 9 extern void put2tos(void); 10 extern void immed(void); 11 extern void immedlit(int lab,int offs); 12 extern void lpush(void); 13 extern void llpush(void); 14 extern void zpush(void); 15 16 17 18 extern void zpop(void); 19 20 extern char dopref(SYMBOL *sym); 21 extern void callrts(char *sname); 22 extern int callstk(Type *type, int n, int isfarptr, int last_argument_size); 23 24 extern void defbyte(void); 25 extern void defstorage(void); 26 extern void defword(void); 27 extern void deflong(void); 28 extern void defmesg(void); 29 extern void point(void); 30 extern int modstk(int newsp, Kind save,int saveaf, int usebc); 31 extern void scale(Kind type, Type *tag); 32 33 34 extern void vlongconst(zdouble val); 35 extern void vlongconst_tostack(zdouble val); 36 extern void vllongconst_tostack(zdouble val); 37 extern void vllongconst(zdouble val); 38 extern void vconst(int64_t val); 39 extern void const2(int32_t val); 40 extern void GlobalPrefix(void); 41 extern void jumpc(int); 42 extern void jumpnc(int); 43 44 extern void jumpr(int); 45 extern void opjumpr(char *, int); 46 47 48 49 extern void function_appendix(SYMBOL *func); 50 51 52 extern int zcriticaloffset(void); 53 extern void zconvert_to_double(Kind from, Kind to, unsigned char isunsigned); 54 extern void zconvert_from_double(Kind from, Kind to, unsigned char isunsigned); 55 extern int push_function_argument_fnptr(Kind expr, Type *type, Type *functype, int push_sdccchar, int is_last_argument); 56 extern void reset_namespace(); 57 extern void zwiden_stack_to_long(LVALUE *lval); 58 extern void zwiden_stack_to_llong(LVALUE *lval); 59 extern void zconvert_stacked_to_double(Kind stacked_kind, Kind float_kind, unsigned char isunsigned, int operator_is_commutative); 60