diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-ia64.c | 9 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index c50ced7..0732f6a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2001-02-05 Jim Wilson <wilson@redhat.com> + + * config/tc-ia64.c (errata_nop_necessary_p): Return 0 instead of + aborting for invalid operands. + 2001-02-06 Alan Modra <alan@linuxcare.com.au> * config/tc-hppa.c (fix_new_hppa): Pass in unwind directly rather diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 4f761e2..b905095 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -5223,8 +5223,9 @@ errata_nop_necessary_p (slot, insn_unit) || idesc->operands[i] == IA64_OPND_P2) { int regno = slot->opnd[i].X_add_number - REG_P; + /* Ignore invalid operands; they generate errors elsewhere. */ if (regno >= 64) - abort (); + return 0; this_group->p_reg_set[regno] = 1; } } @@ -5239,8 +5240,9 @@ errata_nop_necessary_p (slot, insn_unit) || idesc->operands[i] == IA64_OPND_R3) { int regno = slot->opnd[i].X_add_number - REG_GR; + /* Ignore invalid operands; they generate errors elsewhere. */ if (regno >= 128) - abort (); + return 0; if (strncmp (idesc->name, "add", 3) != 0 && strncmp (idesc->name, "sub", 3) != 0 && strncmp (idesc->name, "shladd", 6) != 0 @@ -5270,8 +5272,9 @@ errata_nop_necessary_p (slot, insn_unit) || idesc->operands[i] == IA64_OPND_MR3) { int regno = slot->opnd[i].X_add_number - REG_GR; + /* Ignore invalid operands; they generate errors elsewhere. */ if (regno >= 128) - abort (); + return 0; if (idesc->operands[i] == IA64_OPND_R3) { if (strcmp (idesc->name, "fc") != 0 |