+ int i;
+ PTR dstexpr;
+ dstexpr.u32 = fixup->expr;
+ SYM *sy;
+ for (i = 0; i < exprlen; i++)
+ {
+ if (*fexpr == SYMBOL)
+ {
+ sy = symbolPtr[fexpr[1]];
+ if (sy->sattr & DEFINED && !(sy->sattr & (TDB| M56KPXYL|M6502)))
+ {
+ // Only convert symbols that are defined and are absolute
+ *dstexpr.u32++ = CONST;
+ *dstexpr.u64++ = sy->svalue;
+ fexpr += 2;
+ i++;
+ }
+ else
+ {
+ // Just copy the symbol
+ *dstexpr.u32++ = *fexpr++;
+ *dstexpr.u32++ = *fexpr++;
+ i++;
+ }
+ }
+ else if (*fexpr == CONST || *fexpr == FCONST)
+ {
+ // Copy constants
+ *dstexpr.u32++ = *fexpr++;
+ *dstexpr.u32++ = *fexpr++;
+ *dstexpr.u32++ = *fexpr++;
+ i += 2;
+ }
+ else
+ *dstexpr.u32++ = *fexpr++;
+ }