X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=procln.c;h=8127d7337cf070a6f4cb28ac8d66b6b8f61261db;hp=edd21730331b07981cbda13a7270e204a049c8c1;hb=d16b8ea0ee65b2ad901ca6b0624c07e6e4930cc4;hpb=49cce96fba11282e4244187f15be418d5ae5bb8d diff --git a/procln.c b/procln.c index edd2173..8127d73 100644 --- a/procln.c +++ b/procln.c @@ -178,7 +178,8 @@ loop1: // Internal line processing loop if (j == '=' || j == DEQUALS || j == SET || j == REG || j == EQUREG || j == CCDEF) { - equate = (char *)tok[1]; +// equate = (char *)tok[1]; + equate = string[tok[1]]; equtyp = j; tok += 3; goto normal; @@ -188,7 +189,8 @@ loop1: // Internal line processing loop if (j == ':' || j == DCOLON) { as68label: - label = (char *)tok[1]; // Get label name +// label = (char *)tok[1]; // Get label name + label = string[tok[1]]; // Get label name labtyp = tok[2]; // Get label type tok += 3; // Go to next line token @@ -218,8 +220,12 @@ as68label: // This is the problem here: On 64-bit platforms, this cuts the native pointer // in half. We need to figure out how to fix this. -#warning "!!! Bad pointer !!!" +//#warning "!!! Bad pointer !!!" +#if 0 opname = p = (char *)*tok++; // Store opcode name here +#else + opname = p = string[*tok++]; +#endif // Check to see if the SYMBOL is a keyword (a mnemonic or directive). // On output, `state' will have one of the values: @@ -299,7 +305,7 @@ as68label: if (label != NULL) warn(lab_ignored); - defmac(); + DefineMacro(); } goto loop; @@ -348,7 +354,7 @@ normal: if (sy == NULL) { - sy = newsym(equate, LABEL, j); + sy = NewSymbol(equate, LABEL, j); sy->sattr = 0; if (equtyp == DEQUALS) @@ -430,7 +436,8 @@ normal: // Checking for a register symbol else if (tok[0] == SYMBOL) { - sy2 = lookup((char *)tok[1], LABEL, j); +// sy2 = lookup((char *)tok[1], LABEL, j); + sy2 = lookup(string[tok[1]], LABEL, j); // Make sure symbol is a valid equreg if (!sy2 || !(sy2->sattre & EQUATEDREG)) @@ -467,7 +474,8 @@ normal: if (tok[0] == SYMBOL) { - sy2 = lookup((char *)tok[1], LABEL, j); +// sy2 = lookup((char *)tok[1], LABEL, j); + sy2 = lookup(string[tok[1]], LABEL, j); if (!sy2 || !(sy2->sattre & EQUATEDCC)) { @@ -488,7 +496,8 @@ normal: //equ a equr else if (*tok == SYMBOL) { - sy2 = lookup((char *)tok[1], LABEL, j); +// sy2 = lookup((char *)tok[1], LABEL, j); + sy2 = lookup(string[tok[1]], LABEL, j); if (sy2 && (sy2->sattre & EQUATEDREG)) { @@ -533,7 +542,7 @@ do_label: if (sy == NULL) { - sy = newsym(label, LABEL, j); + sy = NewSymbol(label, LABEL, j); sy->sattr = 0; sy->sattre = RISCSYM; } @@ -621,7 +630,7 @@ do_label: if (state < 0) { if ((sy = lookup(opname, MACRO, 0)) != NULL) - invokemac(sy, siz); + InvokeMacro(sy, siz); else errors("unknown op '%s'", opname); @@ -703,7 +712,6 @@ int d_if(void) // Alloc an IFENTRY if ((rif = f_ifent) == NULL) -// rif = (IFENT *)amem((LONG)sizeof(IFENT)); rif = (IFENT *)malloc(sizeof(IFENT)); else f_ifent = rif->if_prev; @@ -713,7 +721,8 @@ int d_if(void) if (!disabled) { - if (expr(exprbuf, &eval, &eattr, &esym) != OK) return 0; + if (expr(exprbuf, &eval, &eattr, &esym) != OK) + return 0; if ((eattr & DEFINED) == 0) return error(undef_error);