X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=sect.c;h=66219b6833bac65d9fd489b640076bb3900df352;hp=53ba02b85edd65aa786d444a82a985d7169014f2;hb=44301fed8a6d94673afa3aae3a8a0a76aebac6f7;hpb=d16b8ea0ee65b2ad901ca6b0624c07e6e4930cc4 diff --git a/sect.c b/sect.c index 53ba02b..66219b6 100644 --- a/sect.c +++ b/sect.c @@ -71,9 +71,7 @@ static char fusizoffs[] = { // void mksect(int sno, WORD attr) { - SECT * p; // Section pointer - - p = §[sno]; + SECT * p = §[sno]; p->scattr = attr; p->sloc = 0; p->scode = p->sfcode = NULL; @@ -125,13 +123,13 @@ void savsect(void) { SECT * p = §[cursect]; - p->scattr = scattr; // Bailout section vars + p->scattr = scattr; // Bailout section vars p->sloc = sloc; - if (scode != NULL) // Bailout code chunk + if (scode != NULL) // Bailout code chunk scode->ch_size = ch_size; - if (sfix != NULL) // Bailout fixup chunk + if (sfix != NULL) // Bailout fixup chunk sfix->ch_size = fchsize; } @@ -212,6 +210,7 @@ int fixtest(int sno, LONG loc) // int chcheck(LONG amt) { + DEBUG { printf("chcheck(%u)\n", amt); } // If in BSS section, no allocation required if (scattr & SBSS) return 0; @@ -219,12 +218,14 @@ int chcheck(LONG amt) if (!amt) amt = CH_THRESHOLD; + DEBUG { printf(" challoc=%i, ch_size=%i, diff=%i\n", challoc, ch_size, challoc-ch_size); } if ((int)(challoc - ch_size) >= (int)amt) return 0; if (amt < CH_CODE_SIZE) amt = CH_CODE_SIZE; + DEBUG { printf(" amt (adjusted)=%u\n", amt); } SECT * p = §[cursect]; CHUNK * cp = malloc(sizeof(CHUNK) + amt); @@ -279,7 +280,8 @@ int fixup(WORD attr, LONG loc, TOKEN * fexpr) if ((attr & 0x0F00) == FU_JR) { // i = 18; - i = FIXUP_BASE_SIZE + (sizeof(LONG) * 2); +// i = FIXUP_BASE_SIZE + (sizeof(LONG) * 2); + i = FIXUP_BASE_SIZE + sizeof(SYM *) + sizeof(LONG); } else { @@ -452,6 +454,7 @@ int ResolveFixups(int sno) loc = *fup.lp++; cfileno = *fup.wp++; curlineno = (int)*fup.wp++; +DEBUG { printf("ResolveFixups: cfileno=%u\n", cfileno); } esym = NULL;