comparison leo-obj/tool/richsym.c @ 151:6fe08feee018

tiobjd disasm -g: line break after function locals
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Thu, 01 May 2014 00:23:18 +0000
parents df01a4f4c272
children 15743b40e03a
comparison
equal deleted inserted replaced
150:df01a4f4c272 151:6fe08feee018
424 return(-1); 424 return(-1);
425 } 425 }
426 return(0); 426 return(0);
427 } 427 }
428 428
429 void
430 richsym_function_locals(headsym) 429 richsym_function_locals(headsym)
431 struct internal_syment *headsym; 430 struct internal_syment *headsym;
432 { 431 {
433 unsigned n; 432 unsigned n, count = 0;
434 struct internal_syment *sym; 433 struct internal_syment *sym;
435 char classbuf[8]; 434 char classbuf[8];
436 435
437 for (n = headsym->number + 1; n < nsymtab; n++) { 436 for (n = headsym->number + 1; n < nsymtab; n++) {
438 sym = symtab[n]; 437 sym = symtab[n];
439 if (!sym) 438 if (!sym)
440 continue; 439 continue;
441 switch (sym->class) { 440 switch (sym->class) {
442 case C_REG: 441 case C_REG:
443 case C_REGPARM: 442 case C_REGPARM:
443 count++;
444 if (localsym_sanity_check(sym) < 0) 444 if (localsym_sanity_check(sym) < 0)
445 continue; 445 continue;
446 if (sym->value > 0xF) { 446 if (sym->value > 0xF) {
447 printf( 447 printf(
448 "; symbol #%u of class %s: value is not a valid register number\n", 448 "; symbol #%u of class %s: value is not a valid register number\n",
455 sym->value); 455 sym->value);
456 richsym_print_in_c("", sym, 0); 456 richsym_print_in_c("", sym, 0);
457 continue; 457 continue;
458 case C_ARG: 458 case C_ARG:
459 case C_AUTO: 459 case C_AUTO:
460 count++;
460 if (localsym_sanity_check(sym) < 0) 461 if (localsym_sanity_check(sym) < 0)
461 continue; 462 continue;
462 printf("; %s at 0x%x: ", 463 printf("; %s at 0x%x: ",
463 storage_class_to_string(sym->class, 0), 464 storage_class_to_string(sym->class, 0),
464 sym->value); 465 sym->value);
465 richsym_print_in_c("", sym, 0); 466 richsym_print_in_c("", sym, 0);
466 continue; 467 continue;
467 case C_FCN: 468 case C_FCN:
468 return; 469 return(count);
469 default: 470 default:
471 count++;
470 printf( 472 printf(
471 "; presumed local symbol #%u: unexpected class %s\n", 473 "; presumed local symbol #%u: unexpected class %s\n",
472 sym->number, 474 sym->number,
473 storage_class_to_string(sym->class, classbuf)); 475 storage_class_to_string(sym->class, classbuf));
474 return; 476 return(count);
475 } 477 }
476 } 478 }
477 } 479 return(count);
480 }