void list_var(SYM *sp, int i) { TypeArray *ta; int j; for(j = i; j; --j) lfs.printf(" "); if (sp->name->length()== 0) lfs.printf("%-10s =%06x ","<unnamed>",(unsigned int)sp->value.u); else { lfs.printf("%-10s =%06x",(char *)sp->name->c_str(),(unsigned int)sp->value.u); if (sp->tp) if (sp->tp->bit_width != -1) lfs.printf(" %d %d",sp->tp->bit_offset,sp->tp->bit_width); } // if (sp->IsPascal) ofs.printf("\tpascal "); if( sp->storage_class == sc_external) ofs.printf("\textern\t%s\n",(char *)sp->name->c_str()); else if( sp->storage_class == sc_global ) ofs.printf(";\tglobal\t%s\n",(char *)sp->name->c_str()); put_typedef(sp->storage_class==sc_typedef); put_sc(sp->storage_class); put_ty(sp->tp); lfs.printf("\n"); if(sp->tp == 0) return; if (sp->tp) { if (sp->tp->type==bt_ifunc || sp->tp->type==bt_func) { lfs.printf("\t\tParameters:\n\t\t\t"); ta = sp->GetProtoTypes(); ta->Print(&lfs); if (ta) delete ta; lfs.printf("Stack Space:\n\t\t"); lfs.printf("Argbot: %d\n\t\t", sp->argbot); lfs.printf("Tmpbot: %d\n\t\t", sp->tempbot); lfs.printf("Stkspc: %d\n\t\t", sp->stkspace); } } if (sp->tp) { if((sp->tp->type == bt_struct || sp->tp->type == bt_union || sp->tp->type==bt_class) && sp->storage_class == sc_type) ListTable(&(sp->tp->lst),i+1); } }
void list_var(SYM *sp, int i) { int j; for(j = i; j; --j) fprintf(list," "); if (sp->name == NULL) fprintf(list,"%-10s =%06x ","<unnamed>",sp->value.u); else fprintf(list,"%-10s =%06x ",sp->name,sp->value.u); if( sp->storage_class == sc_external) fprintf(output,"\textern\t%s\n",sp->name); else if( sp->storage_class == sc_global ) fprintf(output,";\tglobal\t%s\n",sp->name); put_typedef(sp->storage_class==sc_typedef); put_sc(sp->storage_class); put_ty(sp->tp); fprintf(list,"\n"); if(sp->tp == 0) return; if((sp->tp->type == bt_struct || sp->tp->type == bt_union) && sp->storage_class == sc_type) ListTable(&(sp->tp->lst),i+1); }
/* List a variable */ void list_var(SYM *sp, int i) { int j; long val; if (!prm_listfile) return ; if (sp->dontlist) return; if (sp->tp->type == bt_defunc) { sp = sp->tp->lst.head; while (sp) { list_var(sp, 0); sp = sp->next; } return ; } for (j = i; j; --j) fprintf(listFile, " "); if ((sp->storage_class == sc_auto || sp->storage_class == sc_autoreg) && !sp->inreg) val = (long)getautoval(sp->value.i); else if (sp->storage_class == sc_static || sp->storage_class == sc_global) val = sp->offset; else val = sp->value.u; fprintf(listFile,"Identifier: %s\n ", unmangledname(sp->name)); for (j = i; j; --j) fprintf(listFile, " "); if (sp->inreg) { fprintf(listFile,"Register: %-3s ", registers[( - val) & 255]); } else fprintf(listFile,"Offset: %08X ", val); fprintf(listFile,"Storage: "); if (sp->tp->type == bt_ifunc) if (sp->value.classdata.cppflags &PF_INLINE) fprintf(listFile,"%-7s","inline"); else fprintf(listFile,"%-7s","code"); else if (sp->storage_class == sc_auto) if (sp->inreg) fprintf(listFile,"%-7s","reg"); else fprintf(listFile,"%-7s","stack"); else if (sp->storage_class == sc_global || sp->storage_class == sc_static) if ((sp->tp->cflags &DF_CONST) && !(sp->tp->cflags &DF_VOL)) fprintf(listFile,"%-7s","const"); else if (sp->init) fprintf(listFile,"%-7s","data"); else fprintf(listFile,"%-7s","bss"); else if (sp->storage_class == sc_const) fprintf(listFile,"%-7s","inline"); else fprintf(listFile,"%-7s","none"); put_sc(sp->storage_class); put_ty(sp->tp); fprintf(listFile, "\n"); if (sp->tp == 0) return ; if (isstructured(sp->tp) && sp->storage_class == sc_type) list_table(&(sp->tp->lst), i + 1); }
/* List a variable */ void list_var(SYMBOL *sp, int i) { int j; long val; if (!cparams.prm_listfile) return ; if (sp->dontlist) return; if (sp->tp->type == bt_aggregate) { HASHREC *hr = sp->tp->syms->table[0]; while (hr) { sp = (SYMBOL *)hr->p; list_var(sp, 0); hr = hr->next; } return ; } for (j = i; j; --j) fprintf(listFile, " "); if (sp->storage_class == sc_auto && !sp->regmode) val = (long)getautoval(sp->offset); else val = sp->value.u; fprintf(listFile,"Identifier: %s\n ", unmangledname(sp->name)); for (j = i; j; --j) fprintf(listFile, " "); if (sp->regmode == 1) { fprintf(listFile,"Register: %-3s& ",lookupRegName((-sp->offset) & 255)); } else if (sp->regmode == 2) { fprintf(listFile,"Register: %-3s ",lookupRegName((-sp->offset) & 255)); } else fprintf(listFile,"Offset: %08lX ", val); fprintf(listFile,"Storage: "); if (sp->tp->type == bt_ifunc) if (sp->isInline && !sp->noinline) fprintf(listFile,"%-7s","inline"); else fprintf(listFile,"%-7s","code"); else if (sp->storage_class == sc_auto) if (sp->regmode) fprintf(listFile,"%-7s","reg"); else fprintf(listFile,"%-7s","stack"); else if (sp->storage_class == sc_global || sp->storage_class == sc_static || sp->storage_class == sc_localstatic) if (isconst(sp->tp)) fprintf(listFile,"%-7s","const"); else if (sp->init) fprintf(listFile,"%-7s","data"); else fprintf(listFile,"%-7s","bss"); else if (sp->storage_class == sc_constant || sp->storage_class == sc_enumconstant) fprintf(listFile,"%-7s","constant"); else fprintf(listFile,"%-7s","none"); put_sc(sp->storage_class); put_ty(sp->tp); fprintf(listFile, "\n"); if (sp->tp == 0) return ; if (isstructured(sp->tp) && sp->storage_class == sc_type) list_table(sp->tp->syms, i + 1); }