diff options
author | Joseph Myers <joseph@codesourcery.com> | 2006-08-03 15:59:00 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2006-08-03 15:59:00 +0000 |
commit | 97f87066f657fc69b80af6f551964d7a3e80d054 (patch) | |
tree | 7988770569a1c015f39b585c3ea43ba4d2ae44a4 /gas | |
parent | 41adaa5cabcfd29c6551e63f7433621495c4d7e0 (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 7 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/iwmmxt-bad.l | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/iwmmxt-bad.s | 2 |
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] |