case CR_FILESIZE:
if (*tok++ != STRING)
return error("^^FILESIZE expects filename inside string");
-
*evalTokenBuffer.u32++ = CONST;
// @@copypasted from d_incbin, maybe factor this out somehow?
// Attempt to open the include file in the current directory, then (if that
if ((fd = open(string[*tok], _OPEN_INC)) < 0)
{
- for(i=0; nthpath("RMACPATH", i, buf1)!= 0; i++)
+ for(i=0; nthpath("RMACPATH", i, buf1)!=0; i++)
{
fd = strlen(buf1);
{
*evalTokenBuffer.u32++ = CONST;
*evalTokenBuffer.u64++ = *a_value = (*tok - KW_R0);
- *a_attr = ABS | DEFINED;
+ *a_attr = ABS | DEFINED | RISCREG;
if (a_esym != NULL)
*a_esym = NULL;
symbolNum++;
#endif
- if (symbol->sattr & DEFINED)
- *a_value = symbol->svalue;
- else
- *a_value = 0;
+ *a_value = (symbol->sattr & DEFINED ? symbol->svalue : 0);
+ *a_attr = (WORD)(symbol->sattr & ~GLOBAL);
/*
All that extra crap that was put into the svalue when doing the equr stuff is
thrown away right here. What the hell is it for?
*/
if (symbol->sattre & EQUATEDREG)
+ {
*a_value &= 0x1F;
-
- *a_attr = (WORD)(symbol->sattr & ~GLOBAL);
+ *a_attr |= RISCREG; // Mark it as a register, 'cause it is
+ *a_esym = symbol;
+ }
if ((symbol->sattr & (GLOBAL | DEFINED)) == GLOBAL
&& a_esym != NULL)