]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - opcodes/z8kgen.c
Merge commit 'upstream/2.20'
[msp430-binutils.git] / opcodes / z8kgen.c
index bb513ba430097f79eadd5da7911bb122e0d41572..8d418f7be3f76183c75c9aba70475f8a65477f9a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
+/* Copyright 2001, 2002, 2003, 2005, 2007, 2009 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -567,9 +567,14 @@ count (void)
 }
 
 static int
-func (struct op *a, struct op *b)
+func (const void *p1, const void *p2)
 {
-  return strcmp ((a)->name, (b)->name);
+  const struct op *a = p1;
+  const struct op *b = p2;
+  int ret = strcmp (a->name, b->name);
+  if (ret != 0)
+    return ret;
+  return p1 > p2 ? 1 : -1;
 }
 
 
@@ -904,14 +909,14 @@ static void
 internal (void)
 {
   int c = count ();
-  struct op *new = xmalloc (sizeof (struct op) * c);
+  struct op *new_op = xmalloc (sizeof (struct op) * c);
   struct op *p = opt;
-  memcpy (new, p, c * sizeof (struct op));
+  memcpy (new_op, p, c * sizeof (struct op));
 
   /* Sort all names in table alphabetically.  */
-  qsort (new, c, sizeof (struct op), (int (*)(const void *, const void *))func);
+  qsort (new_op, c, sizeof (struct op), func);
 
-  p = new;
+  p = new_op;
   while (p->flags && p->flags[0] != '*')
   {
     /* If there are any @rs, sub the ssss into a ssn0, (rs), (ssn0).  */
@@ -960,18 +965,18 @@ gas (void)
   struct op *p = opt;
   int idx = -1;
   char *oldname = "";
-  struct op *new = xmalloc (sizeof (struct op) * c);
+  struct op *new_op = xmalloc (sizeof (struct op) * c);
 
-  memcpy (new, p, c * sizeof (struct op));
+  memcpy (new_op, p, c * sizeof (struct op));
 
   /* Sort all names in table alphabetically.  */
-  qsort (new, c, sizeof (struct op), (int (*)(const void *, const void *)) func);
+  qsort (new_op, c, sizeof (struct op), func);
 
   printf ("/* DO NOT EDIT!  -*- buffer-read-only: t -*-\n");
   printf ("   This file is automatically generated by z8kgen.  */\n\n");
-  printf ("/* Copyright 2007 Free Software Foundation, Inc.\n\
+  printf ("/* Copyright 2007, 2009 Free Software Foundation, Inc.\n\
 \n\
-/* This file is part of the GNU opcodes library.\n\
+   This file is part of the GNU opcodes library.\n\
 \n\
    This library is free software; you can redistribute it and/or modify\n\
    it under the terms of the GNU General Public License as published by\n\
@@ -1279,19 +1284,19 @@ gas (void)
   printf ("#ifdef DEFINE_TABLE\n");
   printf ("const opcode_entry_type z8k_table[] = {\n");
 
-  while (new->flags && new->flags[0])
+  while (new_op->flags && new_op->flags[0])
     {
       int nargs;
       int length;
 
-      printf ("\n/* %s *** %s */\n", new->bits, new->name);
+      printf ("\n/* %s *** %s */\n", new_op->bits, new_op->name);
       printf ("{\n");
 
       printf ("#ifdef NICENAMES\n");
-      printf ("\"%s\",%d,%d,", new->name, new->type, new->cycles);
+      printf ("\"%s\",%d,%d,", new_op->name, new_op->type, new_op->cycles);
       {
        int answer = 0;
-       char *p = new->flags;
+       char *p = new_op->flags;
 
        while (*p)
          {
@@ -1306,20 +1311,20 @@ gas (void)
 
       printf ("#endif\n");
 
-      nargs = chewname (&new->name);
+      nargs = chewname (&new_op->name);
 
       printf ("\n\t");
-      chewbits (new->bits, &length);
+      chewbits (new_op->bits, &length);
       length /= 2;
       if (length & 1)
        abort();
 
-      if (strcmp (oldname, new->name) != 0)
+      if (strcmp (oldname, new_op->name) != 0)
        idx++;
       printf (",%d,%d,%d", nargs, length, idx);
-      oldname = new->name;
+      oldname = new_op->name;
       printf ("},\n");
-      new++;
+      new_op++;
     }
   printf ("\n/* end marker */\n");
   printf ("{\n#ifdef NICENAMES\nNULL,0,0,\n0,\n#endif\n");