From: Nick Clifton Date: Tue, 8 Aug 2000 21:40:33 +0000 (+0000) Subject: Make sure the 2 bytes of the jump address are in the same frag. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=df86943d1e2ecbb67e982fa0c1d596678736f150;p=binutils-gdb.git 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. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 12051edfc04..63909233bfa 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2000-08-08 Stephane Carrez + + * config/tc-m68hc11.c (build_jump_insn): Make sure the + 2 bytes of the jump address are in the same frag. + (find): Accept 68hc12 register indirect modes. + + * NEWS: Mention 68HC11 & 68HC12 support. + 2000-08-07 Richard Henderson * config/tc-ia64.c (unwind): Add prologue_mask member. diff --git a/gas/NEWS b/gas/NEWS index 61889be1196..baa179c3ece 100644 --- a/gas/NEWS +++ b/gas/NEWS @@ -2,6 +2,8 @@ Changes in 2.11: +Support for Motorola 68HC11 and 68HC12. + Support for Texas Instruments TMS320C54x (tic54x). Support for IA-64. diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c index 0504b39d2d7..94b193ffe7d 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; }