aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-m68hc11.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2000-08-08 21:40:33 +0000
committerNick Clifton <nickc@redhat.com>2000-08-08 21:40:33 +0000
commitdf86943d1e2ecbb67e982fa0c1d596678736f150 (patch)
treeb3bfa02fc4df0e85cdbbb8310594ba80b84829f0 /gas/config/tc-m68hc11.c
parentd46740afbfe1cb530b84fd81eed15a39b6283744 (diff)
downloadgdb-df86943d1e2ecbb67e982fa0c1d596678736f150.zip
gdb-df86943d1e2ecbb67e982fa0c1d596678736f150.tar.gz
gdb-df86943d1e2ecbb67e982fa0c1d596678736f150.tar.bz2
Make sure the 2 bytes of the jump address are in the same frag.
Accept 68hc12 register indirect modes. Mention 68HC11 & 68HC12 support in NEWS.
Diffstat (limited to 'gas/config/tc-m68hc11.c')
-rw-r--r--gas/config/tc-m68hc11.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
index 0504b39..94b193f 100644
--- a/gas/config/tc-m68hc11.c
+++ b/gas/config/tc-m68hc11.c
@@ -1495,7 +1495,7 @@ build_jump_insn (opcode, operands, nb_operands, jmp_mode)
opcode = m68hc11_new_insn (2);
number_to_chars_bigendian (opcode, code, 1);
number_to_chars_bigendian (opcode + 1, 0, 1);
- frag_var (rs_machine_dependent, 1, 1,
+ frag_var (rs_machine_dependent, 2, 1,
ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF),
operands[0].exp.X_add_symbol, (offsetT) n, opcode);
}
@@ -2046,20 +2046,28 @@ find (opc, operands, nb_operands)
}
if (mode & M6812_OP_REG)
{
- if (i == 0 && format & M6812_OP_REG
- && operands[i].reg2 == REG_NONE)
+ if (i == 0
+ && (format & M6812_OP_REG)
+ && (operands[i].reg2 == REG_NONE))
continue;
- if (i == 0 && format & M6812_OP_REG
- && format & M6812_OP_REG_2 && operands[i].reg2 != REG_NONE)
- {
- continue;
- }
- if (i == 0 && format & M6812_OP_D_IDX)
+ if (i == 0
+ && (format & M6812_OP_REG)
+ && (format & M6812_OP_REG_2)
+ && (operands[i].reg2 != REG_NONE))
continue;
- if (i == 0 && (format & M6812_OP_IDX)
+ if (i == 0
+ && (format & M6812_OP_IDX)
+ && (operands[i].reg2 != REG_NONE))
+ continue;
+ if (i == 0
+ && (format & M6812_OP_D_IDX))
+ continue;
+ if (i == 0
+ && (format & M6812_OP_IDX)
&& (format & (M6812_OP_IND16_P2 | M6812_OP_IDX_P2)))
continue;
- if (i == 1 && format & M6812_OP_IDX_P2)
+ if (i == 1
+ && (format & M6812_OP_IDX_P2))
continue;
break;
}