remove a few sentinals
authorTrevor Saunders <tbsaunde+binutils@tbsaunde.org>
Thu, 21 Apr 2016 13:56:50 +0000 (09:56 -0400)
committerTrevor Saunders <tbsaunde+binutils@tbsaunde.org>
Sat, 25 Jun 2016 15:54:28 +0000 (11:54 -0400)
gas/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-bfin.c (bfin_cpus): Remove sentinal.
(md_parse_option): Adjust.
* config/tc-aarch64.c (aarch64_parse_abi): Replace use of a sentinal
with iteration from 0 to ARRAY_SIZE.
* config/tc-mcore.c (md_begin): Likewise.
* config/tc-visium.c (visium_parse_arch): Likewise.

opcodes/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* mcore-opc.h: Remove sentinal.
* mcore-dis.c (print_insn_mcore): Adjust.

gas/ChangeLog
gas/config/tc-aarch64.c
gas/config/tc-bfin.c
gas/config/tc-mcore.c
gas/config/tc-visium.c
opcodes/ChangeLog
opcodes/mcore-dis.c
opcodes/mcore-opc.h

index 91299abfb07a03c38ae2544bf1581d1f28b895bd..8df0d8f76e5e34fe2a48451c685625b5d4d8da9c 100644 (file)
@@ -1,3 +1,12 @@
+2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+       * config/tc-bfin.c (bfin_cpus): Remove sentinal.
+       (md_parse_option): Adjust.
+       * config/tc-aarch64.c (aarch64_parse_abi): Replace use of a sentinal
+       with iteration from 0 to ARRAY_SIZE.
+       * config/tc-mcore.c (md_begin): Likewise.
+       * config/tc-visium.c (visium_parse_arch): Likewise.
+
 2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
 
        * config/tc-tic54x.c (tic54x_set_default_include): remove argument
index 4dac7532b6e7543d9b909e8fb66eb05bc16e09c9..3bc657ae043a40051a21a629a341afe8103b8f64 100644 (file)
@@ -7989,25 +7989,23 @@ struct aarch64_option_abi_value_table
 static const struct aarch64_option_abi_value_table aarch64_abis[] = {
   {"ilp32",            AARCH64_ABI_ILP32},
   {"lp64",             AARCH64_ABI_LP64},
-  {NULL,               0}
 };
 
 static int
 aarch64_parse_abi (const char *str)
 {
-  const struct aarch64_option_abi_value_table *opt;
-  size_t optlen = strlen (str);
+  unsigned int i;
 
-  if (optlen == 0)
+  if (str[0] == '\0')
     {
       as_bad (_("missing abi name `%s'"), str);
       return 0;
     }
 
-  for (opt = aarch64_abis; opt->name != NULL; opt++)
-    if (strlen (opt->name) == optlen && strncmp (str, opt->name, optlen) == 0)
+  for (i = 0; i < ARRAY_SIZE (aarch64_abis); i++)
+    if (strcmp (str, aarch64_abis[i].name) == 0)
       {
-       aarch64_abi = opt->value;
+       aarch64_abi = aarch64_abis[i].value;
        return 1;
       }
 
index 8958c7e795b6929a47629a1b6c3a9ae3169b84f9..334dce47c0c5b98abbb81bbf43aab3e99f3a040e 100644 (file)
@@ -324,8 +324,6 @@ struct bfin_cpu bfin_cpus[] =
 
   {"bf592", BFIN_CPU_BF592, 0x0001, AC_05000074},
   {"bf592", BFIN_CPU_BF592, 0x0000, AC_05000074},
-
-  {NULL, 0, 0, 0}
 };
 
 /* Define bfin-specific command-line options (there are none). */
