00001 /* Externally visible declarations for loc_tab, tmp_tab and args */ 00002 00003 char * flush_all_exprs(); /* Store all temporary values */ 00004 char * flush_all_except(); /* Same, but exclude a v. register */ 00005 char * flush_all_non_const(); /* exclude constant expressions */ 00006 char * flush_all_non_const_except(); 00007 /* exclude constants and the specified v. reg. */ 00008 char * flush_vr(); /* Store contents of a give v. register */ 00009 char * get_name(); /* Get temporary corr. to v. register */ 00010 char * get_expr(); /* Get expression evaluating to v.r. contents */ 00011 void add_vr(); /* Add an entry to v.r. table */ 00012 void rem_vr(); /* Remove an entry from the virtual reg. table */ 00013 void add_vr_def(); /* Add an expression for the value of a v.r. */ 00014 void rem_vr_def(); /* Remove expression and temporary for a v.r. */ 00015 # define add_undef_vr(vr_no) add_vr(vr_no, CS_NIL, 0); 00016 void init_tmps(); /* Initialize descriptors for predefined locs */ 00017 void reset_tmps(); /* Make sure that no temporaries are in use. */ 00018 char * par_name(); /* The name of the ith parameter */ 00019 char * tmp_name(); /* The name of the i'th temporary */ 00020 char * par_names(); /* Return a comma separated list of i par. names */ 00021 char * tmp_decls(); /* Declarations for n temporaries */ 00022 char * itos(); /* String rep of an integer */ 00023 char * rmcntrl(); /* Replace control characters by C escapes */ 00024 char * arg_list(); /* Generate list of n argument values */ 00025 void dead_tmp(); /* Add to list of dead temporaries */ 00026 void rem_tmps(); /* Free dead temporaries. */ 00027 00028 extern int max_tmp; /* Highest numbered temporary used */ 00029 # define ARG_FLAG 0x20000000 00030 # define ARGLOC(i) ((i) | ARG_FLAG) 00031 00032 # define is_param(c) (c == 'a') /* c is the first character of a parameter */ 00033 /* name. We assume is_arg is false of all */ 00034 /* other names. */