Only call "newrelo" when needed.
This commit is contained in:
parent
6bf947ee6e
commit
a6ecac6f1d
2 changed files with 23 additions and 12 deletions
|
@ -35,7 +35,8 @@ operation
|
||||||
{ emit1(0x10); emit1($1);
|
{ emit1(0x10); emit1($1);
|
||||||
$2.val -= (DOTVAL+2);
|
$2.val -= (DOTVAL+2);
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($2.typ, RELPC|RELO2|RELBR);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($2.typ, RELPC|RELO2|RELBR);
|
||||||
#endif
|
#endif
|
||||||
emit2($2.val);
|
emit2($2.val);
|
||||||
}
|
}
|
||||||
|
@ -44,7 +45,8 @@ operation
|
||||||
{ emit1($1);
|
{ emit1($1);
|
||||||
$2.val -= (DOTVAL+2);
|
$2.val -= (DOTVAL+2);
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($2.typ, RELPC|RELO2|RELBR);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($2.typ, RELPC|RELO2|RELBR);
|
||||||
#endif
|
#endif
|
||||||
emit2($2.val);
|
emit2($2.val);
|
||||||
}
|
}
|
||||||
|
@ -52,7 +54,8 @@ operation
|
||||||
IMMED '#' expr
|
IMMED '#' expr
|
||||||
{ emit1($1);
|
{ emit1($1);
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($3.typ, RELO1);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($3.typ, RELO1);
|
||||||
#endif
|
#endif
|
||||||
emit1($3.val);
|
emit1($3.val);
|
||||||
}
|
}
|
||||||
|
@ -64,13 +67,15 @@ operation
|
||||||
case 0x0C:
|
case 0x0C:
|
||||||
case 0x0E:
|
case 0x0E:
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($3.typ, RELO2|RELBR);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($3.typ, RELO2|RELBR);
|
||||||
#endif
|
#endif
|
||||||
emit2($3.val);
|
emit2($3.val);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($3.typ, RELO1);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($3.typ, RELO1);
|
||||||
#endif
|
#endif
|
||||||
emit1($3.val);
|
emit1($3.val);
|
||||||
break;
|
break;
|
||||||
|
@ -83,7 +88,8 @@ operation
|
||||||
else
|
else
|
||||||
emit1or2($1 - 0x10);
|
emit1or2($1 - 0x10);
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($3.typ, RELO1);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($3.typ, RELO1);
|
||||||
#endif
|
#endif
|
||||||
emit1($3.val);
|
emit1($3.val);
|
||||||
}
|
}
|
||||||
|
@ -91,7 +97,8 @@ operation
|
||||||
XOP '>' expr
|
XOP '>' expr
|
||||||
{ emit1or2($1 + 0x10);
|
{ emit1or2($1 + 0x10);
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($3.typ, RELO2|RELBR);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($3.typ, RELO2|RELBR);
|
||||||
#endif
|
#endif
|
||||||
emit2($3.val);
|
emit2($3.val);
|
||||||
}
|
}
|
||||||
|
@ -129,7 +136,8 @@ operation
|
||||||
{ emit1or2($1);
|
{ emit1or2($1);
|
||||||
emit1(0x9F);
|
emit1(0x9F);
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($3.typ, RELO2|RELBR);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($3.typ, RELO2|RELBR);
|
||||||
#endif
|
#endif
|
||||||
emit2($3.val);
|
emit2($3.val);
|
||||||
}
|
}
|
||||||
|
@ -158,7 +166,8 @@ operation
|
||||||
} else {
|
} else {
|
||||||
emit1or2($1 + 0x10);
|
emit1or2($1 + 0x10);
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo($2.typ, RELO2|RELBR);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo($2.typ, RELO2|RELBR);
|
||||||
#endif
|
#endif
|
||||||
emit2($2.val);
|
emit2($2.val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,8 @@ expr_t exp;
|
||||||
emit1(opc);
|
emit1(opc);
|
||||||
if (sm == 0) {
|
if (sm == 0) {
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo(exp.typ, RELPC|RELO2|RELBR);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo(exp.typ, RELPC|RELO2|RELBR);
|
||||||
#endif
|
#endif
|
||||||
emit2(dist);
|
emit2(dist);
|
||||||
} else
|
} else
|
||||||
|
@ -93,7 +94,8 @@ expr_t exp;
|
||||||
} else {
|
} else {
|
||||||
emit1(0x89 + reg + ind);
|
emit1(0x89 + reg + ind);
|
||||||
#ifdef RELOCATION
|
#ifdef RELOCATION
|
||||||
newrelo(exp.typ, RELO2|RELBR);
|
if (rflag != 0 && PASS_RELO)
|
||||||
|
newrelo(exp.typ, RELO2|RELBR);
|
||||||
#endif
|
#endif
|
||||||
emit2(exp.val);
|
emit2(exp.val);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue