* config/bfin-parse.y (gen_multi_instr_1): Check anomaly
authorJie Zhang <jie.zhang@analog.com>
Thu, 3 Sep 2009 16:50:39 +0000 (16:50 +0000)
committerJie Zhang <jie.zhang@analog.com>
Thu, 3 Sep 2009 16:50:39 +0000 (16:50 +0000)
05000074 only when both slot1 and slot2 are filled.

testsuite/
* gas/bfin/parallel5.s: New test.
* gas/bfin/error.exp: New test.

gas/ChangeLog
gas/config/bfin-parse.y
gas/testsuite/ChangeLog
gas/testsuite/gas/bfin/error.exp [new file with mode: 0644]
gas/testsuite/gas/bfin/parallel5.s [new file with mode: 0644]

index 254a5fb2bde8cde2179a7fe46d531d0c91010f86..52031ea8e3a2a4423e1bcff61e8bd8282f4aec14 100644 (file)
@@ -1,3 +1,8 @@
+2009-09-03  Jie Zhang  <jie.zhang@analog.com>
+
+       * config/bfin-parse.y (gen_multi_instr_1): Check anomaly
+       05000074 only when both slot1 and slot2 are filled.
+
 2009-09-03  Jie Zhang  <jie.zhang@analog.com>
 
        * config/tc-bfin.c (md_assemble): Bump line counters if there is
index 952859e9454e60fb58eaa7f7ecf48c22e39b029b..f7228bee60f24e611dfd0b5694cd6f8af7f72846 100644 (file)
@@ -391,6 +391,7 @@ gen_multi_instr_1 (INSTR_T dsp32, INSTR_T dsp16_grp1, INSTR_T dsp16_grp2)
 
   /* Anomaly 05000074 */
   if (ENABLE_AC_05000074
+      && dsp32 != NULL && dsp16_grp1 != NULL
       && (dsp32->value & 0xf780) == 0xc680
       && ((dsp16_grp1->value & 0xfe40) == 0x9240
          || (dsp16_grp1->value & 0xfe08) == 0xba08
index 90b55157547d3c037c725ba426c272ff28502d98..1dcde0729af21f49f06771fb29612a983c0003ae 100644 (file)
@@ -1,3 +1,8 @@
+2009-09-03  Jie Zhang  <jie.zhang@analog.com>
+
+       * gas/bfin/parallel5.s: New test.
+       * gas/bfin/error.exp: New test.
+
 2009-09-03  Jie Zhang  <jie.zhang@analog.com>
 
        * gas/bfin/line_number.l, gas/bfin/line_number.s: New test.
diff --git a/gas/testsuite/gas/bfin/error.exp b/gas/testsuite/gas/bfin/error.exp
new file mode 100644 (file)
index 0000000..c602f3d
--- /dev/null
@@ -0,0 +1,10 @@
+# Test assembler warnings and errors.
+
+load_lib gas-dg.exp
+dg-init
+
+if [istarget bfin-*-*] {
+    dg-runtest "$srcdir/$subdir/parallel5.s" "" ""
+}
+
+dg-finish
diff --git a/gas/testsuite/gas/bfin/parallel5.s b/gas/testsuite/gas/bfin/parallel5.s
new file mode 100644 (file)
index 0000000..6156ecb
--- /dev/null
@@ -0,0 +1,4 @@
+# { dg-do assemble { target bfin-*-* } }
+# { dg-options "--mcpu=bf537-0.2" }
+       .section .text;
+       R0 = W[P1++] (X) || R1.L = W[I1++];