bug fix in jmp instruction

This commit is contained in:
ceriel 1987-05-15 16:31:00 +00:00
parent 0679596d4d
commit decfd1ce9c
3 changed files with 8 additions and 4 deletions

View file

@ -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

View file

@ -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",

View file

@ -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);
} }