@@ -357,23 +355,22 @@ md_parse_option (int c ATTRIBUTE_UNUSED, const char *arg ATTRIBUTE_UNUSED)
 
     case OPTION_MCPU:
       {
-       const char *p, *q;
-       int i;
+       const char *q;
+       unsigned int i;
 
-       i = 0;
-       while ((p = bfin_cpus[i].name) != NULL)
+       for (i = 0; i < ARRAY_SIZE (bfin_cpus); i++)
          {
+           const char *p = bfin_cpus[i].name;
            if (strncmp (arg, p, strlen (p)) == 0)
              break;
-           i++;
          }
 
-       if (p == NULL)
+       if (i == ARRAY_SIZE (bfin_cpus))
          as_fatal ("-mcpu=%s is not valid", arg);
 
        bfin_cpu_type = bfin_cpus[i].type;
 
-       q = arg + strlen (p);
+       q = arg + strlen (bfin_cpus[i].name);
 
        if (*q == '\0')
          {
@@ -385,7 +382,8 @@ md_parse_option (int c ATTRIBUTE_UNUSED, const char *arg ATTRIBUTE_UNUSED)
        else if (strcmp (q, "-any") == 0)
          {
            bfin_si_revision = 0xffff;
-           while (bfin_cpus[i].type == bfin_cpu_type)
+           while (i < ARRAY_SIZE (bfin_cpus)
+                  && bfin_cpus[i].type == bfin_cpu_type)
              {
                bfin_anomaly_checks |= bfin_cpus[i].anomaly_checks;
                i++;
@@ -408,11 +406,13 @@ md_parse_option (int c ATTRIBUTE_UNUSED, const char *arg ATTRIBUTE_UNUSED)
 
            bfin_si_revision = (si_major << 8) | si_minor;
 
-           while (bfin_cpus[i].type == bfin_cpu_type
+           while (i < ARRAY_SIZE (bfin_cpus)
+                  && bfin_cpus[i].type == bfin_cpu_type
                   && bfin_cpus[i].si_revision != bfin_si_revision)
              i++;
 
-           if (bfin_cpus[i].type != bfin_cpu_type)
+           if (i == ARRAY_SIZE (bfin_cpus)
+               || bfin_cpus[i].type != bfin_cpu_type)
              goto invalid_silicon_revision;
 
            bfin_anomaly_checks |= bfin_cpus[i].anomaly_checks;
index 9c80388e4292e0b754564e219765e38b2cdbda36..468a01b3f35025f6ca6ea52ca2edd9dc9d0ed436 100644 (file)
@@ -454,18 +454,18 @@ const pseudo_typeS md_pseudo_table[] =
 void
 md_begin (void)
 {
-  const mcore_opcode_info * opcode;
   const char * prev_name = "";
+  unsigned int i;
 
   opcode_hash_control = hash_new ();
 
   /* Insert unique names into hash table.  */
-  for (opcode = mcore_table; opcode->name; opcode ++)
+  for (i = 0; i < ARRAY_SIZE (mcore_table); i++)
     {
-      if (! streq (prev_name, opcode->name))
+      if (! streq (prev_name, mcore_table[i].name))
        {
-         prev_name = opcode->name;
-         hash_insert (opcode_hash_control, opcode->name, (char *) opcode);
+         prev_name = mcore_table[i].name;
+         hash_insert (opcode_hash_control, mcore_table[i].name, (char *) &mcore_table[i]);
        }
     }
 }
index 7f00cbf5a7d6a9c5507c82f44e716c18fa935367..05e161615a3a386d71e203e1834fd1a42e575f1f 100644 (file)
@@ -275,7 +275,6 @@ static struct visium_arch_option_table visium_archs[] =
   {"mcm",   VISIUM_ARCH_MCM},
   {"gr5",   VISIUM_ARCH_MCM},
   {"gr6",   VISIUM_ARCH_GR6},
-  {NULL, 0}
 };
 
 struct visium_long_option_table
@@ -289,7 +288,7 @@ struct visium_long_option_table
 static int
 visium_parse_arch (const char *str)
 {
-  struct visium_arch_option_table *opt;
+  unsigned int i;
 
   if (strlen (str) == 0)
     {
@@ -297,11 +296,10 @@ visium_parse_arch (const char *str)
       return 0;
     }
 
-
-  for (opt = visium_archs; opt->name != NULL; opt++)
-    if (strcmp (opt->name, str) == 0)
+  for (i = 0; i < ARRAY_SIZE (visium_archs); i++)
+    if (strcmp (visium_archs[i].name, str) == 0)
       {
-       visium_arch = opt->value;
+       visium_arch = visium_archs[i].value;
        return 1;
       }
 
index c9cf9ed1b78c6c82b021aa45919afca0d3cb934c..fd597866da27e2c383e355748eeabda75b5f1b8d 100644 (file)
@@ -1,3 +1,8 @@
+2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+       * mcore-opc.h: Remove sentinal.
+       * mcore-dis.c (print_insn_mcore): Adjust.
+
 2016-06-23  Graham Markall  <graham.markall@embecosm.com>
 
        * arc-opc.c: Correct description of availability of NPS400
index d3deb3541d5d0644a461a63b18964baeae67cac9..887d0129ce470589490a735af320e0f4bbf4f92d 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "sysdep.h"
 #include <stdio.h>
+#include "libiberty.h"
 #define STATIC_TABLE
 #define DEFINE_TABLE
 
@@ -95,7 +96,7 @@ print_insn_mcore (bfd_vma memaddr,
   fprintf_ftype print_func = info->fprintf_func;
   void *stream = info->stream;
   unsigned short inst;
-  const mcore_opcode_info *op;
+  unsigned int i;
   int status;
 
   info->bytes_per_chunk = 2;
@@ -116,19 +117,19 @@ print_insn_mcore (bfd_vma memaddr,
     abort ();
 
   /* Just a linear search of the table.  */
-  for (op = mcore_table; op->name != 0; op++)
-    if (op->inst == (inst & imsk[op->opclass]))
+  for (i = 0; i < ARRAY_SIZE (mcore_table); i++)
+    if (mcore_table[i].inst == (inst & imsk[mcore_table[i].opclass]))
       break;
 
-  if (op->name == 0)
+  if (i == ARRAY_SIZE (mcore_table))
     (*print_func) (stream, ".short 0x%04x", inst);
   else
     {
       const char *name = grname[inst & 0x0F];
 
-      (*print_func) (stream, "%s", op->name);
+      (*print_func) (stream, "%s", mcore_table[i].name);
 
-      switch (op->opclass)
+      switch (mcore_table[i].opclass)
        {
        case O0:
          break;
@@ -202,7 +203,7 @@ print_insn_mcore (bfd_vma memaddr,
 
            (*print_func) (stream, "\t0x%lx", (long)(memaddr + 2 + (val << 1)));
 
-           if (strcmp (op->name, "bsr") == 0)
+           if (strcmp (mcore_table[i].name, "bsr") == 0)
              {
                /* For bsr, we'll try to get a symbol for the target.  */
                val = memaddr + 2 + (val << 1);
index 24c3f8888bc0fa6df76ea784c72b64df1407420b..ad66e7bb2d0b936d9742106ca1adec377183409b 100644 (file)
@@ -206,6 +206,5 @@ const mcore_opcode_info mcore_table[] =
   { "rori",    RSI,    0,      0x3800 },
   { "rotri",   RSI,    0,      0x3800 },
   { "nop",     O0,     0,      0x1200 },  /* mov r0, r0 */
-  { 0,         0,      0,      0 }
 };
 #endif