* config/tc-arm.c (do_neon_cvt): Move variable declarations to
authorNick Clifton <nickc@redhat.com>
Thu, 27 Mar 2008 14:12:15 +0000 (14:12 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 27 Mar 2008 14:12:15 +0000 (14:12 +0000)
            start of block.
            (do_neon_ext): Fix sign of comparison.

gas/ChangeLog
gas/config/tc-arm.c

index d87cc0b9084a1c0239a55fe7bfd8f2b6364dc51b..84d603d4cb5f8cd6b1cac725a8fe99f81b7ed073 100644 (file)
@@ -1,3 +1,9 @@
+2008-03-27  Ineiev  <ineiev@yahoo.co.uk>
+
+       * 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  <bernd.schmidt@analog.com>
 
        From Jie Zhang  <jie.zhang@analog.com>
index 15367b772ae166e50cb90a1b4b20e63a0eb4dbbf..3fbbdeb3a94e3e73f27ca72ffc2db98aef44d3c2 100644 (file)
@@ -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;