aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-i860.c
diff options
context:
space:
mode:
authorJason Eckhardt <jle@rice.edu>2003-08-06 19:53:19 +0000
committerJason Eckhardt <jle@rice.edu>2003-08-06 19:53:19 +0000
commit0acc96e1c83a4b24ce0af95bbd36fcce6a56644c (patch)
tree143eb45fcf7fa86fd1e489aeb2a46595bbe90305 /gas/config/tc-i860.c
parent086432e2542ee650b0f2ae56c5029c6275fee512 (diff)
downloadbinutils-0acc96e1c83a4b24ce0af95bbd36fcce6a56644c.zip
binutils-0acc96e1c83a4b24ce0af95bbd36fcce6a56644c.tar.gz
binutils-0acc96e1c83a4b24ce0af95bbd36fcce6a56644c.tar.bz2
gas:
2003-08-06 Jason Eckhardt <jle@rice.edu> * 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 <jle@rice.edu> * gas/i860/dual02-err.l: Update expected error message. * gas/i860/README.i860: Remove dual02-err from known failure list.
Diffstat (limited to 'gas/config/tc-i860.c')
-rw-r--r--gas/config/tc-i860.c8
1 files changed, 7 insertions, 1 deletions
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)