X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=sect.c;h=3e127656916367fa1f7573336582f7a951f9501e;hp=e010ff24696f5629e6f6ebaa623ba44573192109;hb=c2caacfdc844e2f8b5d05b0699fbacc04b4ce8ea;hpb=cfd001aea60f54e49d9beae0f941c513f45c202b diff --git a/sect.c b/sect.c index e010ff2..3e12765 100644 --- a/sect.c +++ b/sect.c @@ -308,9 +308,11 @@ int AddFixup(uint16_t attr, uint32_t loc, TOKEN * fexpr) // Count the # of tokens in the expression for(len=0; fexpr[len]!=ENDEXPR; len++) { - // Add one to len for 2X tokens - if (fexpr[len] == CONST || fexpr[len] == SYMBOL) + // Add one to len for 2X tokens, two for 3X tokens + if (fexpr[len] == SYMBOL) len++; + else if (fexpr[len] == CONST) + len += 2; } // Add 1 for ENDEXPR @@ -388,7 +390,7 @@ int AddFixup(uint16_t attr, uint32_t loc, TOKEN * fexpr) int ResolveFixups(int sno) { PTR fup; // Current fixup - uint32_t eval; // Expression value + uint64_t eval; // Expression value SYM * sy; // (Temp) pointer to a symbol uint16_t i; // (Temp) word int reg2;