if (tdb)
MarkRelocatable(cursect, sloc, tdb, MWORD, NULL);
- if ((v == 0) && CHECK_OPTS(OPT_INDIRECT_DISP) && !movep)
+ if ((v == 0) && CHECK_OPTS(OPT_OUTER_DISP) && !movep)
{
// If expr is 0, size optimise the opcode. Generally the lower
// 6 bits of the opcode for expr(ax) are 101rrr where rrr=the
chptr_opcode[1] |= 0x0080 & 255; // slap in 010 bits
}
- if (sbra_flag)
+ if (optim_warn_flag)
warn("0(An) converted to (An)");
return OK;
case ABSL:
if (w) // Defined
{
+ if (CHECK_OPTS(OPT_PC_RELATIVE))
+ {
+ if ((aNexattr & (DEFINED | REFERENCED | EQUATED)) == (DEFINED | REFERENCED))
+ return error("relocation not allowed");
+ }
+
if (tdb)
MarkRelocatable(cursect, sloc, tdb, MLONG, NULL);