summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2007-04-20 13:42:03 +0000
committerAlan Modra <amodra@bigpond.net.au>2007-04-20 13:42:03 +0000
commit491deb745195fc3112b0ad79034bc9df2f3bde24 (patch)
treeb2445a7627ac0f1e07d663eba50715b045963383
parent8246cf2aa71c650955afc758e2b3c9c0aba03f8c (diff)
downloadbinutils-redhat-491deb745195fc3112b0ad79034bc9df2f3bde24.tar.gz
* messages.c (as_internal_value_out_of_range): Fix typo in
error message. Return after printing domain error. * config/tc-ppc.c (ppc_insert_operand): Preserve low zero bits in max when shifting right.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-ppc.c4
-rw-r--r--gas/messages.c3
3 files changed, 11 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3bcaf48e28..33f9bf64cf 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,12 @@
2007-04-20 Alan Modra <amodra@bigpond.net.au>
+ * messages.c (as_internal_value_out_of_range): Fix typo in
+ error message. Return after printing domain error.
+ * config/tc-ppc.c (ppc_insert_operand): Preserve low zero bits
+ in max when shifting right.
+
+2007-04-20 Alan Modra <amodra@bigpond.net.au>
+
* messages.c (as_internal_value_out_of_range): Extend to report
errors for values with invalid low bits set.
* config/tc-ppc.c (ppc_setup_opcodes): Check powerpc_operands bitm
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index be745abbf6..5a5cb38926 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -1508,8 +1508,8 @@ ppc_insert_operand (insn, operand, val, file, line)
if ((operand->flags & PPC_OPERAND_SIGNED) != 0)
{
if ((operand->flags & PPC_OPERAND_SIGNOPT) == 0)
- max >>= 1;
- min = ~(max | ((max & -max) - 1)) ;
+ max = (max >> 1) & -right;
+ min = ~max & -right;
if (!ppc_obj64)
{
diff --git a/gas/messages.c b/gas/messages.c
index 5736bac716..c8788dcc32 100644
--- a/gas/messages.c
+++ b/gas/messages.c
@@ -464,13 +464,14 @@ as_internal_value_out_of_range (char * prefix,
abort ();
/* xgettext:c-format */
- err = _("%s out of domain (%d is not a multiple of %d");
+ err = _("%s out of domain (%d is not a multiple of %d)");
if (bad)
as_bad_where (file, line, err,
prefix, (int) val, (int) right);
else
as_warn_where (file, line, err,
prefix, (int) val, (int) right);
+ return;
}
if ( val < HEX_MAX_THRESHOLD