summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@acm.org>2006-02-14 00:58:05 +0000
committerBob Wilson <bob.wilson@acm.org>2006-02-14 00:58:05 +0000
commit431ad2d0db1f70e5a326f9bbe3537008bc3e97f2 (patch)
treea3e04ce45687913fc4fa7f8f5e9ede1b8aeca88b
parent2d7ff946c7701f60577b10b8eef4eaa98feed20c (diff)
downloadbinutils-gdb-431ad2d0db1f70e5a326f9bbe3537008bc3e97f2.tar.gz
* config/tc-xtensa.c (xg_add_opcode_fix): Number operands starting
from 1, not 0, in error messages. (md_assemble): Simplify special-case check for ENTRY instructions. (tinsn_has_invalid_symbolic_operands): Do not include opcode and operand in error message.
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/tc-xtensa.c29
2 files changed, 16 insertions, 21 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a6ca03cd0a7..7d12994c154 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2006-02-13 Bob Wilson <bob.wilson@acm.org>
+
+ * config/tc-xtensa.c (xg_add_opcode_fix): Number operands starting
+ from 1, not 0, in error messages.
+ (md_assemble): Simplify special-case check for ENTRY instructions.
+ (tinsn_has_invalid_symbolic_operands): Do not include opcode and
+ operand in error message.
+
2006-02-13 Joseph S. Myers <joseph@codesourcery.com>
* configure.tgt (arm-*-linux-gnueabi*): Change to
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index ac9274b49e8..a44c28093ef 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -4131,7 +4131,7 @@ xg_add_opcode_fix (TInsn *tinsn,
if (opnum != get_relaxable_immed (opcode))
{
as_bad (_("invalid relocation for operand %i of '%s'"),
- opnum, xtensa_opcode_name (xtensa_default_isa, opcode));
+ opnum + 1, xtensa_opcode_name (xtensa_default_isa, opcode));
return FALSE;
}
@@ -4141,7 +4141,7 @@ xg_add_opcode_fix (TInsn *tinsn,
if (expr->X_op == O_lo16 || expr->X_op == O_hi16)
{
as_bad (_("invalid expression for operand %i of '%s'"),
- opnum, xtensa_opcode_name (xtensa_default_isa, opcode));
+ opnum + 1, xtensa_opcode_name (xtensa_default_isa, opcode));
return FALSE;
}
@@ -5252,24 +5252,12 @@ md_assemble (char *str)
xg_add_branch_and_loop_targets (&orig_insn);
- /* Special-case for "entry" instruction. */
- if (orig_insn.opcode == xtensa_entry_opcode)
+ /* Check that immediate value for ENTRY is >= 16. */
+ if (orig_insn.opcode == xtensa_entry_opcode && orig_insn.ntok >= 3)
{
- /* Check that the third opcode (#2) is >= 16. */
- if (orig_insn.ntok >= 3)
- {
- expressionS *exp = &orig_insn.tok[2];
- switch (exp->X_op)
- {
- case O_constant:
- if (exp->X_add_number < 16)
- as_warn (_("entry instruction with stack decrement < 16"));
- break;
-
- default:
- as_warn (_("entry instruction with non-constant decrement"));
- }
- }
+ expressionS *exp = &orig_insn.tok[2];
+ if (exp->X_op == O_constant && exp->X_add_number < 16)
+ as_warn (_("entry instruction with stack decrement < 16"));
}
/* Finish it off:
@@ -11045,8 +11033,7 @@ tinsn_has_invalid_symbolic_operands (const TInsn *insn)
|| (xtensa_operand_is_PCrelative (isa, insn->opcode, i) != 1
&& insn->opcode != xtensa_const16_opcode))
{
- as_bad (_("invalid symbolic operand %d on '%s'"),
- i, xtensa_opcode_name (isa, insn->opcode));
+ as_bad (_("invalid symbolic operand"));
return TRUE;
}
}