gas:
authorJason Eckhardt <jle@rice.edu>
Wed, 6 Aug 2003 19:53:19 +0000 (19:53 +0000)
committerJason Eckhardt <jle@rice.edu>
Wed, 6 Aug 2003 19:53:19 +0000 (19:53 +0000)
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.

gas/ChangeLog
gas/config/tc-i860.c
gas/testsuite/ChangeLog
gas/testsuite/gas/i860/README.i860
gas/testsuite/gas/i860/dual02-err.l

index 7bf5fcd06fa98a16769e1512c67ab46255e009f7..8e1356c074bbdd698dafa1bab778bdbf9222476c 100644 (file)
@@ -1,3 +1,8 @@
+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.
+
 2003-08-06  Nick Clifton  <nickc@redhat.com>
 
        * po/fr.po: Updated French translation.
index 37aff49efa41261a76a16b3dcdc4141734daf267..d170b7047c3e8b1dbab2e788996e4897e6076d05 100644 (file)
@@ -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)
index 3176e6f511980112e65ea9c84eadee1e7825bc49..30591b72283656c872f8ffac199b35082dc0ef31 100644 (file)
@@ -1,3 +1,8 @@
+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.
+
 2003-08-05  Jason Eckhardt  <jle@rice.edu>
 
        * gas/i860/README.i860: Remove dual01 from the known failures.
index e7b07446756dad05a4719a721aa0b85a599e3afc..ae5c89062c098a17d427b02019a1b580cd24b782 100644 (file)
@@ -25,10 +25,12 @@ TODO:
    tests of the Intel syntax should be added to prevent bitrot (including
    relocatable expression syntax, etc).  Test file dual03.s uses Intel
    syntax lightly (i.e., register names without '%' prefix).
+ - Currently, .align in a .text section fills with 0x00000000.  This is
+   a defect and it needs to fill with nop (0xa0000000).  Write a testcase
+   for it.
 
 Contact me (Jason Eckhardt, jle@rice.edu) if you'd like to help.
 
 Known testsuite failures:
-  - dual02-err.s: GAS currently doesn't check that dual mode pairs
-      are properly aligned.
+  - none.
 
index f8f1a1d8eb9467730e00f0caa0b96536dde0878d..d43d73e46a39bcb6d1a114cda1cb8d1f8be6f1bd 100644 (file)
@@ -1,2 +1,2 @@
 .*: Assembler messages:
-.*:7: Error: FLOP with 'd\.' prefix must be 8-byte aligned
+.*:7: Error: 'd\.fadd\.ss' must be 8-byte aligned