From 0acc96e1c83a4b24ce0af95bbd36fcce6a56644c Mon Sep 17 00:00:00 2001 From: Jason Eckhardt Date: Wed, 6 Aug 2003 19:53:19 +0000 Subject: gas: 2003-08-06 Jason Eckhardt * config/tc-i860.c (i860_process_insn): Check that instructions with their dual-bit set are 8-byte aligned. gas/testsuite: 2003-08-06 Jason Eckhardt * gas/i860/dual02-err.l: Update expected error message. * gas/i860/README.i860: Remove dual02-err from known failure list. --- gas/config/tc-i860.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'gas/config/tc-i860.c') diff --git a/gas/config/tc-i860.c b/gas/config/tc-i860.c index 37aff49..d170b70 100644 --- a/gas/config/tc-i860.c +++ b/gas/config/tc-i860.c @@ -933,7 +933,13 @@ i860_process_insn (char *str) { if ((opcode & 0xfc000000) == 0x48000000 || opcode == 0xb0000000) { - opcode |= (1 << 9); + /* The instruction is a flop or a fnop, so set its dual bit + (but check that it is 8-byte aligned). */ + if (((frag_now->fr_address + frag_now_fix_octets ()) & 7) == 0) + opcode |= (1 << 9); + else + as_bad (_("'d.%s' must be 8-byte aligned"), insn->name); + if (dual_mode == DUAL_DDOT) dual_mode = DUAL_OFF; else if (dual_mode == DUAL_ONDDOT) -- cgit v1.1