* 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.
This commit is contained in:
Joseph Myers 2006-08-03 15:59:00 +00:00
parent 41adaa5cab
commit 97f87066f6
5 changed files with 19 additions and 3 deletions

View 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.

View 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;

View 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.

View 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\]'

View file

@ -7,3 +7,5 @@
wstrh wcgr0,[r1]
wstrd wcgr0,[r1]
tmcr wibble,r1
wldrw wibble,[r1]
wstrw wibble,[r1]