aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/NEWS2
-rw-r--r--gas/config/tc-m68hc11.c30
3 files changed, 29 insertions, 11 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 12051ed..6390923 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2000-08-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * 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 <rth@cygnus.com>
* config/tc-ia64.c (unwind): Add prologue_mask member.
diff --git a/gas/NEWS b/gas/NEWS
index 61889be..baa179c 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 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;
}