From: Maciej W. Rozycki Date: Thu, 9 Dec 2010 23:43:32 +0000 (+0000) Subject: * config/tc-mips.c (macro) : Correct types used X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d5818fca0b88898c09ba162522931ccd71d8fce5;p=binutils-gdb.git * config/tc-mips.c (macro) : Correct types used for pos and size. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index f87b622c650..e018505c43c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2010-12-09 Maciej W. Rozycki + + * config/tc-mips.c (macro) : Correct types used + for pos and size. + 2010-12-09 Maciej W. Rozycki * config/tc-mips.c (macro) : Don't load a zero into an diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index eb1ba2e7ecf..045cf87de6a 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -5262,8 +5262,9 @@ macro (struct mips_cl_insn *ip) case M_DEXT: { - unsigned long pos; - unsigned long size; + /* Use unsigned arithmetic. */ + addressT pos; + addressT size; if (imm_expr.X_op != O_constant || imm2_expr.X_op != O_constant) { @@ -5272,19 +5273,19 @@ macro (struct mips_cl_insn *ip) } else { - pos = (unsigned long) imm_expr.X_add_number; - size = (unsigned long) imm2_expr.X_add_number; + pos = imm_expr.X_add_number; + size = imm2_expr.X_add_number; } if (pos > 63) { - as_bad (_("Improper position (%lu)"), pos); + as_bad (_("Improper position (%lu)"), (unsigned long) pos); pos = 1; } if (size == 0 || size > 64 || (pos + size - 1) > 63) { as_bad (_("Improper extract size (%lu, position %lu)"), - size, pos); + (unsigned long) size, (unsigned long) pos); size = 1; } @@ -5303,14 +5304,16 @@ macro (struct mips_cl_insn *ip) s = "dextm"; fmt = "t,r,+A,+G"; } - macro_build ((expressionS *) NULL, s, fmt, treg, sreg, pos, size - 1); + macro_build ((expressionS *) NULL, s, fmt, treg, sreg, (int) pos, + (int) (size - 1)); } break; case M_DINS: { - unsigned long pos; - unsigned long size; + /* Use unsigned arithmetic. */ + addressT pos; + addressT size; if (imm_expr.X_op != O_constant || imm2_expr.X_op != O_constant) { @@ -5319,19 +5322,19 @@ macro (struct mips_cl_insn *ip) } else { - pos = (unsigned long) imm_expr.X_add_number; - size = (unsigned long) imm2_expr.X_add_number; + pos = imm_expr.X_add_number; + size = imm2_expr.X_add_number; } if (pos > 63) { - as_bad (_("Improper position (%lu)"), pos); + as_bad (_("Improper position (%lu)"), (unsigned long) pos); pos = 1; } if (size == 0 || size > 64 || (pos + size - 1) > 63) { as_bad (_("Improper insert size (%lu, position %lu)"), - size, pos); + (unsigned long) size, (unsigned long) pos); size = 1; }