[ARC] Don't check extAuxRegister second argument for sign.

gas/
2016-12-05  Claudiu Zissulescu  <claziss@synopsys.com>

	* testsuite/gas/arc/textauxregister-1.d: New file.
	* testsuite/gas/arc/textauxregister-1.s: Likewise.
	* testsuite/gas/arc/textcondcode-err.s: Likewise.
	* testsuite/gas/arc/textcoreregister-err.s: Likewise.
	* config/tc-arc.c (tokenize_extregister): Return bfd_boolean,
	don't check second argument of extension auxiliary register for
	signess.
	(arc_extcorereg): Consider the return of tokenize_extregister
	function call.
This commit is contained in:
Claudiu Zissulescu 2016-12-05 15:09:48 +01:00
parent 49e8a72582
commit 0691188992
6 changed files with 47 additions and 11 deletions

View File

@ -1,3 +1,15 @@
2016-12-05 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/textauxregister-1.d: New file.
* testsuite/gas/arc/textauxregister-1.s: Likewise.
* testsuite/gas/arc/textcondcode-err.s: Likewise.
* testsuite/gas/arc/textcoreregister-err.s: Likewise.
* config/tc-arc.c (tokenize_extregister): Return bfd_boolean,
don't check second argument of extension auxiliary register for
signess.
(arc_extcorereg): Consider the return of tokenize_extregister
function call.
2016-12-05 Szabolcs Nagy <szabolcs.nagy@arm.com>
* config/tc-arm.c (arm_ext_v8_3, do_vjcvt): Define.

View File

@ -4545,7 +4545,7 @@ arc_extinsn (int ignore ATTRIBUTE_UNUSED)
create_extinst_section (&einsn);
}
static void
static bfd_boolean
tokenize_extregister (extRegister_t *ereg, int opertype)
{
char *name;
@ -4570,20 +4570,23 @@ tokenize_extregister (extRegister_t *ereg, int opertype)
if (*input_line_pointer != ',')
{
as_bad (_("expected comma after register name"));
as_bad (_("expected comma after name"));
ignore_rest_of_line ();
free (name);
return;
return FALSE;
}
input_line_pointer++;
number = get_absolute_expression ();
if (number < 0)
if ((number < 0)
&& (opertype != EXT_AUX_REGISTER))
{
as_bad (_("negative operand number %d"), number);
as_bad (_("%s second argument cannot be a negative number %d"),
isCore_p ? "extCoreRegister's" : "extCondCode's",
number);
ignore_rest_of_line ();
free (name);
return;
return FALSE;
}
if (isReg_p)
@ -4596,7 +4599,7 @@ tokenize_extregister (extRegister_t *ereg, int opertype)
as_bad (_("expected comma after register number"));
ignore_rest_of_line ();
free (name);
return;
return FALSE;
}
input_line_pointer++;
@ -4617,7 +4620,7 @@ tokenize_extregister (extRegister_t *ereg, int opertype)
as_bad (_("invalid mode"));
ignore_rest_of_line ();
free (name);
return;
return FALSE;
}
else
{
@ -4635,7 +4638,7 @@ tokenize_extregister (extRegister_t *ereg, int opertype)
as_bad (_("expected comma after register mode"));
ignore_rest_of_line ();
free (name);
return;
return FALSE;
}
input_line_pointer++;
@ -4650,7 +4653,7 @@ tokenize_extregister (extRegister_t *ereg, int opertype)
as_bad (_("shortcut designator invalid"));
ignore_rest_of_line ();
free (name);
return;
return FALSE;
}
else
{
@ -4662,6 +4665,7 @@ tokenize_extregister (extRegister_t *ereg, int opertype)
ereg->name = name;
ereg->number = number;
ereg->imode = imode;
return TRUE;
}
/* Create an extension register/condition description in the arc
@ -4737,7 +4741,8 @@ arc_extcorereg (int opertype)
struct arc_flag_operand *ccode;
memset (&ereg, 0, sizeof (ereg));
tokenize_extregister (&ereg, opertype);
if (!tokenize_extregister (&ereg, opertype))
return;
switch (opertype)
{

View File

@ -0,0 +1,10 @@
#objdump: -dr
.*: +file format .*arc.*
Disassembly of section .text:
[0-9a-f]+ <.text>:
\s+0:\s+222a 0f80 8001 8000\s+lr\s+r2,\[myreg1\]
\s+8:\s+21aa 003c\s+lr\s+r1,\[myreg2\]

View File

@ -0,0 +1,5 @@
.extAuxRegister myreg1, 0x80018000, r|w
.extAuxRegister myreg2, -256, r|w
lr r2, [myreg1]
lr r1, [myreg2]

View File

@ -0,0 +1,2 @@
; { dg-do assemble { target arc*-*-* } }
.extCondCode cctst, -12 ; { dg-error "Error: extCondCode's second argument cannot be a negative number -12" }

View File

@ -0,0 +1,2 @@
; { dg-do assemble { target arc*-*-* } }
.extCoreRegister r32c, -32, r|w, can_shortcut ; { dg-error "Error: extCoreRegister's second argument cannot be a negative number -32" }