From 931774a953b8d12dc80325af47bdd4860a332818 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 20 Apr 2007 13:42:03 +0000 Subject: [PATCH] * 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. --- gas/ChangeLog | 7 +++++++ gas/config/tc-ppc.c | 4 ++-- gas/messages.c | 3 ++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 3bcaf48..33f9bf64 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,12 @@ 2007-04-20 Alan Modra + * 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 + * 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 be745ab..5a5cb38 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 5736bac..c8788dc 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 -- 2.7.4