diff options
author | Nick Clifton <nickc@redhat.com> | 2000-08-08 21:40:33 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2000-08-08 21:40:33 +0000 |
commit | df86943d1e2ecbb67e982fa0c1d596678736f150 (patch) | |
tree | b3bfa02fc4df0e85cdbbb8310594ba80b84829f0 /gas/config/tc-m68hc11.c | |
parent | d46740afbfe1cb530b84fd81eed15a39b6283744 (diff) | |
download | gdb-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.c | 30 |
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; } |