{ emit1(0x10); emit1($1);
$2.val -= (DOTVAL+2);
#ifdef RELOCATION
- newrelo($2.typ, RELPC|RELO2|RELBR);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($2.typ, RELPC|RELO2|RELBR);
#endif
emit2($2.val);
}
{ emit1($1);
$2.val -= (DOTVAL+2);
#ifdef RELOCATION
- newrelo($2.typ, RELPC|RELO2|RELBR);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($2.typ, RELPC|RELO2|RELBR);
#endif
emit2($2.val);
}
IMMED '#' expr
{ emit1($1);
#ifdef RELOCATION
- newrelo($3.typ, RELO1);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($3.typ, RELO1);
#endif
emit1($3.val);
}
case 0x0C:
case 0x0E:
#ifdef RELOCATION
- newrelo($3.typ, RELO2|RELBR);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($3.typ, RELO2|RELBR);
#endif
emit2($3.val);
- break;
+ break;
default:
#ifdef RELOCATION
- newrelo($3.typ, RELO1);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($3.typ, RELO1);
#endif
emit1($3.val);
break;
else
emit1or2($1 - 0x10);
#ifdef RELOCATION
- newrelo($3.typ, RELO1);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($3.typ, RELO1);
#endif
emit1($3.val);
}
XOP '>' expr
{ emit1or2($1 + 0x10);
#ifdef RELOCATION
- newrelo($3.typ, RELO2|RELBR);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($3.typ, RELO2|RELBR);
#endif
emit2($3.val);
}
{ emit1or2($1);
emit1(0x9F);
#ifdef RELOCATION
- newrelo($3.typ, RELO2|RELBR);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($3.typ, RELO2|RELBR);
#endif
emit2($3.val);
}
} else {
emit1or2($1 + 0x10);
#ifdef RELOCATION
- newrelo($2.typ, RELO2|RELBR);
+ if (rflag != 0 && PASS_RELO)
+ newrelo($2.typ, RELO2|RELBR);
#endif
emit2($2.val);
}
emit1(opc);
if (sm == 0) {
#ifdef RELOCATION
- newrelo(exp.typ, RELPC|RELO2|RELBR);
+ if (rflag != 0 && PASS_RELO)
+ newrelo(exp.typ, RELPC|RELO2|RELBR);
#endif
emit2(dist);
} else
} else {
emit1(0x89 + reg + ind);
#ifdef RELOCATION
- newrelo(exp.typ, RELO2|RELBR);
+ if (rflag != 0 && PASS_RELO)
+ newrelo(exp.typ, RELO2|RELBR);
#endif
emit2(exp.val);
}