gas:
authorJoseph Myers <joseph@codesourcery.com>
Thu, 3 Aug 2006 15:59:00 +0000 (15:59 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 3 Aug 2006 15:59:00 +0000 (15:59 +0000)
* config/tc-arm.c (parse_operands): Handle invalid register name
for OP_RIWR_RIWC.

gas/testsuite:
* gas/arm/iwmmxt-bad.s: Test invalid register names for wldrw and
wstrw.
* gas/arm/iwmmxt-bad.l: Update.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/iwmmxt-bad.l
gas/testsuite/gas/arm/iwmmxt-bad.s

index 278a5917300e69868d518701f864ed671b9ff9cc..90c6776e87d35ac11b7e2e2eecc7d667a33e5ebc 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/tc-arm.c (parse_operands): Handle invalid register name
+       for OP_RIWR_RIWC. 
+
 2006-08-03  Joseph Myers  <joseph@codesourcery.com>
 
        * config/tc-arm.c (enum operand_parse_code): Add OP_RIWC_RIWG.
index 408d95fc04213009c5a78db1925ec73357b5ae34..9bf1439b99c17f7edf40b260d6c40c38f3b979c8 100644 (file)
@@ -5749,9 +5749,10 @@ parse_operands (char *str, const unsigned char *pattern)
        case OP_RIWR_RIWC:
          {
            struct reg_entry *rege = arm_reg_parse_multi (&str);
-           if (rege->type != REG_TYPE_MMXWR
-               && rege->type != REG_TYPE_MMXWC
-               && rege->type != REG_TYPE_MMXWCG)
+           if (!rege
+               || (rege->type != REG_TYPE_MMXWR
+                   && rege->type != REG_TYPE_MMXWC
+                   && rege->type != REG_TYPE_MMXWCG))
              {
                inst.error = _("iWMMXt data or control register expected");
                goto failure;
index 8acc4ff4bc2b095b019f47641785dcd0b51911f2..f222a5a3bdfab03f6f23188a1681784375428193 100644 (file)
@@ -1,3 +1,9 @@
+2006-08-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * gas/arm/iwmmxt-bad.s: Test invalid register names for wldrw and
+       wstrw.
+       * gas/arm/iwmmxt-bad.l: Update.
+
 2006-08-03  Joseph Myers  <joseph@codesourcery.com>
 
        * gas/arm/iwmmxt.s: Test tmcr and tmrc with wcgr registers.
index 65889380cf1b1993436c02e1a72dda526cb2a41a..d030a6da46ae33811a1312843399cc7214b382bb 100644 (file)
@@ -8,3 +8,5 @@
 [^:]*:7: Error: iWMMXt data register expected -- `wstrh wcgr0,\[r1\]'
 [^:]*:8: Error: iWMMXt data register expected -- `wstrd wcgr0,\[r1\]'
 [^:]*:9: Error: iWMMXt control register expected -- `tmcr wibble,r1'
+[^:]*:10: Error: iWMMXt data or control register expected -- `wldrw wibble,\[r1\]'
+[^:]*:11: Error: iWMMXt data or control register expected -- `wstrw wibble,\[r1\]'
index 47d8d71f8656f70bc63d4379d6d9220be9ed127e..98fc239374b7dc7d3ff7d08be0b23d586bd95196 100644 (file)
@@ -7,3 +7,5 @@
        wstrh   wcgr0,[r1]
        wstrd   wcgr0,[r1]
        tmcr    wibble,r1
+       wldrw   wibble,[r1]
+       wstrw   wibble,[r1]