From 35997600fc0056921bbcf9f5e5e07c275169903b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 27 Mar 2008 14:12:15 +0000 Subject: [PATCH] * config/tc-arm.c (do_neon_cvt): Move variable declarations to start of block. (do_neon_ext): Fix sign of comparison. --- gas/ChangeLog | 6 ++++++ gas/config/tc-arm.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index d87cc0b9084..84d603d4cb5 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2008-03-27 Ineiev + + * config/tc-arm.c (do_neon_cvt): Move variable declarations to + start of block. + (do_neon_ext): Fix sign of comparison. + 2008-03-26 Bernd Schmidt From Jie Zhang diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 15367b772ae..3fbbdeb3a94 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -1,6 +1,6 @@ /* tc-arm.c -- Assemble for the ARM Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007 + 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) Modified by David Taylor (dtaylor@armltd.co.uk) @@ -12718,6 +12718,9 @@ do_neon_cvt (void) case NS_DDI: case NS_QQI: { + unsigned immbits; + unsigned enctab[] = { 0x0000100, 0x1000100, 0x0, 0x1000000 }; + if (vfp_or_neon_is_neon (NEON_CHECK_CC | NEON_CHECK_ARCH) == FAIL) return; @@ -12725,8 +12728,7 @@ do_neon_cvt (void) integer conversion. */ if (inst.operands[2].present && inst.operands[2].imm == 0) goto int_encode; - unsigned immbits = 32 - inst.operands[2].imm; - unsigned enctab[] = { 0x0000100, 0x1000100, 0x0, 0x1000000 }; + immbits = 32 - inst.operands[2].imm; inst.instruction = NEON_ENC_IMMED (inst.instruction); if (flavour != -1) inst.instruction |= enctab[flavour]; @@ -12961,7 +12963,9 @@ do_neon_ext (void) struct neon_type_el et = neon_check_type (3, rs, N_EQK, N_EQK, N_8 | N_16 | N_32 | N_64 | N_KEY); unsigned imm = (inst.operands[3].imm * et.size) / 8; - constraint (imm >= (neon_quad (rs) ? 16 : 8), _("shift out of range")); + + constraint (imm >= (unsigned) (neon_quad (rs) ? 16 : 8), + _("shift out of range")); inst.instruction |= LOW4 (inst.operands[0].reg) << 12; inst.instruction |= HI1 (inst.operands[0].reg) << 22; inst.instruction |= LOW4 (inst.operands[1].reg) << 16; -- 2.30.2