bug fix in jmp instruction
This commit is contained in:
parent
0679596d4d
commit
decfd1ce9c
3 changed files with 8 additions and 4 deletions
|
@ -12,6 +12,10 @@
|
||||||
#define WORDS_REVERSED
|
#define WORDS_REVERSED
|
||||||
#define LISTING
|
#define LISTING
|
||||||
#define RELOCATION
|
#define RELOCATION
|
||||||
|
#undef ISALPHA
|
||||||
|
#define ISALPHA(c) (isalpha(c) || c == '_' || c == '.' || c == '~')
|
||||||
|
#undef ISALNUM
|
||||||
|
#define ISALNUM(c) (isalnum(c) || c == '_' || c == '.' || c == '~')
|
||||||
|
|
||||||
#undef ALIGNWORD
|
#undef ALIGNWORD
|
||||||
#define ALIGNWORD 2
|
#define ALIGNWORD 2
|
||||||
|
|
|
@ -49,7 +49,6 @@
|
||||||
0, OP_SO, 005600, "sbc",
|
0, OP_SO, 005600, "sbc",
|
||||||
0, OP_SO, 0105600, "sbcb",
|
0, OP_SO, 0105600, "sbcb",
|
||||||
0, OP_SO, 006700, "sxt",
|
0, OP_SO, 006700, "sxt",
|
||||||
0, OP_SO, 0100, "jmp",
|
|
||||||
0, OP_DO, 010000, "mov",
|
0, OP_DO, 010000, "mov",
|
||||||
0, OP_DO, 0110000, "movb",
|
0, OP_DO, 0110000, "movb",
|
||||||
0, OP_DO, 020000, "cmp",
|
0, OP_DO, 020000, "cmp",
|
||||||
|
|
|
@ -91,11 +91,12 @@ sob(reg, exp) expr_t exp; {
|
||||||
}
|
}
|
||||||
|
|
||||||
jump(opc,opr) {
|
jump(opc,opr) {
|
||||||
register sm;
|
|
||||||
register val;
|
register val;
|
||||||
|
|
||||||
if (opr==067) {
|
|
||||||
# ifdef THREE_PASS
|
# ifdef THREE_PASS
|
||||||
|
if (opr==067) {
|
||||||
|
register sm = 0;
|
||||||
|
|
||||||
val = adjust(exp_1) >> 1;
|
val = adjust(exp_1) >> 1;
|
||||||
if ( fitb(val) && (exp_1.typ & ~S_DOT) == DOTTYP) {
|
if ( fitb(val) && (exp_1.typ & ~S_DOT) == DOTTYP) {
|
||||||
sm = 1;
|
sm = 1;
|
||||||
|
@ -105,8 +106,8 @@ jump(opc,opr) {
|
||||||
im1flag = 0;
|
im1flag = 0;
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
# endif
|
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
emit2(opc | opr);
|
emit2(opc | opr);
|
||||||
op1(opr);
|
op1(opr);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue