Fix 2 bugs with parsing the resource dependency tables.
* ia64-gen.c (fetch_insn_class): If xsect, then ignore comment and notestr if larger than xsect. (in_class): Handle format M5. * ia64-asmtab.c: Regnerate.
This commit is contained in:
parent
3c37485b16
commit
f4bc6bb0c2
@ -1,3 +1,10 @@
|
||||
2001-03-19 Jim Wilson <wilson@redhat.com>
|
||||
|
||||
* ia64-gen.c (fetch_insn_class): If xsect, then ignore comment and
|
||||
notestr if larger than xsect.
|
||||
(in_class): Handle format M5.
|
||||
* ia64-asmtab.c: Regnerate.
|
||||
|
||||
2001-03-19 John David Anglin <dave@hiauly1.hia.nrc.ca>
|
||||
|
||||
* vax-dis.c (print_insn_vax): Only fetch two bytes if the info buffer
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -399,9 +399,21 @@ fetch_insn_class(const char *full_name, int create)
|
||||
if ((comment = strchr(name, '[')) != NULL)
|
||||
is_class = 1;
|
||||
if ((notestr = strchr(name, '+')) != NULL)
|
||||
is_class = 1;
|
||||
|
||||
/* If it is a composite class, then ignore comments and notes that come after
|
||||
the '\\', since they don't apply to the part we are decoding now. */
|
||||
if (xsect)
|
||||
{
|
||||
if (comment > xsect)
|
||||
comment = 0;
|
||||
if (notestr > xsect)
|
||||
notestr = 0;
|
||||
}
|
||||
|
||||
if (notestr)
|
||||
{
|
||||
char *nextnotestr;
|
||||
is_class = 1;
|
||||
note = atoi (notestr + 1);
|
||||
if ((nextnotestr = strchr (notestr + 1, '+')) != NULL)
|
||||
{
|
||||
@ -413,8 +425,9 @@ fetch_insn_class(const char *full_name, int create)
|
||||
}
|
||||
}
|
||||
|
||||
/* if it's a composite class, leave the notes and comments in place so that
|
||||
we have a unique name for the composite class */
|
||||
/* If it's a composite class, leave the notes and comments in place so that
|
||||
we have a unique name for the composite class. Otherwise, we remove
|
||||
them. */
|
||||
if (!xsect)
|
||||
{
|
||||
if (notestr)
|
||||
@ -1055,6 +1068,9 @@ in_iclass(struct ia64_opcode *idesc, struct iclass *ic,
|
||||
resolved = idesc->operands[0] == IA64_OPND_B2;
|
||||
else if (strcmp (ic->name, "invala") == 0)
|
||||
resolved = strcmp (idesc->name, ic->name) == 0;
|
||||
else if (strncmp (idesc->name, "st", 2) == 0
|
||||
&& strstr (format, "M5") != NULL)
|
||||
resolved = idesc->flags & IA64_OPCODE_POSTINC;
|
||||
else
|
||||
resolved = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user