clang-format on arm-gen.c and tcccoff.c.

They now mostly follow the same coding style as everything else.
This commit is contained in:
gus knight 2015-07-27 14:26:15 -04:00
parent 9e1b6bf517
commit 694d0fdade
2 changed files with 2082 additions and 2067 deletions

1339
arm-gen.c

File diff suppressed because it is too large Load diff

168
tcccoff.c
View file

@ -38,14 +38,14 @@ int EndAddress[MAX_FUNCS];
int LastLineNo[MAX_FUNCS];
int FuncEntries[MAX_FUNCS];
int OutputTheSection(Section * sect);
short int GetCoffFlags(const char *s);
int OutputTheSection(Section* sect);
short int GetCoffFlags(const char* s);
void SortSymbolTable(void);
Section *FindSection(TCCState * s1, const char *sname);
Section* FindSection(TCCState* s1, const char* sname);
int C67_main_entry_point;
int FindCoffSymbolIndex(const char *func_name);
int FindCoffSymbolIndex(const char* func_name);
int nb_syms;
typedef struct {
@ -74,15 +74,15 @@ typedef struct {
unsigned short dummy4;
} AUXEF;
ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
ST_FUNC int tcc_output_coff(TCCState* s1, FILE* f)
{
Section *tcc_sect;
SCNHDR *coff_sec;
Section* tcc_sect;
SCNHDR* coff_sec;
int file_pointer;
char *Coff_str_table, *pCoff_str_table;
char* Coff_str_table, *pCoff_str_table;
int CoffTextSectionNo, coff_nb_syms;
FILHDR file_hdr; /* FILE HEADER STRUCTURE */
Section *stext, *sdata, *sbss;
Section* stext, *sdata, *sbss;
int i, NSectionsToOutput = 0;
Coff_str_table = pCoff_str_table = NULL;
@ -102,14 +102,14 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
o_filehdr.magic = 0x0108; /* see magic.h */
o_filehdr.vstamp = 0x0190; /* version stamp */
o_filehdr.tsize = stext->data_offset; /* text size in bytes, padded to FW bdry */
o_filehdr.tsize =
stext->data_offset; /* text size in bytes, padded to FW bdry */
o_filehdr.dsize = sdata->data_offset; /* initialized data " " */
o_filehdr.bsize = sbss->data_offset; /* uninitialized data " " */
o_filehdr.entrypt = C67_main_entry_point; /* entry pt. */
o_filehdr.text_start = stext->sh_addr; /* base of text used for this file */
o_filehdr.data_start = sdata->sh_addr; /* base of data used for this file */
// create all the section headers
file_pointer = FILHSZ + sizeof(AOUTHDR);
@ -124,7 +124,9 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
NSectionsToOutput++;
if (CoffTextSectionNo == -1 && tcc_sect == stext)
CoffTextSectionNo = NSectionsToOutput; // rem which coff sect number the .text sect is
CoffTextSectionNo = NSectionsToOutput; // rem which coff sect
// number the .text sect
// is
strcpy(coff_sec->s_name, tcc_sect->name); /* section name */
@ -148,14 +150,14 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
// now loop through and determine file pointer locations
// for the raw data
for (i = 1; i < s1->nb_sections; i++) {
coff_sec = &section_header[i];
tcc_sect = s1->sections[i];
if (OutputTheSection(tcc_sect)) {
// put raw data
coff_sec->s_scnptr = file_pointer; /* file ptr to raw data for section */
coff_sec->s_scnptr =
file_pointer; /* file ptr to raw data for section */
file_pointer += coff_sec->s_size;
}
}
@ -192,28 +194,25 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
// also find association between source file name and function
// so we can sort the symbol table
Stab_Sym *sym, *sym_end;
Stab_Sym* sym, *sym_end;
char func_name[MAX_FUNC_NAME_LENGTH],
last_func_name[MAX_FUNC_NAME_LENGTH];
unsigned long func_addr, last_pc, pc;
const char *incl_files[INCLUDE_STACK_SIZE];
const char* incl_files[INCLUDE_STACK_SIZE];
int incl_index, len, last_line_num;
const char *str, *p;
const char* str, *p;
coff_sec->s_lnnoptr = file_pointer; /* file ptr to linno */
func_name[0] = '\0';
func_addr = 0;
incl_index = 0;
last_func_name[0] = '\0';
last_pc = 0xffffffff;
last_line_num = 1;
sym = (Stab_Sym *) stab_section->data + 1;
sym = (Stab_Sym*)stab_section->data + 1;
sym_end =
(Stab_Sym *) (stab_section->data +
stab_section->data_offset);
(Stab_Sym*)(stab_section->data + stab_section->data_offset);
nFuncs = 0;
while (sym < sym_end) {
@ -231,8 +230,7 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
func_addr = 0;
EndAddress[nFuncs] = pc;
FuncEntries[nFuncs] =
(file_pointer -
LineNoFilePtr[nFuncs]) / LINESZ - 1;
(file_pointer - LineNoFilePtr[nFuncs]) / LINESZ - 1;
LastLineNo[nFuncs++] = last_line_num + 1;
} else {
// beginning of function
@ -241,9 +239,7 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
coff_sec->s_nlnno++;
file_pointer += LINESZ;
str =
(const char *) stabstr_section->data +
sym->n_strx;
str = (const char*)stabstr_section->data + sym->n_strx;
p = strchr(str, ':');
if (!p) {
@ -281,8 +277,7 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
break;
/* include files */
case N_BINCL:
str =
(const char *) stabstr_section->data + sym->n_strx;
str = (const char*)stabstr_section->data + sym->n_strx;
add_incl:
if (incl_index < INCLUDE_STACK_SIZE) {
incl_files[incl_index++] = str;
@ -296,9 +291,7 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
if (sym->n_strx == 0) {
incl_index = 0; /* end of translation unit */
} else {
str =
(const char *) stabstr_section->data +
sym->n_strx;
str = (const char*)stabstr_section->data + sym->n_strx;
/* do not add path */
len = strlen(str);
if (len > 0 && str[len - 1] != '/')
@ -309,7 +302,6 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
sym++;
}
}
}
file_hdr.f_symptr = file_pointer; /* file pointer to symtab */
@ -323,7 +315,6 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
// OK now we are all set to write the file
fwrite(&file_hdr, FILHSZ, 1, f);
fwrite(&o_filehdr, sizeof(o_filehdr), 1, f);
@ -361,7 +352,6 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
}
}
// group the symbols in order of filename, func1, func2, etc
// finally global symbols
@ -377,13 +367,12 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
if (s1->do_debug && tcc_sect == stext) {
// count how many line nos data
Stab_Sym *sym, *sym_end;
Stab_Sym* sym, *sym_end;
char func_name[128], last_func_name[128];
unsigned long func_addr, last_pc, pc;
const char *incl_files[INCLUDE_STACK_SIZE];
const char* incl_files[INCLUDE_STACK_SIZE];
int incl_index, len, last_line_num;
const char *str, *p;
const char* str, *p;
LINENO CoffLineNo;
@ -393,10 +382,9 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
last_func_name[0] = '\0';
last_pc = 0;
last_line_num = 1;
sym = (Stab_Sym *) stab_section->data + 1;
sym = (Stab_Sym*)stab_section->data + 1;
sym_end =
(Stab_Sym *) (stab_section->data +
stab_section->data_offset);
(Stab_Sym*)(stab_section->data + stab_section->data_offset);
while (sym < sym_end) {
switch (sym->n_type) {
@ -415,10 +403,7 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
} else {
// beginning of function
str =
(const char *) stabstr_section->data +
sym->n_strx;
str = (const char*)stabstr_section->data + sym->n_strx;
p = strchr(str, ':');
if (!p) {
@ -448,7 +433,6 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
case N_SLINE:
pc = sym->n_value + func_addr;
/* XXX: slow! */
strcpy(last_func_name, func_name);
@ -471,8 +455,7 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
/* include files */
case N_BINCL:
str =
(const char *) stabstr_section->data + sym->n_strx;
str = (const char*)stabstr_section->data + sym->n_strx;
add_incl2:
if (incl_index < INCLUDE_STACK_SIZE) {
incl_files[incl_index++] = str;
@ -486,9 +469,7 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
if (sym->n_strx == 0) {
incl_index = 0; /* end of translation unit */
} else {
str =
(const char *) stabstr_section->data +
sym->n_strx;
str = (const char*)stabstr_section->data + sym->n_strx;
/* do not add path */
len = strlen(str);
if (len > 0 && str[len - 1] != '/')
@ -509,17 +490,16 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
AUXBF auxbf;
AUXEF auxef;
int i;
Elf32_Sym *p;
const char *name;
Elf32_Sym* p;
const char* name;
int nstr;
int n = 0;
Coff_str_table = (char *) tcc_malloc(MAX_STR_TABLE);
Coff_str_table = (char*)tcc_malloc(MAX_STR_TABLE);
pCoff_str_table = Coff_str_table;
nstr = 0;
p = (Elf32_Sym *) symtab_section->data;
p = (Elf32_Sym*)symtab_section->data;
for (i = 0; i < nb_syms; i++) {
@ -536,8 +516,7 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
tcc_error("String table too large");
csym._n._n_n._n_zeroes = 0;
csym._n._n_n._n_offset =
pCoff_str_table - Coff_str_table + 4;
csym._n._n_n._n_offset = pCoff_str_table - Coff_str_table + 4;
strcpy(pCoff_str_table, name);
pCoff_str_table += strlen(name) + 1; // skip over null
@ -648,7 +627,6 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
csym.n_sclass = C_LABEL;
}
csym.n_value = p->st_value;
csym.n_scnum = 2;
csym.n_numaux = 1;
@ -662,7 +640,6 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
fwrite(&auxfunc, 18, 1, f);
n++;
n++;
}
p++;
@ -685,21 +662,18 @@ ST_FUNC int tcc_output_coff(TCCState *s1, FILE *f)
return 0;
}
// group the symbols in order of filename, func1, func2, etc
// finally global symbols
void SortSymbolTable(void)
{
int i, j, k, n = 0;
Elf32_Sym *p, *p2, *NewTable;
char *name, *name2;
Elf32_Sym* p, *p2, *NewTable;
char* name, *name2;
NewTable = (Elf32_Sym *) tcc_malloc(nb_syms * sizeof(Elf32_Sym));
p = (Elf32_Sym *) symtab_section->data;
NewTable = (Elf32_Sym*)tcc_malloc(nb_syms * sizeof(Elf32_Sym));
p = (Elf32_Sym*)symtab_section->data;
// find a file symbol, copy it over
// then scan the whole symbol list and copy any function
@ -707,20 +681,19 @@ void SortSymbolTable(void)
for (i = 0; i < nb_syms; i++) {
if (p->st_info == 4) {
name = (char *) symtab_section->link->data + p->st_name;
name = (char*)symtab_section->link->data + p->st_name;
// this is a file symbol, copy it over
NewTable[n++] = *p;
p2 = (Elf32_Sym *) symtab_section->data;
p2 = (Elf32_Sym*)symtab_section->data;
for (j = 0; j < nb_syms; j++) {
if (p2->st_info == 0x12) {
// this is a func symbol
name2 =
(char *) symtab_section->link->data + p2->st_name;
name2 = (char*)symtab_section->link->data + p2->st_name;
// find the function data index
@ -730,7 +703,8 @@ void SortSymbolTable(void)
}
if (k >= nFuncs) {
tcc_error("debug (sort) info can't find function: %s", name2);
tcc_error("debug (sort) info can't find function: %s",
name2);
}
if (strcmp(AssociatedFile[k], name) == 0) {
@ -748,7 +722,7 @@ void SortSymbolTable(void)
// now all the filename and func symbols should have been copied over
// copy all the rest over (all except file and funcs)
p = (Elf32_Sym *) symtab_section->data;
p = (Elf32_Sym*)symtab_section->data;
for (i = 0; i < nb_syms; i++) {
if (p->st_info != 4 && p->st_info != 0x12) {
NewTable[n++] = *p;
@ -761,7 +735,7 @@ void SortSymbolTable(void)
// copy it all back
p = (Elf32_Sym *) symtab_section->data;
p = (Elf32_Sym*)symtab_section->data;
for (i = 0; i < nb_syms; i++) {
*p++ = NewTable[i];
}
@ -769,18 +743,17 @@ void SortSymbolTable(void)
tcc_free(NewTable);
}
int FindCoffSymbolIndex(const char *func_name)
int FindCoffSymbolIndex(const char* func_name)
{
int i, n = 0;
Elf32_Sym *p;
char *name;
Elf32_Sym* p;
char* name;
p = (Elf32_Sym *) symtab_section->data;
p = (Elf32_Sym*)symtab_section->data;
for (i = 0; i < nb_syms; i++) {
name = (char *) symtab_section->link->data + p->st_name;
name = (char*)symtab_section->link->data + p->st_name;
if (p->st_info == 4) {
// put a filename symbol
@ -814,9 +787,9 @@ int FindCoffSymbolIndex(const char *func_name)
return n; // total number of symbols
}
int OutputTheSection(Section * sect)
int OutputTheSection(Section* sect)
{
const char *s = sect->name;
const char* s = sect->name;
if (!strcmp(s, ".text"))
return 1;
@ -826,7 +799,7 @@ int OutputTheSection(Section * sect)
return 0;
}
short int GetCoffFlags(const char *s)
short int GetCoffFlags(const char* s)
{
if (!strcmp(s, ".text"))
return STYP_TEXT | STYP_DATA | STYP_ALIGN | 0x400;
@ -842,9 +815,9 @@ short int GetCoffFlags(const char *s)
return 0;
}
Section *FindSection(TCCState * s1, const char *sname)
Section* FindSection(TCCState* s1, const char* sname)
{
Section *s;
Section* s;
int i;
for (i = 1; i < s1->nb_sections; i++) {
@ -858,13 +831,13 @@ Section *FindSection(TCCState * s1, const char *sname)
return 0;
}
ST_FUNC int tcc_load_coff(TCCState * s1, int fd)
ST_FUNC int tcc_load_coff(TCCState* s1, int fd)
{
// tktk TokenSym *ts;
// tktk TokenSym *ts;
FILE *f;
FILE* f;
unsigned int str_size;
char *Coff_str_table, *name;
char* Coff_str_table, *name;
int i, k;
struct syment csym;
char name2[9];
@ -889,8 +862,7 @@ ST_FUNC int tcc_load_coff(TCCState * s1, int fd)
if (fread(&str_size, sizeof(int), 1, f) != 1)
tcc_error("error reading .out file for input");
Coff_str_table = (char *) tcc_malloc(str_size);
Coff_str_table = (char*)tcc_malloc(str_size);
if (fread(Coff_str_table, str_size - 4, 1, f) != 1)
tcc_error("error reading .out file for input");
@ -920,11 +892,15 @@ ST_FUNC int tcc_load_coff(TCCState * s1, int fd)
name = name2;
}
}
// if (strcmp("_DAC_Buffer",name)==0) // tktk
// name[0]=0;
// if (strcmp("_DAC_Buffer",name)==0) // tktk
// name[0]=0;
if (((csym.n_type & 0x30) == 0x20 && csym.n_sclass == 0x2) || ((csym.n_type & 0x30) == 0x30 && csym.n_sclass == 0x2) || (csym.n_type == 0x4 && csym.n_sclass == 0x2) || (csym.n_type == 0x8 && csym.n_sclass == 0x2) || // structures
(csym.n_type == 0x18 && csym.n_sclass == 0x2) || // pointer to structure
if (((csym.n_type & 0x30) == 0x20 && csym.n_sclass == 0x2) ||
((csym.n_type & 0x30) == 0x30 && csym.n_sclass == 0x2) ||
(csym.n_type == 0x4 && csym.n_sclass == 0x2) ||
(csym.n_type == 0x8 && csym.n_sclass == 0x2) || // structures
(csym.n_type == 0x18 &&
csym.n_sclass == 0x2) || // pointer to structure
(csym.n_type == 0x7 && csym.n_sclass == 0x2) || // doubles
(csym.n_type == 0x6 && csym.n_sclass == 0x2)) // floats
{