aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2006-08-03 15:59:00 +0000
committerJoseph Myers <joseph@codesourcery.com>2006-08-03 15:59:00 +0000
commit97f87066f657fc69b80af6f551964d7a3e80d054 (patch)
tree7988770569a1c015f39b585c3ea43ba4d2ae44a4 /gas
parent41adaa5cabcfd29c6551e63f7433621495c4d7e0 (diff)
downloadgdb-97f87066f657fc69b80af6f551964d7a3e80d054.zip
gdb-97f87066f657fc69b80af6f551964d7a3e80d054.tar.gz
gdb-97f87066f657fc69b80af6f551964d7a3e80d054.tar.bz2
gas:
* 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.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-arm.c7
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/arm/iwmmxt-bad.l2
-rw-r--r--gas/testsuite/gas/arm/iwmmxt-bad.s2
5 files changed, 19 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 278a591..90c6776 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 408d95f..9bf1439 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -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;
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 8acc4ff..f222a5a 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -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.
diff --git a/gas/testsuite/gas/arm/iwmmxt-bad.l b/gas/testsuite/gas/arm/iwmmxt-bad.l
index 6588938..d030a6d 100644
--- a/gas/testsuite/gas/arm/iwmmxt-bad.l
+++ b/gas/testsuite/gas/arm/iwmmxt-bad.l
@@ -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\]'
diff --git a/gas/testsuite/gas/arm/iwmmxt-bad.s b/gas/testsuite/gas/arm/iwmmxt-bad.s
index 47d8d71..98fc239 100644
--- a/gas/testsuite/gas/arm/iwmmxt-bad.s
+++ b/gas/testsuite/gas/arm/iwmmxt-bad.s
@@ -7,3 +7,5 @@
wstrh wcgr0,[r1]
wstrd wcgr0,[r1]
tmcr wibble,r1
+ wldrw wibble,[r1]
+ wstrw wibble,[r1]