OSDN Git Service

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 278a591..90c6776 100644 (file)
@@ -1,5 +1,10 @@
 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.
        (parse_operands): Handle it.
        (insns): Use it for tmcr and tmrc.
index 408d95f..9bf1439 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 8acc4ff..f222a5a 100644 (file)
@@ -1,5 +1,11 @@
 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.
        * gas/arm/iwmmxt.d: Update.
 
index 6588938..d030a6d 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 47d8d71..98fc239 100644 (file)
@@ -7,3 +7,5 @@
        wstrh   wcgr0,[r1]
        wstrd   wcgr0,[r1]
        tmcr    wibble,r1
+       wldrw   wibble,[r1]
+       wstrw   wibble,[r1]