* config/tc-s390.c (md_parse_option): Add cpu type z9-109.

(md_gather_operands): Add support for optional operands.
This commit is contained in:
Martin Schwidefsky 2005-08-12 18:00:56 +00:00
parent 42e9a5a09c
commit 6c639ef964
2 changed files with 46 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2005-08-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* config/tc-s390.c (md_parse_option): Add cpu type z9-109.
(md_gather_operands): Add support for optional operands.
2005-08-12 Dmitry Diky <diwil@spec.ru>
* config/tc-msp430.c (msp430_enable_relax): New flag.
(msp430_enable_polys): Likewise.

View File

@ -410,6 +410,8 @@ md_parse_option (c, arg)
current_cpu = S390_OPCODE_Z900;
else if (strcmp (arg + 5, "z990") == 0)
current_cpu = S390_OPCODE_Z990;
else if (strcmp (arg + 5, "z9-109") == 0)
current_cpu = S390_OPCODE_Z9_109;
else
{
as_bad (_("invalid switch -m%s"), arg);
@ -1353,8 +1355,19 @@ md_gather_operands (str, insn, opcode)
/* If there is a next operand it must be separated by a comma. */
if (opindex_ptr[1] != '\0')
{
if (*str++ != ',')
as_bad (_("syntax error; expected ,"));
if (*str != ',')
{
while (opindex_ptr[1] != '\0')
{
operand = s390_operands + *(++opindex_ptr);
if (operand->flags & S390_OPERAND_OPTIONAL)
continue;
as_bad (_("syntax error; expected ,"));
break;
}
}
else
str++;
}
}
else
@ -1386,8 +1399,19 @@ md_gather_operands (str, insn, opcode)
/* If there is a next operand it must be separated by a comma. */
if (opindex_ptr[1] != '\0')
{
if (*str++ != ',')
as_bad (_("syntax error; expected ,"));
if (*str != ',')
{
while (opindex_ptr[1] != '\0')
{
operand = s390_operands + *(++opindex_ptr);
if (operand->flags & S390_OPERAND_OPTIONAL)
continue;
as_bad (_("syntax error; expected ,"));
break;
}
}
else
str++;
}
}
else
@ -1405,8 +1429,19 @@ md_gather_operands (str, insn, opcode)
/* If there is a next operand it must be separated by a comma. */
if (opindex_ptr[1] != '\0')
{
if (*str++ != ',')
as_bad (_("syntax error; expected ,"));
if (*str != ',')
{
while (opindex_ptr[1] != '\0')
{
operand = s390_operands + *(++opindex_ptr);
if (operand->flags & S390_OPERAND_OPTIONAL)
continue;
as_bad (_("syntax error; expected ,"));
break;
}
}
else
str++;
}
}
}