2002-11-21 Andrew Cagney <ac131313@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Fri, 22 Nov 2002 04:20:49 +0000 (04:20 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 22 Nov 2002 04:20:49 +0000 (04:20 +0000)
* filter.c: Re-indent.
* filter.h, filter_host.h, gen-engine.c, gen-engine.h: Ditto.
* gen-icache.c, gen-icache.h, gen-idecode.c: Ditto.
* gen-idecode.h, gen-itable.c, gen-itable.h: Ditto.
* gen-model.c, gen-model.h, gen-semantics.c: Ditto.
* gen-semantics.h, gen-support.c, gen-support.h: Ditto.
* gen.c, gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
* ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
* lf.h, misc.c, misc.h, table.c, table.h: Ditto.

34 files changed:
sim/igen/ChangeLog
sim/igen/filter.c
sim/igen/filter.h
sim/igen/filter_host.h
sim/igen/gen-engine.c
sim/igen/gen-engine.h
sim/igen/gen-icache.c
sim/igen/gen-icache.h
sim/igen/gen-idecode.c
sim/igen/gen-idecode.h
sim/igen/gen-itable.c
sim/igen/gen-itable.h
sim/igen/gen-model.c
sim/igen/gen-model.h
sim/igen/gen-semantics.c
sim/igen/gen-semantics.h
sim/igen/gen-support.c
sim/igen/gen-support.h
sim/igen/gen.c
sim/igen/gen.h
sim/igen/igen.c
sim/igen/igen.h
sim/igen/ld-cache.c
sim/igen/ld-cache.h
sim/igen/ld-decode.c
sim/igen/ld-decode.h
sim/igen/ld-insn.c
sim/igen/ld-insn.h
sim/igen/lf.c
sim/igen/lf.h
sim/igen/misc.c
sim/igen/misc.h
sim/igen/table.c
sim/igen/table.h

index 11cc70f23a01c91d807c860e824c3e9fa0fe2d58..97ad4ef6fa2af231aa19ffad7ba73ba71d4800ad 100644 (file)
@@ -1,3 +1,15 @@
+2002-11-21  Andrew Cagney  <ac131313@redhat.com>
+
+       * filter.c: Re-indent.
+       * filter.h, filter_host.h, gen-engine.c, gen-engine.h: Ditto.
+       * gen-icache.c, gen-icache.h, gen-idecode.c: Ditto.
+       * gen-idecode.h, gen-itable.c, gen-itable.h: Ditto.
+       * gen-model.c, gen-model.h, gen-semantics.c: Ditto.
+       * gen-semantics.h, gen-support.c, gen-support.h: Ditto.
+       * gen.c, gen.h, igen.c, igen.h, ld-cache.c, ld-cache.h: Ditto.
+       * ld-decode.c, ld-decode.h, ld-insn.c, ld-insn.h, lf.c: Ditto.
+       * lf.h, misc.c, misc.h, table.c, table.h: Ditto.
+       
 2002-11-21  Andrew Cagney  <ac131313@redhat.com>
 
        * Makefile.in: Update copyright.  IGEN contributed to the FSF.
index a5bfef39fdbc86f0ef9fc1cbdc111c19829d1a0a..ef74fc01b0e1ff24fb01401d3282c9b01da26e82 100644 (file)
 #include "lf.h"
 #include "filter.h"
 
-struct _filter {
+struct _filter
+{
   char *member;
   filter *next;
 };
 
 
 void
-filter_parse (filter **filters,
-             const char *filt)
+filter_parse (filter **filters, const char *filt)
 {
   while (strlen (filt) > 0)
     {
@@ -54,7 +54,7 @@ filter_parse (filter **filters,
       filter **last;
       /* break out a member of the filter list */
       const char *flag = filt;
-      unsigned /*size_t*/ len;
+      unsigned /*size_t */ len;
       filt = strchr (filt, ',');
       if (filt == NULL)
        {
@@ -68,13 +68,12 @@ filter_parse (filter **filters,
        }
       /* find an insertion point - sorted order */
       last = filters;
-      while (*last != NULL
-            && strncmp (flag, (*last)->member, len) > 0)
+      while (*last != NULL && strncmp (flag, (*last)->member, len) > 0)
        last = &(*last)->next;
       if (*last != NULL
          && strncmp (flag, (*last)->member, len) == 0
          && strlen ((*last)->member) == len)
-       continue; /* duplicate */
+       continue;               /* duplicate */
       /* create an entry for that member */
       new_filter = ZALLOC (filter);
       new_filter->member = NZALLOC (char, len + 1);
@@ -87,14 +86,13 @@ filter_parse (filter **filters,
 
 
 void
-filter_add (filter **set,
-           filter *add)
+filter_add (filter **set, filter *add)
 {
   while (add != NULL)
     {
       int cmp;
       if (*set == NULL)
-       cmp = 1; /* set->member > add->member */
+       cmp = 1;                /* set->member > add->member */
       else
        cmp = strcmp ((*set)->member, add->member);
       if (cmp > 0)
@@ -112,7 +110,7 @@ filter_add (filter **set,
          /* already in set */
          add = add->next;
        }
-      else /* cmp < 0 */
+      else                     /* cmp < 0 */
        {
          /* not reached insertion point */
          set = &(*set)->next;
@@ -122,8 +120,7 @@ filter_add (filter **set,
 
 
 int
-filter_is_subset (filter *superset,
-                 filter *subset)
+filter_is_subset (filter *superset, filter *subset)
 {
   while (1)
     {
@@ -131,21 +128,20 @@ filter_is_subset (filter *superset,
       if (subset == NULL)
        return 1;
       if (superset == NULL)
-       return 0; /* subset isn't finished */
+       return 0;               /* subset isn't finished */
       cmp = strcmp (subset->member, superset->member);
       if (cmp < 0)
-       return 0; /* not found */
+       return 0;               /* not found */
       else if (cmp == 0)
-       subset = subset->next; /* found */
+       subset = subset->next;  /* found */
       else if (cmp > 0)
-       superset = superset->next; /* later in list? */
+       superset = superset->next;      /* later in list? */
     }
 }
 
 
 int
-filter_is_common (filter *l,
-                 filter *r)
+filter_is_common (filter *l, filter *r)
 {
   while (1)
     {
@@ -158,7 +154,7 @@ filter_is_common (filter *l,
       if (cmp < 0)
        l = l->next;
       else if (cmp == 0)
-       return 1; /* common member */
+       return 1;               /* common member */
       else if (cmp > 0)
        r = r->next;
     }
@@ -166,8 +162,7 @@ filter_is_common (filter *l,
 
 
 int
-filter_is_member (filter *filt,
-                 const char *flag)
+filter_is_member (filter *filt, const char *flag)
 {
   int index = 1;
   while (filt != NULL)
@@ -182,68 +177,72 @@ filter_is_member (filter *filt,
 
 
 int
-is_filtered_out (filter *filters,
-                const char *flags)
+is_filtered_out (filter *filters, const char *flags)
 {
-  while (strlen(flags) > 0) {
-    int present;
-    filter *filt = filters;
-    /* break the string up */
-    char *end = strchr(flags, ',');
-    char *next;
-    unsigned /*size_t*/ len;
-    if (end == NULL) {
-      end = strchr(flags, '\0');
-      next = end;
-    }
-    else {
-      next = end + 1;
-    }
-    len = end - flags;
-    /* check that it is present */
-    present = 0;
-    filt = filters;
-    while (filt != NULL) {
-      if (strncmp(flags, filt->member, len) == 0
-         && strlen(filt->member) == len) {
-       present = 1;
-       break;
-      }
-      filt = filt->next;
+  while (strlen (flags) > 0)
+    {
+      int present;
+      filter *filt = filters;
+      /* break the string up */
+      char *end = strchr (flags, ',');
+      char *next;
+      unsigned /*size_t */ len;
+      if (end == NULL)
+       {
+         end = strchr (flags, '\0');
+         next = end;
+       }
+      else
+       {
+         next = end + 1;
+       }
+      len = end - flags;
+      /* check that it is present */
+      present = 0;
+      filt = filters;
+      while (filt != NULL)
+       {
+         if (strncmp (flags, filt->member, len) == 0
+             && strlen (filt->member) == len)
+           {
+             present = 1;
+             break;
+           }
+         filt = filt->next;
+       }
+      if (!present)
+       return 1;
+      flags = next;
     }
-    if (!present)
-      return 1;
-    flags = next;
-  }
   return 0;
 }
 
 
 #if 0
 int
-it_is (const char *flag,
-       const char *flags)
+it_is (const char *flag, const char *flags)
 {
-  int flag_len = strlen(flag);
-  while (*flags != '\0') {
-    if (!strncmp(flags, flag, flag_len)
-       && (flags[flag_len] == ',' || flags[flag_len] == '\0'))
-      return 1;
-    while (*flags != ',') {
-      if (*flags == '\0')
-       return 0;
+  int flag_len = strlen (flag);
+  while (*flags != '\0')
+    {
+      if (!strncmp (flags, flag, flag_len)
+         && (flags[flag_len] == ',' || flags[flag_len] == '\0'))
+       return 1;
+      while (*flags != ',')
+       {
+         if (*flags == '\0')
+           return 0;
+         flags++;
+       }
       flags++;
     }
-    flags++;
-  }
   return 0;
 }
 #endif
 
 
 char *
-filter_next (filter *set,
-            char *member)
+filter_next (filter *set, char *member)
 {
   while (set != NULL)
     {
@@ -256,10 +255,7 @@ filter_next (filter *set,
 
 
 void
-dump_filter (lf *file,
-            char *prefix, 
-            filter *set,
-            char *suffix)
+dump_filter (lf *file, char *prefix, filter *set, char *suffix)
 {
   char *member;
   lf_printf (file, "%s", prefix);
@@ -281,20 +277,21 @@ dump_filter (lf *file,
 
 #ifdef MAIN
 int
-main(int argc, char **argv)
+main (int argc, char **argv)
 {
   filter *subset = NULL;
   filter *superset = NULL;
   lf *l;
   int i;
-  if (argc < 2) {
-    printf("Usage: filter <subset> <filter> ...\n");
-    exit (1);
-  }
+  if (argc < 2)
+    {
+      printf ("Usage: filter <subset> <filter> ...\n");
+      exit (1);
+    }
 
   /* load the filter up */
   filter_parse (&subset, argv[1]);
-  for (i = 2; i < argc; i++) 
+  for (i = 2; i < argc; i++)
     filter_parse (&superset, argv[i]);
 
   /* dump various info */
@@ -352,7 +349,7 @@ main(int argc, char **argv)
     dump_filter (l, "{", superset, " }");
     lf_printf (l, "\n");
   }
-      
+
   return 0;
 }
 #endif
index 79513118143ebb7c8a287335b0076a5c2e6f59b0..6cef90956d49578b3fb91f6cef8e5d5918f4f7b9 100644 (file)
@@ -28,62 +28,44 @@ typedef struct _filter filter;
 
 /* parse the list merging any flags into the filter */
 
-extern void filter_parse
-(filter **filters,
- const char *filt);
+extern void filter_parse (filter **filters, const char *filt);
 
 
 /* add the second filter to the first */
 
-extern void filter_add
-(filter **filters,
- filter *add);
+extern void filter_add (filter **filters, filter *add);
 
 
 
 /* returns true if SUB is a strict subset of SUPER.  For an empty set
    is a member of any set */
 
-extern int filter_is_subset
-(filter *superset,
- filter *subset);
+extern int filter_is_subset (filter *superset, filter *subset);
 
 
 /* return true if there is at least one member common to the two
    filters */
 
-extern int filter_is_common
-(filter *l,
- filter *r);
+extern int filter_is_common (filter *l, filter *r);
 
 
 /* returns the index (pos + 1) if the name is in the filter.  */
 
-extern int filter_is_member
-(filter *set,
- const char *flag);
+extern int filter_is_member (filter *set, const char *flag);
 
 
 /* returns true if one of the flags is not present in the filter.
    === !filter_is_subset (filter_parse (NULL, flags), filters) */
-int is_filtered_out
-(filter *filters,
- const char *flags);
+int is_filtered_out (filter *filters, const char *flags);
 
 
 /* returns the next member of the filter set that follows MEMBER.
    Member does not need to be an elememt of the filter set.  Next of
    "" is the first non-empty member */
-char *filter_next
-(filter *set,
- char *member);
+char *filter_next (filter *set, char *member);
 
 
 
 /* for debugging */
 
-extern void dump_filter
-(lf *file,
- char *prefix,
- filter *filt,
- char *suffix);
+extern void dump_filter (lf *file, char *prefix, filter *filt, char *suffix);
index 79839fe885d009e427684119c02c4f76d8e2f397..7c6739d079a4a38646b134a25db4ef6dbb7e34c3 100644 (file)
@@ -25,6 +25,5 @@
 #define _FILTER_HOST_H
 
 /* Remove directory part from filename */
-extern const char *
-filter_filename(const char *filename);
+extern const char *filter_filename (const char *filename);
 #endif
index 70ede3d0a21df1e595c7fd95d9ad0723e70f0137..d0f5c30ce71a5ba6821691e6ffaaad666921271b 100644 (file)
@@ -65,25 +65,25 @@ print_engine_issue_postfix_hook (lf *file)
 
 
 static void
-print_run_body (lf *file,
-               gen_entry *table)
+print_run_body (lf *file, gen_entry *table)
 {
   /* Output the function to execute real code:
-     
+
      Unfortunatly, there are multiple cases to consider vis:
-     
+
      <icache> X <smp>
-     
+
      Consequently this function is written in multiple different ways */
-  
+
   lf_printf (file, "{\n");
   lf_indent (file, +2);
   if (!options.gen.smp)
     {
-      lf_printf (file, "%sinstruction_address cia;\n", options.module.global.prefix.l);
+      lf_printf (file, "%sinstruction_address cia;\n",
+                options.module.global.prefix.l);
     }
   lf_printf (file, "int current_cpu = next_cpu_nr;\n");
-  
+
   if (options.gen.icache)
     {
       lf_printf (file, "/* flush the icache of a possible break insn */\n");
@@ -93,10 +93,10 @@ print_run_body (lf *file,
       lf_printf (file, "    cpu_flush_icache (STATE_CPU (sd, cpu_nr));\n");
       lf_printf (file, "}\n");
     }
-  
+
   if (!options.gen.smp)
     {
-      
+
       lf_putstr (file, "\
 /* CASE 1: NO SMP (with or with out instruction cache).\n\
 \n\
@@ -124,16 +124,16 @@ cache. */\n\
       lf_putstr (file, "while (1)\n");
       lf_putstr (file, "  {\n");
       lf_indent (file, +4);
-      
+
       lf_printf (file, "%sinstruction_address nia;\n",
                 options.module.global.prefix.l);
 
       lf_printf (file, "\n");
       if (!options.gen.icache)
        {
-         lf_printf (file, "%sinstruction_word instruction_0 = IMEM%d (cia);\n",
-                    options.module.global.prefix.l,
-                    options.insn_bit_size);
+         lf_printf (file,
+                    "%sinstruction_word instruction_0 = IMEM%d (cia);\n",
+                    options.module.global.prefix.l, options.insn_bit_size);
          print_engine_issue_prefix_hook (file);
          print_idecode_body (file, table, "nia = ");
          print_engine_issue_postfix_hook (file);
@@ -146,7 +146,8 @@ cache. */\n\
          lf_putstr (file, "  {\n");
          lf_indent (file, -4);
          lf_putstr (file, "/* cache hit */\n");
-         lf_putstr (file, "idecode_semantic *const semantic = cache_entry->semantic;\n");
+         lf_putstr (file,
+                    "idecode_semantic *const semantic = cache_entry->semantic;\n");
          lf_putstr (file, "cia = semantic (cpu, cache_entry, cia);\n");
          /* tail */
          lf_indent (file, -4);
@@ -162,7 +163,8 @@ cache. */\n\
          lf_printf (file, "instruction_word instruction = IMEM%d (cia);\n",
                     options.insn_bit_size);
          lf_putstr (file, "if (WITH_MON != 0)\n");
-         lf_putstr (file, "  mon_event (mon_event_icache_miss, cpu, cia);\n");
+         lf_putstr (file,
+                    "  mon_event (mon_event_icache_miss, cpu, cia);\n");
          if (options.gen.semantic_icache)
            {
              lf_putstr (file, "{\n");
@@ -183,7 +185,7 @@ cache. */\n\
          lf_indent (file, -4);
          lf_putstr (file, "  }\n");
        }
-      
+
       /* update the cpu if necessary */
       switch (options.gen.nia)
        {
@@ -210,10 +212,10 @@ cache. */\n\
       lf_indent (file, -4);
       lf_printf (file, "  }\n");
     }
-  
+
   if (options.gen.smp)
     {
-      
+
       lf_putstr (file, "\
 /* CASE 2: SMP (With or without ICACHE)\n\
 \n\
@@ -223,9 +225,10 @@ cpu1 will normally be the next cpu that is run.  Cpu0 being restarted\n\
 after all the other CPU's and the event queue have been processed */\n\
 \n\
 ");
-      
+
       lf_putstr (file, "\n");
-      lf_printf (file, "/* have ensured that the event queue is NOT next */\n");
+      lf_printf (file,
+                "/* have ensured that the event queue is NOT next */\n");
       lf_printf (file, "SIM_ASSERT (current_cpu >= 0);\n");
       lf_printf (file, "SIM_ASSERT (current_cpu <= nr_cpus - 1);\n");
       lf_printf (file, "SIM_ASSERT (nr_cpus <= MAX_NR_PROCESSORS);\n");
@@ -247,7 +250,7 @@ after all the other CPU's and the event queue have been processed */\n\
          lf_putstr (file, "CIA_SET (cpu, cia);\n");
          print_engine_issue_postfix_hook (file);
        }
-      
+
       if (options.gen.icache)
        {
          lf_putstr (file, "engine_cache *cache_entry =\n");
@@ -258,8 +261,10 @@ after all the other CPU's and the event queue have been processed */\n\
            lf_indent (file, +2);
            lf_putstr (file, "\n");
            lf_putstr (file, "/* cache hit */\n");
-           lf_putstr (file, "engine_semantic *semantic = cache_entry->semantic;\n");
-           lf_putstr (file, "cia = semantic(processor, cache_entry, cia);\n");
+           lf_putstr (file,
+                      "engine_semantic *semantic = cache_entry->semantic;\n");
+           lf_putstr (file,
+                      "cia = semantic(processor, cache_entry, cia);\n");
            /* tail */
            lf_putstr (file, "cpu_set_program_counter(processor, cia);\n");
            lf_putstr (file, "\n");
@@ -278,13 +283,14 @@ after all the other CPU's and the event queue have been processed */\n\
            lf_printf (file, "instruction_word instruction = IMEM%d (cia);\n",
                       options.insn_bit_size);
            lf_putstr (file, "if (WITH_MON != 0)\n");
-           lf_putstr (file, "  mon_event(mon_event_icache_miss, processors[current_cpu], cia);\n");
+           lf_putstr (file,
+                      "  mon_event(mon_event_icache_miss, processors[current_cpu], cia);\n");
            if (options.gen.semantic_icache)
              {
                lf_putstr (file, "{\n");
                lf_indent (file, +2);
                print_engine_issue_prefix_hook (file);
-               print_idecode_body(file, table, "cia =");
+               print_idecode_body (file, table, "cia =");
                print_engine_issue_postfix_hook (file);
                lf_indent (file, -2);
                lf_putstr (file, "}\n");
@@ -292,8 +298,9 @@ after all the other CPU's and the event queue have been processed */\n\
            else
              {
                print_engine_issue_prefix_hook (file);
-               print_idecode_body(file, table, "semantic = ");
-               lf_putstr (file, "cia = semantic(processor, cache_entry, cia);\n");
+               print_idecode_body (file, table, "semantic = ");
+               lf_putstr (file,
+                          "cia = semantic(processor, cache_entry, cia);\n");
                print_engine_issue_postfix_hook (file);
              }
            /* tail */
@@ -303,7 +310,7 @@ after all the other CPU's and the event queue have been processed */\n\
          }
          lf_putstr (file, "}\n");
        }
-      
+
       lf_putstr (file, "\n");
       lf_putstr (file, "current_cpu += 1;\n");
       lf_putstr (file, "if (current_cpu == nr_cpus)\n");
@@ -314,13 +321,13 @@ after all the other CPU's and the event queue have been processed */\n\
       lf_putstr (file, "      }\n");
       lf_putstr (file, "    current_cpu = 0;\n");
       lf_putstr (file, "  }\n");
-      
+
       /* tail */
       lf_indent (file, -4);
       lf_putstr (file, "  }\n");
     }
-  
-  
+
+
   lf_indent (file, -2);
   lf_putstr (file, "}\n");
 }
@@ -330,8 +337,7 @@ after all the other CPU's and the event queue have been processed */\n\
 
 #if 0
 static void
-print_jump (lf *file,
-           int is_tail)
+print_jump (lf *file, int is_tail)
 {
   if (!options.gen.smp)
     {
@@ -342,7 +348,7 @@ print_jump (lf *file,
       lf_putstr (file, "  }\n");
       lf_putstr (file, "}\n");
     }
-  
+
   if (options.gen.smp)
     {
       if (is_tail)
@@ -359,7 +365,7 @@ print_jump (lf *file,
       lf_putstr (file, "processor = processors[current_cpu];\n");
       lf_putstr (file, "nia = cpu_get_program_counter(processor);\n");
     }
-  
+
   if (options.gen.icache)
     {
       lf_putstr (file, "cache_entry = cpu_icache_entry(processor, nia);\n");
@@ -367,16 +373,17 @@ print_jump (lf *file,
       lf_putstr (file, "  /* cache hit */\n");
       lf_putstr (file, "  goto *cache_entry->semantic;\n");
       lf_putstr (file, "}\n");
-      if (is_tail) {
-       lf_putstr (file, "goto cache_miss;\n");
-      }
+      if (is_tail)
+       {
+         lf_putstr (file, "goto cache_miss;\n");
+       }
     }
-  
+
   if (!options.gen.icache && is_tail)
     {
       lf_printf (file, "goto engine;\n");
     }
-  
+
 }
 #endif
 
@@ -384,10 +391,9 @@ print_jump (lf *file,
 #if 0
 static void
 print_jump_insn (lf *file,
-                insn_entry *instruction,
+                insn_entry * instruction,
                 opcode_bits *expanded_bits,
-                opcode_field *opcodes,
-                cache_entry *cache_rules)
+                opcode_field *opcodes, cache_entry *cache_rules)
 {
   insn_opcodes opcode_path;
 
@@ -398,9 +404,8 @@ print_jump_insn (lf *file,
   lf_printf (file, "\n");
   print_my_defines (file,
                    instruction->name,
-                   instruction->format_name,
-                   expanded_bits);
-  
+                   instruction->format_name, expanded_bits);
+
   /* output the icache entry */
   if (options.gen.icache)
     {
@@ -409,24 +414,18 @@ print_jump_insn (lf *file,
       print_function_name (file,
                           instruction->name,
                           instruction->format_name,
-                          NULL,
-                          expanded_bits,
-                          function_name_prefix_icache);
+                          NULL, expanded_bits, function_name_prefix_icache);
       lf_printf (file, ":\n");
       lf_indent (file, +1);
       lf_printf (file, "{\n");
       lf_indent (file, +2);
       lf_putstr (file, "const unsigned_word cia = nia;\n");
-      print_itrace (file, instruction, 1/*putting-value-in-cache*/);
+      print_itrace (file, instruction, 1 /*putting-value-in-cache */ );
       print_idecode_validate (file, instruction, &opcode_path);
       lf_printf (file, "\n");
       lf_printf (file, "{\n");
       lf_indent (file, +2);
-      print_icache_body (file,
-                        instruction,
-                        expanded_bits,
-                        cache_rules,
-                        0, /*use_defines*/
+      print_icache_body (file, instruction, expanded_bits, cache_rules, 0,     /*use_defines */
                         put_values_in_icache);
       lf_printf (file, "cache_entry->address = nia;\n");
       lf_printf (file, "cache_entry->semantic = &&");
@@ -434,16 +433,13 @@ print_jump_insn (lf *file,
                           instruction->name,
                           instruction->format_name,
                           NULL,
-                          expanded_bits,
-                          function_name_prefix_semantics);
+                          expanded_bits, function_name_prefix_semantics);
       lf_printf (file, ";\n");
       if (options.gen.semantic_icache)
        {
          print_semantic_body (file,
-                              instruction,
-                              expanded_bits,
-                              &opcode_path);
-         print_jump(file, 1/*is-tail*/);
+                              instruction, expanded_bits, &opcode_path);
+         print_jump (file, 1 /*is-tail */ );
        }
       else
        {
@@ -452,8 +448,7 @@ print_jump_insn (lf *file,
                               instruction->name,
                               instruction->format_name,
                               NULL,
-                              expanded_bits,
-                              function_name_prefix_semantics);
+                              expanded_bits, function_name_prefix_semantics);
          lf_printf (file, "; */\n");
        }
       lf_indent (file, -2);
@@ -461,16 +456,14 @@ print_jump_insn (lf *file,
       lf_indent (file, -2);
       lf_printf (file, "}\n");
     }
-  
+
   /* print the semantics */
   lf_printf (file, "\n");
   lf_indent (file, -1);
   print_function_name (file,
                       instruction->name,
                       instruction->format_name,
-                      NULL,
-                      expanded_bits,
-                      function_name_prefix_semantics);
+                      NULL, expanded_bits, function_name_prefix_semantics);
   lf_printf (file, ":\n");
   lf_indent (file, +1);
   lf_printf (file, "{\n");
@@ -484,12 +477,8 @@ print_jump_insn (lf *file,
                      ? define_variables
                      : declare_variables),
                     (options.gen.icache
-                     ? get_values_from_icache
-                     : do_not_use_icache));
-  print_semantic_body (file,
-                      instruction,
-                      expanded_bits,
-                      &opcode_path);
+                     ? get_values_from_icache : do_not_use_icache));
+  print_semantic_body (file, instruction, expanded_bits, &opcode_path);
   if (options.gen.direct_access)
     print_icache_body (file,
                       instruction,
@@ -497,9 +486,8 @@ print_jump_insn (lf *file,
                       cache_rules,
                       undef_variables,
                       (options.gen.icache
-                       ? get_values_from_icache
-                       : do_not_use_icache));
-  print_jump(file, 1/*is tail*/);
+                       ? get_values_from_icache : do_not_use_icache));
+  print_jump (file, 1 /*is tail */ );
   lf_indent (file, -2);
   lf_printf (file, "}\n");
 }
@@ -508,18 +496,14 @@ print_jump_insn (lf *file,
 
 #if 0
 static void
-print_jump_definition (lf *file,
-                      gen_entry *entry,
-                      int depth,
-                      void *data)
+print_jump_definition (lf *file, gen_entry *entry, int depth, void *data)
 {
-  cache_entry *cache_rules = (cache_entry*)data;
+  cache_entry *cache_rules = (cache_entry *) data;
   if (entry->opcode_rule->with_duplicates)
     {
       ASSERT (entry->nr_insns == 1
              && entry->opcode == NULL
-             && entry->parent != NULL
-             && entry->parent->opcode != NULL);
+             && entry->parent != NULL && entry->parent->opcode != NULL);
       ASSERT (entry->nr_insns == 1
              && entry->opcode == NULL
              && entry->parent != NULL
@@ -527,17 +511,11 @@ print_jump_definition (lf *file,
              && entry->parent->opcode_rule != NULL);
       print_jump_insn (file,
                       entry->insns->insn,
-                      entry->expanded_bits,
-                      entry->opcode,
-                      cache_rules);
+                      entry->expanded_bits, entry->opcode, cache_rules);
     }
-  else 
+  else
     {
-      print_jump_insn (file,
-                      entry->insns->insn,
-                      NULL,
-                      NULL,
-                      cache_rules);
+      print_jump_insn (file, entry->insns->insn, NULL, NULL, cache_rules);
     }
 }
 #endif
@@ -545,9 +523,7 @@ print_jump_definition (lf *file,
 
 #if 0
 static void
-print_jump_internal_function (lf *file,
-                             function_entry *function,
-                             void *data)
+print_jump_internal_function (lf *file, function_entry * function, void *data)
 {
   if (function->is_internal)
     {
@@ -580,9 +556,7 @@ print_jump_internal_function (lf *file,
 #if 0
 static void
 print_jump_body (lf *file,
-                gen_entry *entry,
-                insn_table *isa,
-                cache_entry *cache_rules)
+                gen_entry *entry, insn_table *isa, cache_entry *cache_rules)
 {
   lf_printf (file, "{\n");
   lf_indent (file, +2);
@@ -599,10 +573,10 @@ print_jump_body (lf *file,
     {
       lf_putstr (file, "int current_cpu = -1;\n");
     }
-  
+
   /* all the switches and tables - they know about jumping */
   print_idecode_lookups (file, entry, cache_rules);
-  
+
   /* start the simulation up */
   if (options.gen.icache)
     {
@@ -613,17 +587,17 @@ print_jump_body (lf *file,
       lf_putstr (file, "    cpu_flush_icache(processors[cpu_nr]);\n");
       lf_putstr (file, "}\n");
     }
-  
+
   lf_putstr (file, "\n");
   lf_putstr (file, "psim_set_halt_and_restart(system, &halt, &restart);\n");
-  
+
   lf_putstr (file, "\n");
   lf_putstr (file, "if (setjmp(halt))\n");
   lf_putstr (file, "  return;\n");
-  
+
   lf_putstr (file, "\n");
   lf_putstr (file, "setjmp(restart);\n");
-  
+
   lf_putstr (file, "\n");
   if (!options.gen.smp)
     {
@@ -634,7 +608,7 @@ print_jump_body (lf *file,
     {
       lf_putstr (file, "current_cpu = psim_last_cpu(system);\n");
     }
-  
+
   if (!options.gen.icache)
     {
       lf_printf (file, "\n");
@@ -642,36 +616,34 @@ print_jump_body (lf *file,
       lf_printf (file, "engine:\n");
       lf_indent (file, +1);
     }
-  
-  print_jump(file, 0/*is_tail*/);
-  
+
+  print_jump (file, 0 /*is_tail */ );
+
   if (options.gen.icache)
     {
       lf_indent (file, -1);
       lf_printf (file, "cache_miss:\n");
       lf_indent (file, +1);
     }
-  
-         print_engine_issue_prefix_hook (file);
+
+  print_engine_issue_prefix_hook (file);
   lf_putstr (file, "instruction\n");
-  lf_putstr (file, "  = vm_instruction_map_read(cpu_instruction_map(processor),\n");
+  lf_putstr (file,
+            "  = vm_instruction_map_read(cpu_instruction_map(processor),\n");
   lf_putstr (file, "                            processor, nia);\n");
   print_engine_issue_prefix_hook (file);
   print_idecode_body (file, entry, "/*IGORE*/");
   print_engine_issue_postfix_hook (file);
-  
+
   /* print out a table of all the internals functions */
   function_entry_traverse (file, isa->functions,
-                          print_jump_internal_function,
-                          NULL);
-  
+                          print_jump_internal_function, NULL);
+
   /* print out a table of all the instructions */
   ERROR ("Use the list of semantic functions, not travere_tree");
-  gen_entry_traverse_tree (file, entry,
-                          1,
-                          NULL, /* start */
-                          print_jump_definition, /* leaf */
-                          NULL, /* end */
+  gen_entry_traverse_tree (file, entry, 1, NULL,       /* start */
+                          print_jump_definition,       /* leaf */
+                          NULL,        /* end */
                           cache_rules);
   lf_indent (file, -2);
   lf_printf (file, "}\n");
@@ -701,11 +673,8 @@ print_engine_run_function_header (lf *file,
       lf_printf (file, "void (*");
       break;
     }
-  indent = print_function_name (file,
-                               "run",
-                               NULL, /* format name */
-                               processor,
-                               NULL, /* expanded bits */
+  indent = print_function_name (file, "run", NULL,     /* format name */
+                               processor, NULL,        /* expanded bits */
                                function_name_prefix_engine);
   switch (decl_type)
     {
@@ -742,9 +711,7 @@ print_engine_run_function_header (lf *file,
 
 void
 gen_engine_h (lf *file,
-             gen_table *gen,
-             insn_table *isa,
-             cache_entry *cache_rules)
+             gen_table *gen, insn_table *isa, cache_entry *cache_rules)
 {
   gen_list *entry;
   for (entry = gen->tables; entry != NULL; entry = entry->next)
@@ -752,17 +719,14 @@ gen_engine_h (lf *file,
       print_engine_run_function_header (file,
                                        (options.gen.multi_sim
                                         ? entry->model->name
-                                        : NULL),
-                                       is_function_declaration);
+                                        : NULL), is_function_declaration);
     }
 }
 
 
 void
-gen_engine_c(lf *file,
-            gen_table *gen,
-            insn_table *isa,
-            cache_entry *cache_rules)
+gen_engine_c (lf *file,
+             gen_table *gen, insn_table *isa, cache_entry *cache_rules)
 {
   gen_list *entry;
   /* the intro */
@@ -781,24 +745,22 @@ gen_engine_c(lf *file,
        {
        case generate_calls:
          print_idecode_lookups (file, entry->table, cache_rules);
-         
+
          /* output the main engine routine */
          print_engine_run_function_header (file,
                                            (options.gen.multi_sim
                                             ? entry->model->name
-                                            : NULL),
-                                           is_function_definition);
+                                            : NULL), is_function_definition);
          print_run_body (file, entry->table);
          break;
-         
+
        case generate_jumps:
          ERROR ("Jumps currently unimplemented");
 #if 0
          print_engine_run_function_header (file,
                                            entry->processor,
                                            is_function_definition);
-         print_jump_body (file, entry->table,
-                          isa, cache_rules);
+         print_jump_body (file, entry->table, isa, cache_rules);
 #endif
          break;
        }
index 14c01a0e48bf40ab90614ba8bfa46277630699e5..8f6c030375577f7ce12616ce5d104e753fcd0149 100644 (file)
    Boston, MA 02111-1307, USA.  */
 
 extern void gen_engine_h
-(lf *file,
- gen_table *gen,
- insn_table *isa,
- cache_entry *cache_rules);
+  (lf *file, gen_table *gen, insn_table *isa, cache_entry *cache_rules);
 
 extern void gen_engine_c
-(lf *file,
- gen_table *gen,
- insn_table *isa,
- cache_entry *cache_rules);
+  (lf *file, gen_table *gen, insn_table *isa, cache_entry *cache_rules);
 
 extern void print_engine_run_function_header
-(lf *file,
- char *processor,
- function_decl_type decl_type);
-
+  (lf *file, char *processor, function_decl_type decl_type);
index 3e77af0938fbbf64f633d91fbaa60adaaf6897ae..693a646e08c8817d2e741a7a779dc6e1d7897d34 100644 (file)
@@ -47,13 +47,12 @@ print_icache_function_header (lf *file,
                              int is_function_definition,
                              int nr_prefetched_words)
 {
-  lf_printf(file, "\n");
+  lf_printf (file, "\n");
   lf_print__function_type_function (file, print_icache_function_type,
                                    "EXTERN_ICACHE", " ");
   print_function_name (file,
                       basename, format_name, NULL,
-                      expanded_bits,
-                      function_name_prefix_icache);
+                      expanded_bits, function_name_prefix_icache);
   lf_printf (file, "\n(");
   print_icache_function_formal (file, nr_prefetched_words);
   lf_printf (file, ")");
@@ -65,16 +64,15 @@ print_icache_function_header (lf *file,
 
 void
 print_icache_declaration (lf *file,
-                         insn_entry *insn,
+                         insn_entry * insn,
                          opcode_bits *expanded_bits,
-                         insn_opcodes *opcodes,
-                         int nr_prefetched_words)
+                         insn_opcodes *opcodes, int nr_prefetched_words)
 {
   print_icache_function_header (file,
                                insn->name,
                                insn->format_name,
                                expanded_bits,
-                               0/* is not function definition */,
+                               0 /* is not function definition */ ,
                                nr_prefetched_words);
 }
 
@@ -99,7 +97,7 @@ print_icache_extraction (lf *file,
   char *reason;
   ASSERT (format_name != NULL);
   ASSERT (entry_name != NULL);
-  
+
   /* figure out exactly what should be going on here */
   switch (cache_type)
     {
@@ -129,30 +127,27 @@ print_icache_extraction (lf *file,
        {
          reason = "cache";
          what_to_declare = ((what_to_do & put_values_in_icache)
-                            ? declare_variables
-                            : what_to_declare);
+                            ? declare_variables : what_to_declare);
        }
       else
        return;
       break;
     default:
-      abort (); /* Bad switch.  */
+      abort ();                        /* Bad switch.  */
     }
-  
+
   /* For the type, default to a simple unsigned */
   if (entry_type == NULL || strlen (entry_type) == 0)
     entry_type = "unsigned";
-  
+
   /* look through the set of expanded sub fields to see if this field
      has been given a constant value */
-  for (bits = expanded_bits;
-       bits != NULL;
-       bits = bits->next)
+  for (bits = expanded_bits; bits != NULL; bits = bits->next)
     {
       if (bits->field == cur_field)
        break;
     }
-  
+
   /* Define a storage area for the cache element */
   switch (what_to_declare)
     {
@@ -180,8 +175,8 @@ print_icache_extraction (lf *file,
       lf_printf (file, "%s const %s UNUSED = ", entry_type, entry_name);
       break;
     }
-  
-  
+
+
   /* define a value for that storage area as determined by what is in
      the cache */
   if (bits != NULL
@@ -193,11 +188,11 @@ print_icache_extraction (lf *file,
     {
       /* The cache rule is specifying what to do with a simple
          instruction field.
-        
-        Because of instruction expansion, the field is either a
-        constant value or equal to the specified constant (boolean
-        comparison). (The latter indicated by bits->value == 0).
-        
+
+         Because of instruction expansion, the field is either a
+         constant value or equal to the specified constant (boolean
+         comparison). (The latter indicated by bits->value == 0).
+
          The case of a field not being equal to the specified boolean
          value is handled later. */
       expression = "constant field";
@@ -226,52 +221,55 @@ print_icache_extraction (lf *file,
                       "_is_",
                       strlen ("_is_")) == 0
           && ((bits->opcode->is_boolean
-               && ((unsigned) atol (entry_name + strlen (single_insn_field) + strlen ("_is_"))
-                   == bits->opcode->boolean_constant))
+               && ((unsigned)
+                   atol (entry_name + strlen (single_insn_field) +
+                         strlen ("_is_")) == bits->opcode->boolean_constant))
               || (!bits->opcode->is_boolean)))
     {
       /* The cache rule defines an entry for the comparison between a
-        single instruction field and a constant.  The value of the
-        comparison in someway matches that of the opcode field that
-        was made constant through expansion. */
+         single instruction field and a constant.  The value of the
+         comparison in someway matches that of the opcode field that
+         was made constant through expansion. */
       expression = "constant compare";
       if (bits->opcode->is_boolean)
        {
          lf_printf (file, "%d /* %s == %d */",
                     bits->value == 0,
-                    single_insn_field,
-                    bits->opcode->boolean_constant);
+                    single_insn_field, bits->opcode->boolean_constant);
        }
       else if (bits->opcode->last < bits->field->last)
        {
          lf_printf (file, "%d /* %s == %d */",
-                    (atol (entry_name + strlen (single_insn_field) + strlen ("_is_"))
-                     == (bits->value << (bits->field->last - bits->opcode->last))),
+                    (atol
+                     (entry_name + strlen (single_insn_field) +
+                      strlen ("_is_")) ==
+                     (bits->
+                      value << (bits->field->last - bits->opcode->last))),
                     single_insn_field,
-                    (bits->value << (bits->field->last - bits->opcode->last)));
+                    (bits->
+                     value << (bits->field->last - bits->opcode->last)));
        }
       else
        {
          lf_printf (file, "%d /* %s == %d */",
-                    (atol (entry_name + strlen (single_insn_field) + strlen ("_is_"))
-                     == bits->value),
-                    single_insn_field,
+                    (atol
+                     (entry_name + strlen (single_insn_field) +
+                      strlen ("_is_")) == bits->value), single_insn_field,
                     bits->value);
        }
     }
   else
     {
       /* put the field in the local variable, possibly also enter it
-        into the cache */
+         into the cache */
       expression = "extraction";
       /* handle the cache */
       if ((what_to_do & get_values_from_icache)
          || (what_to_do & put_values_in_icache))
        {
          lf_printf (file, "cache_entry->crack.%s.%s",
-                    format_name,
-                    entry_name);
-         if (what_to_do & put_values_in_icache) /* also put it in the cache? */
+                    format_name, entry_name);
+         if (what_to_do & put_values_in_icache)        /* also put it in the cache? */
            {
              lf_printf (file, " = ");
            }
@@ -282,10 +280,11 @@ print_icache_extraction (lf *file,
          if (cur_field != NULL)
            {
              if (entry_expression != NULL && strlen (entry_expression) > 0)
-               error (line, "Instruction field entry with nonempty expression\n");
-             if (cur_field->first == 0 && cur_field->last == options.insn_bit_size - 1)
-               lf_printf (file, "(instruction_%d)",
-                          cur_field->word_nr);
+               error (line,
+                      "Instruction field entry with nonempty expression\n");
+             if (cur_field->first == 0
+                 && cur_field->last == options.insn_bit_size - 1)
+               lf_printf (file, "(instruction_%d)", cur_field->word_nr);
              else if (cur_field->last == options.insn_bit_size - 1)
                lf_printf (file, "MASKED%d (instruction_%d, %d, %d)",
                           options.insn_bit_size,
@@ -305,7 +304,7 @@ print_icache_extraction (lf *file,
            }
        }
     }
-  
+
   switch (what_to_declare)
     {
     case define_variables:
@@ -325,12 +324,11 @@ print_icache_extraction (lf *file,
 
 void
 print_icache_body (lf *file,
-                  insn_entry *instruction,
+                  insn_entry * instruction,
                   opcode_bits *expanded_bits,
                   cache_entry *cache_rules,
                   icache_decl_type what_to_declare,
-                  icache_body_type what_to_do,
-                  int nr_prefetched_words)
+                  icache_body_type what_to_do, int nr_prefetched_words)
 {
   /* extract instruction fields */
   lf_printf (file, "/* Extraction: %s\n", instruction->name);
@@ -365,8 +363,8 @@ print_icache_body (lf *file,
     }
   lf_printf (file, "\n     ");
   print_insn_words (file, instruction);
-  lf_printf(file, " */\n");
-  
+  lf_printf (file, " */\n");
+
   /* pass zero - fetch from memory any missing instructions.
 
      Some of the instructions will have already been fetched (in the
@@ -387,13 +385,12 @@ print_icache_body (lf *file,
          case define_variables:
          case declare_variables:
            for (word_nr = nr_prefetched_words;
-                word_nr < instruction->nr_words;
-                word_nr++)
+                word_nr < instruction->nr_words; word_nr++)
              {
                /* FIXME - should be using print_icache_extraction? */
-               lf_printf (file, "%sinstruction_word instruction_%d UNUSED = ",
-                          options.module.global.prefix.l,
-                          word_nr);
+               lf_printf (file,
+                          "%sinstruction_word instruction_%d UNUSED = ",
+                          options.module.global.prefix.l, word_nr);
                lf_printf (file, "IMEM%d_IMMED (cia, %d)",
                           options.insn_bit_size, word_nr);
                lf_printf (file, ";\n");
@@ -404,21 +401,17 @@ print_icache_body (lf *file,
 
   /* if putting the instruction words in the cache, define references
      for them */
-  if (options.gen.insn_in_icache) {
-    /* FIXME: is the instruction_word type correct? */
-    print_icache_extraction (file,
-                            instruction->format_name,
-                            cache_value,
-                            "insn", /* name */
-                            "instruction_word", /* type */
-                            "instruction", /* expression */
-                            NULL, /* origin */
-                            NULL, /* line */
-                            NULL, NULL,
-                            what_to_declare,
-                            what_to_do);
-  }
-  lf_printf(file, "\n");
+  if (options.gen.insn_in_icache)
+    {
+      /* FIXME: is the instruction_word type correct? */
+      print_icache_extraction (file, instruction->format_name, cache_value, "insn",    /* name */
+                              "instruction_word",      /* type */
+                              "instruction",   /* expression */
+                              NULL,    /* origin */
+                              NULL,    /* line */
+                              NULL, NULL, what_to_declare, what_to_do);
+    }
+  lf_printf (file, "\n");
 
   /* pass one - process instruction fields.
 
@@ -426,9 +419,7 @@ print_icache_body (lf *file,
      the cache */
   {
     insn_word_entry *word;
-    for (word = instruction->words;
-        word != NULL;
-        word = word->next)
+    for (word = instruction->words; word != NULL; word = word->next)
       {
        insn_field_entry *cur_field;
        for (cur_field = word->first;
@@ -444,12 +435,12 @@ print_icache_body (lf *file,
                   overriding the default cache action for an
                   instruction field */
                for (cache_rule = cache_rules;
-                    cache_rule != NULL;
-                    cache_rule = cache_rule->next)
+                    cache_rule != NULL; cache_rule = cache_rule->next)
                  {
                    if (filter_is_subset (instruction->field_names,
                                          cache_rule->original_fields)
-                       && strcmp (cache_rule->name, cur_field->val_string) == 0)
+                       && strcmp (cache_rule->name,
+                                  cur_field->val_string) == 0)
                      {
                        value_type = cache_rule->entry_type;
                        value_line = cache_rule->line;
@@ -463,19 +454,15 @@ print_icache_body (lf *file,
                      }
                  }
                /* Define an entry for the field within the
-                   instruction */
-               print_icache_extraction (file,
-                                        instruction->format_name,
-                                        value_type,
-                                        cur_field->val_string, /* name */
-                                        NULL, /* type */
-                                        NULL, /* expression */
-                                        cur_field->val_string, /* insn field */
+                  instruction */
+               print_icache_extraction (file, instruction->format_name, value_type, cur_field->val_string,     /* name */
+                                        NULL,  /* type */
+                                        NULL,  /* expression */
+                                        cur_field->val_string, /* insn field */
                                         value_line,
                                         cur_field,
                                         expanded_bits,
-                                        what_to_declare,
-                                        what_to_do);
+                                        what_to_declare, what_to_do);
              }
          }
       }
@@ -485,29 +472,20 @@ print_icache_body (lf *file,
   {
     cache_entry *cache_rule;
     for (cache_rule = cache_rules;
-        cache_rule != NULL;
-        cache_rule = cache_rule->next)
+        cache_rule != NULL; cache_rule = cache_rule->next)
       {
        if (filter_is_subset (instruction->field_names,
                              cache_rule->original_fields)
-           && !filter_is_member (instruction->field_names,
-                                 cache_rule->name))
+           && !filter_is_member (instruction->field_names, cache_rule->name))
          {
-           char *single_field = filter_next (cache_rule->original_fields, "");
-           if (filter_next (cache_rule->original_fields, single_field) != NULL)
+           char *single_field =
+             filter_next (cache_rule->original_fields, "");
+           if (filter_next (cache_rule->original_fields, single_field) !=
+               NULL)
              single_field = NULL;
-           print_icache_extraction (file,
-                                    instruction->format_name,
-                                    cache_rule->entry_type,
-                                    cache_rule->name,
-                                    cache_rule->type,
-                                    cache_rule->expression,
-                                    single_field,
-                                    cache_rule->line,
-                                    NULL, /* cur_field */
+           print_icache_extraction (file, instruction->format_name, cache_rule->entry_type, cache_rule->name, cache_rule->type, cache_rule->expression, single_field, cache_rule->line, NULL,  /* cur_field */
                                     expanded_bits,
-                                    what_to_declare,
-                                    what_to_do);
+                                    what_to_declare, what_to_do);
          }
       }
   }
@@ -518,7 +496,8 @@ print_icache_body (lf *file,
 
 
 typedef struct _form_fields form_fields;
-struct _form_fields {
+struct _form_fields
+{
   char *name;
   filter *fields;
   form_fields *next;
@@ -529,134 +508,131 @@ insn_table_cache_fields (insn_table *isa)
 {
   form_fields *forms = NULL;
   insn_entry *insn;
-  for (insn = isa->insns;
-       insn != NULL;
-       insn = insn->next) {
-    form_fields **form = &forms;
-    while (1)
-      {
-       if (*form == NULL)
-         {
-           /* new format name, add it */
-           form_fields *new_form = ZALLOC (form_fields);
-           new_form->name = insn->format_name;
-           filter_add (&new_form->fields, insn->field_names);
-           *form = new_form;
-           break;
-         }
-       else if (strcmp ((*form)->name, insn->format_name) == 0)
-         {
-           /* already present, add field names to the existing list */
-           filter_add (&(*form)->fields, insn->field_names);
-           break;
-         }
-       form = &(*form)->next;
-      }
-  }
+  for (insn = isa->insns; insn != NULL; insn = insn->next)
+    {
+      form_fields **form = &forms;
+      while (1)
+       {
+         if (*form == NULL)
+           {
+             /* new format name, add it */
+             form_fields *new_form = ZALLOC (form_fields);
+             new_form->name = insn->format_name;
+             filter_add (&new_form->fields, insn->field_names);
+             *form = new_form;
+             break;
+           }
+         else if (strcmp ((*form)->name, insn->format_name) == 0)
+           {
+             /* already present, add field names to the existing list */
+             filter_add (&(*form)->fields, insn->field_names);
+             break;
+           }
+         form = &(*form)->next;
+       }
+    }
   return forms;
 }
 
 
 
 extern void
-print_icache_struct (lf *file,
-                    insn_table *isa,
-                    cache_entry *cache_rules)
+print_icache_struct (lf *file, insn_table *isa, cache_entry *cache_rules)
 {
   /* Create a list of all the different instruction formats with their
      corresponding field names. */
   form_fields *formats = insn_table_cache_fields (isa);
-  
+
   lf_printf (file, "\n");
   lf_printf (file, "#define WITH_%sIDECODE_CACHE_SIZE %d\n",
             options.module.global.prefix.u,
             (options.gen.icache ? options.gen.icache_size : 0));
   lf_printf (file, "\n");
-  
+
   /* create an instruction cache if being used */
-  if (options.gen.icache) {
-    lf_printf (file, "typedef struct _%sidecode_cache {\n",
-              options.module.global.prefix.l);
-    lf_indent (file, +2);
+  if (options.gen.icache)
     {
-      form_fields *format;
-      lf_printf (file, "unsigned_word address;\n");
-      lf_printf (file, "void *semantic;\n");
-      lf_printf (file, "union {\n");
+      lf_printf (file, "typedef struct _%sidecode_cache {\n",
+                options.module.global.prefix.l);
       lf_indent (file, +2);
-      for (format = formats;
-          format != NULL;
-          format = format->next)
-       {
-         lf_printf (file, "struct {\n");
-         lf_indent (file, +2);
+      {
+       form_fields *format;
+       lf_printf (file, "unsigned_word address;\n");
+       lf_printf (file, "void *semantic;\n");
+       lf_printf (file, "union {\n");
+       lf_indent (file, +2);
+       for (format = formats; format != NULL; format = format->next)
          {
-           cache_entry *cache_rule;
-           char *field;
-           /* space for any instruction words */
-           if (options.gen.insn_in_icache)
-             lf_printf (file, "instruction_word insn[%d];\n", isa->max_nr_words);
-           /* define an entry for any applicable cache rules */
-           for (cache_rule = cache_rules;
-                cache_rule != NULL;
-                cache_rule = cache_rule->next)
-             {
-               /* nb - sort of correct - should really check against
-                   individual instructions */
-               if (filter_is_subset (format->fields, cache_rule->original_fields))
-                 {
-                   char *memb;
-                   lf_printf (file, "%s %s;",
-                              (cache_rule->type == NULL
-                               ? "unsigned" 
-                               : cache_rule->type),
-                              cache_rule->name);
-                   lf_printf (file, " /*");
-                   for (memb = filter_next (cache_rule->original_fields, "");
-                        memb != NULL;
-                        memb = filter_next (cache_rule->original_fields, memb))
-                     {
-                       lf_printf (file, " %s", memb);
-                     }
-                   lf_printf (file, " */\n");
-                 }
-             }
-           /* define an entry for any fields not covered by a cache rule */
-           for (field = filter_next (format->fields, "");
-                field != NULL;
-                field = filter_next (format->fields, field))
-             {
-               cache_entry *cache_rule;
-               int found_rule = 0;
-               for (cache_rule = cache_rules;
-                    cache_rule != NULL;
-                    cache_rule = cache_rule->next)
-                 {
-                   if (strcmp (cache_rule->name, field) == 0)
-                     {
-                       found_rule = 1;
-                       break;
-                     }
-                 }
-               if (!found_rule)
-                 lf_printf (file, "unsigned %s; /* default */\n", field);
-             }
+           lf_printf (file, "struct {\n");
+           lf_indent (file, +2);
+           {
+             cache_entry *cache_rule;
+             char *field;
+             /* space for any instruction words */
+             if (options.gen.insn_in_icache)
+               lf_printf (file, "instruction_word insn[%d];\n",
+                          isa->max_nr_words);
+             /* define an entry for any applicable cache rules */
+             for (cache_rule = cache_rules;
+                  cache_rule != NULL; cache_rule = cache_rule->next)
+               {
+                 /* nb - sort of correct - should really check against
+                    individual instructions */
+                 if (filter_is_subset
+                     (format->fields, cache_rule->original_fields))
+                   {
+                     char *memb;
+                     lf_printf (file, "%s %s;",
+                                (cache_rule->type == NULL
+                                 ? "unsigned"
+                                 : cache_rule->type), cache_rule->name);
+                     lf_printf (file, " /*");
+                     for (memb =
+                          filter_next (cache_rule->original_fields, "");
+                          memb != NULL;
+                          memb =
+                          filter_next (cache_rule->original_fields, memb))
+                       {
+                         lf_printf (file, " %s", memb);
+                       }
+                     lf_printf (file, " */\n");
+                   }
+               }
+             /* define an entry for any fields not covered by a cache rule */
+             for (field = filter_next (format->fields, "");
+                  field != NULL; field = filter_next (format->fields, field))
+               {
+                 cache_entry *cache_rule;
+                 int found_rule = 0;
+                 for (cache_rule = cache_rules;
+                      cache_rule != NULL; cache_rule = cache_rule->next)
+                   {
+                     if (strcmp (cache_rule->name, field) == 0)
+                       {
+                         found_rule = 1;
+                         break;
+                       }
+                   }
+                 if (!found_rule)
+                   lf_printf (file, "unsigned %s; /* default */\n", field);
+               }
+           }
+           lf_indent (file, -2);
+           lf_printf (file, "} %s;\n", format->name);
          }
-         lf_indent (file, -2);
-         lf_printf (file, "} %s;\n", format->name);
-       }
+       lf_indent (file, -2);
+       lf_printf (file, "} crack;\n");
+      }
       lf_indent (file, -2);
-      lf_printf (file, "} crack;\n");
+      lf_printf (file, "} %sidecode_cache;\n",
+                options.module.global.prefix.l);
     }
-    lf_indent (file, -2);
-    lf_printf (file, "} %sidecode_cache;\n", options.module.global.prefix.l);
-  }
   else
     {
       /* alernativly, since no cache, emit a dummy definition for
-        idecode_cache so that code refering to the type can still compile */
-      lf_printf(file, "typedef void %sidecode_cache;\n",
-               options.module.global.prefix.l);
+         idecode_cache so that code refering to the type can still compile */
+      lf_printf (file, "typedef void %sidecode_cache;\n",
+                options.module.global.prefix.l);
     }
   lf_printf (file, "\n");
 }
@@ -665,43 +641,40 @@ print_icache_struct (lf *file,
 
 static void
 print_icache_function (lf *file,
-                      insn_entry *instruction,
+                      insn_entry * instruction,
                       opcode_bits *expanded_bits,
                       insn_opcodes *opcodes,
-                      cache_entry *cache_rules,
-                      int nr_prefetched_words)
+                      cache_entry *cache_rules, int nr_prefetched_words)
 {
   int indent;
 
   /* generate code to enter decoded instruction into the icache */
-  lf_printf(file, "\n");
+  lf_printf (file, "\n");
   lf_print__function_type_function (file, print_icache_function_type,
                                    "EXTERN_ICACHE", "\n");
   indent = print_function_name (file,
                                instruction->name,
                                instruction->format_name,
                                NULL,
-                               expanded_bits,
-                               function_name_prefix_icache);
+                               expanded_bits, function_name_prefix_icache);
   indent += lf_printf (file, " ");
   lf_indent (file, +indent);
   lf_printf (file, "(");
   print_icache_function_formal (file, nr_prefetched_words);
   lf_printf (file, ")\n");
   lf_indent (file, -indent);
-  
+
   /* function header */
   lf_printf (file, "{\n");
   lf_indent (file, +2);
-  
+
   print_my_defines (file,
                    instruction->name,
-                   instruction->format_name,
-                   expanded_bits);
-  print_itrace (file, instruction, 1/*putting-value-in-cache*/);
-  
+                   instruction->format_name, expanded_bits);
+  print_itrace (file, instruction, 1 /*putting-value-in-cache */ );
+
   print_idecode_validate (file, instruction, opcodes);
-  
+
   lf_printf (file, "\n");
   lf_printf (file, "{\n");
   lf_indent (file, +2);
@@ -716,30 +689,25 @@ print_icache_function (lf *file,
                      : declare_variables),
                     (options.gen.semantic_icache
                      ? both_values_and_icache
-                     : put_values_in_icache),
-                    nr_prefetched_words);
-  
+                     : put_values_in_icache), nr_prefetched_words);
+
   lf_printf (file, "\n");
   lf_printf (file, "cache_entry->address = cia;\n");
   lf_printf (file, "cache_entry->semantic = ");
   print_function_name (file,
                       instruction->name,
                       instruction->format_name,
-                      NULL,
-                      expanded_bits,
-                      function_name_prefix_semantics);
+                      NULL, expanded_bits, function_name_prefix_semantics);
   lf_printf (file, ";\n");
   lf_printf (file, "\n");
 
-  if (options.gen.semantic_icache) {
-    lf_printf (file, "/* semantic routine */\n");
-    print_semantic_body (file,
-                        instruction,
-                        expanded_bits,
-                        opcodes);
-    lf_printf (file, "return nia;\n");
-  }
-  
+  if (options.gen.semantic_icache)
+    {
+      lf_printf (file, "/* semantic routine */\n");
+      print_semantic_body (file, instruction, expanded_bits, opcodes);
+      lf_printf (file, "return nia;\n");
+    }
+
   if (!options.gen.semantic_icache)
     {
       lf_printf (file, "/* return the function proper */\n");
@@ -748,11 +716,10 @@ print_icache_function (lf *file,
                           instruction->name,
                           instruction->format_name,
                           NULL,
-                          expanded_bits,
-                          function_name_prefix_semantics);
+                          expanded_bits, function_name_prefix_semantics);
       lf_printf (file, ";\n");
     }
-  
+
   if (options.gen.direct_access)
     {
       print_icache_body (file,
@@ -762,10 +729,9 @@ print_icache_function (lf *file,
                         undef_variables,
                         (options.gen.semantic_icache
                          ? both_values_and_icache
-                         : put_values_in_icache),
-                        nr_prefetched_words);
+                         : put_values_in_icache), nr_prefetched_words);
     }
-  
+
   lf_indent (file, -2);
   lf_printf (file, "}\n");
   lf_indent (file, -2);
@@ -775,25 +741,22 @@ print_icache_function (lf *file,
 
 void
 print_icache_definition (lf *file,
-                        insn_entry *insn,
+                        insn_entry * insn,
                         opcode_bits *expanded_bits,
                         insn_opcodes *opcodes,
-                        cache_entry *cache_rules,
-                        int nr_prefetched_words)
+                        cache_entry *cache_rules, int nr_prefetched_words)
 {
   print_icache_function (file,
                         insn,
                         expanded_bits,
-                        opcodes,
-                        cache_rules,
-                        nr_prefetched_words);
+                        opcodes, cache_rules, nr_prefetched_words);
 }
 
 
 
 void
 print_icache_internal_function_declaration (lf *file,
-                                           function_entry *function,
+                                           function_entry * function,
                                            void *data)
 {
   ASSERT (options.gen.icache);
@@ -804,10 +767,7 @@ print_icache_internal_function_declaration (lf *file,
                                        "INLINE_ICACHE", "\n");
       print_function_name (file,
                           function->name,
-                          NULL,
-                          NULL,
-                          NULL,
-                          function_name_prefix_icache);
+                          NULL, NULL, NULL, function_name_prefix_icache);
       lf_printf (file, "\n(");
       print_icache_function_formal (file, 0);
       lf_printf (file, ");\n");
@@ -817,7 +777,7 @@ print_icache_internal_function_declaration (lf *file,
 
 void
 print_icache_internal_function_definition (lf *file,
-                                          function_entry *function,
+                                          function_entry * function,
                                           void *data)
 {
   ASSERT (options.gen.icache);
@@ -828,10 +788,7 @@ print_icache_internal_function_definition (lf *file,
                                        "INLINE_ICACHE", "\n");
       print_function_name (file,
                           function->name,
-                          NULL,
-                          NULL,
-                          NULL,
-                          function_name_prefix_icache);
+                          NULL, NULL, NULL, function_name_prefix_icache);
       lf_printf (file, "\n(");
       print_icache_function_formal (file, 0);
       lf_printf (file, ")\n");
@@ -842,7 +799,8 @@ print_icache_internal_function_definition (lf *file,
        {
          lf_print__line_ref (file, function->code->line);
          table_print_code (file, function->code);
-         lf_printf (file, "error (\"Internal function must longjump\\n\");\n");
+         lf_printf (file,
+                    "error (\"Internal function must longjump\\n\");\n");
          lf_printf (file, "return 0;\n");
        }
       else
@@ -851,12 +809,10 @@ print_icache_internal_function_definition (lf *file,
          print_function_name (file,
                               function->name,
                               NULL,
-                              NULL,
-                              NULL,
-                              function_name_prefix_semantics);
+                              NULL, NULL, function_name_prefix_semantics);
          lf_printf (file, ";\n");
        }
-      
+
       lf_print__internal_ref (file);
       lf_indent (file, -2);
       lf_printf (file, "}\n");
index 7940e37fca8bfa7abd4f7fa132e942d5f7e07965..e2eec4395788692a21da604f57904225c24d8867 100644 (file)
 /* Output code to manipulate the instruction cache: either create it
    or reference it */
 
-typedef enum {
+typedef enum
+{
   declare_variables,
   define_variables,
   undef_variables,
-} icache_decl_type;
+}
+icache_decl_type;
 
-typedef enum {
+typedef enum
+{
   do_not_use_icache = 0,
   get_values_from_icache = 0x1,
   put_values_in_icache = 0x2,
   both_values_and_icache = 0x3,
-} icache_body_type;
+}
+icache_body_type;
 
 extern void print_icache_body
-(lf *file,
- insn_entry *instruction,
- opcode_bits *expanded_bits,
- cache_entry *cache_rules,
- icache_decl_type what_to_declare,
- icache_body_type what_to_do,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * instruction,
+   opcode_bits *expanded_bits,
+   cache_entry *cache_rules,
+   icache_decl_type what_to_declare,
+   icache_body_type what_to_do, int nr_prefetched_words);
 
 
 /* Output an instruction cache decode function */
 
 extern void print_icache_declaration
-(lf *file,
- insn_entry *insn,
- opcode_bits *expanded_bits,
- insn_opcodes *opcodes,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * insn,
+   opcode_bits *expanded_bits,
+   insn_opcodes *opcodes, int nr_prefetched_words);
+
 extern void print_icache_definition
-(lf *file,
- insn_entry *insn,
- opcode_bits *expanded_bits,
- insn_opcodes *opcodes,
- cache_entry *cache_rules,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * insn,
+   opcode_bits *expanded_bits,
+   insn_opcodes *opcodes, cache_entry *cache_rules, int nr_prefetched_words);
 
 
 /* Output an instruction cache support function */
@@ -75,9 +75,7 @@ extern function_entry_handler print_icache_internal_function_definition;
 /* Output the instruction cache table data structure */
 
 extern void print_icache_struct
-(lf *file,
- insn_table *instructions,
- cache_entry *cache_rules);
+  (lf *file, insn_table *instructions, cache_entry *cache_rules);
 
 
 /* Output a single instructions decoder */
index d15d7015f5b53a7622f0bd0c281560ad3659b6e4..639b5631dddf2512ddc8b57941e74eb06347c749 100644 (file)
 
 
 static void
-lf_print_opcodes (lf *file,
-                 gen_entry *table)
+lf_print_opcodes (lf *file, gen_entry *table)
 {
-  if (table != NULL)
+  if (table !=NULL)
     {
       while (1)
        {
          ASSERT (table->opcode != NULL);
          lf_printf (file, "_%d_%d",
-                    table->opcode->first,
-                    table->opcode->last);
-         if (table->parent == NULL) break;
+                    table->opcode->first, table->opcode->last);
+         if (table->parent == NULL)
+           break;
          lf_printf (file, "__%d", table->opcode_nr);
          table = table->parent;
        }
@@ -68,12 +67,12 @@ print_idecode_ifetch (lf *file,
 {
   int word_nr;
   for (word_nr = previous_nr_prefetched_words;
-       word_nr < current_nr_prefetched_words;
-       word_nr ++)
+       word_nr < current_nr_prefetched_words; word_nr++)
     {
-      lf_printf (file, "instruction_word instruction_%d = IMEM%d_IMMED (cia, %d);\n",
+      lf_printf (file,
+                "instruction_word instruction_%d = IMEM%d_IMMED (cia, %d);\n",
                 word_nr, options.insn_bit_size, word_nr);
-      
+
     }
 }
 
@@ -83,8 +82,7 @@ print_idecode_ifetch (lf *file,
 
 
 static void
-lf_print_table_name (lf *file,
-                    gen_entry *table)
+lf_print_table_name (lf *file, gen_entry *table)
 {
   lf_printf (file, "idecode_table");
   lf_print_opcodes (file, table);
@@ -93,9 +91,7 @@ lf_print_table_name (lf *file,
 
 
 static void
-print_idecode_table (lf *file,
-                    gen_entry *entry,
-                    const char *result)
+print_idecode_table (lf *file, gen_entry *entry, const char *result)
 {
   lf_printf (file, "/* prime the search */\n");
   lf_printf (file, "idecode_table_entry *table = ");
@@ -106,7 +102,7 @@ print_idecode_table (lf *file,
             i2target (options.hi_bit_nr, entry->opcode->first),
             i2target (options.hi_bit_nr, entry->opcode->last));
   lf_printf (file, "idecode_table_entry *table_entry = table + opcode;\n");
-  
+
   lf_printf (file, "\n");
   lf_printf (file, "/* iterate until a leaf */\n");
   lf_printf (file, "while (1) {\n");
@@ -129,7 +125,7 @@ print_idecode_table (lf *file,
   lf_printf (file, "    table_entry = table + opcode;\n");
   lf_printf (file, "  }\n");
   lf_printf (file, "}\n");
-  
+
   lf_printf (file, "\n");
   lf_printf (file, "/* call the leaf code */\n");
   if (options.gen.code == generate_jumps)
@@ -141,14 +137,16 @@ print_idecode_table (lf *file,
       lf_printf (file, "%s ", result);
       if (options.gen.icache)
        {
-         lf_printf (file, "(((idecode_icache*)table_entry->function_or_table)\n");
+         lf_printf (file,
+                    "(((idecode_icache*)table_entry->function_or_table)\n");
          lf_printf (file, "  (");
          print_icache_function_actual (file, 1);
          lf_printf (file, "));\n");
        }
       else
        {
-         lf_printf (file, "((idecode_semantic*)table_entry->function_or_table)\n");
+         lf_printf (file,
+                    "((idecode_semantic*)table_entry->function_or_table)\n");
          lf_printf (file, "  (");
          print_semantic_function_actual (file, 1);
          lf_printf (file, ");\n");
@@ -158,10 +156,7 @@ print_idecode_table (lf *file,
 
 
 static void
-print_idecode_table_start (lf *file,
-                          gen_entry *table,
-                          int depth,
-                          void *data)
+print_idecode_table_start (lf *file, gen_entry *table, int depth, void *data)
 {
   ASSERT (depth == 0);
   /* start of the table */
@@ -175,10 +170,7 @@ print_idecode_table_start (lf *file,
 }
 
 static void
-print_idecode_table_leaf (lf *file,
-                         gen_entry *entry,
-                         int depth,
-                         void *data)
+print_idecode_table_leaf (lf *file, gen_entry *entry, int depth, void *data)
 {
   gen_entry *master_entry;
   ASSERT (entry->parent != NULL);
@@ -238,9 +230,9 @@ print_idecode_table_leaf (lf *file,
       else
        {
          /* table `calling' another table */
-         lf_printf (file, "%d, ", options.insn_bit_size - entry->opcode->last - 1);
-         lf_printf (file, "MASK%d(%d,%d), ",
-                    options.insn_bit_size,
+         lf_printf (file, "%d, ",
+                    options.insn_bit_size - entry->opcode->last - 1);
+         lf_printf (file, "MASK%d(%d,%d), ", options.insn_bit_size,
                     i2target (options.hi_bit_nr, entry->opcode->first),
                     i2target (options.hi_bit_nr, entry->opcode->last));
          lf_printf (file, "0, ");
@@ -251,23 +243,20 @@ print_idecode_table_leaf (lf *file,
 }
 
 static void
-print_idecode_table_end (lf *file,
-                        gen_entry *table,
-                        int depth,
-                        void *data)
+print_idecode_table_end (lf *file, gen_entry *table, int depth, void *data)
 {
   ASSERT (depth == 0);
-  if (table->opcode_rule->gen == array_gen) {
-    lf_printf (file, "};\n");
-  }
+  if (table->opcode_rule->gen == array_gen)
+    {
+      lf_printf (file, "};\n");
+    }
 }
 
 /****************************************************************/
 
 
 static void
-print_goto_switch_name (lf *file,
-                       gen_entry *entry)
+print_goto_switch_name (lf *file, gen_entry *entry)
 {
   lf_printf (file, "case_");
   if (entry->opcode == NULL)
@@ -283,21 +272,19 @@ print_goto_switch_name (lf *file,
     }
   else
     {
-      lf_print_table_name(file, entry);
+      lf_print_table_name (file, entry);
     }
 }
 
 static void
 print_goto_switch_table_leaf (lf *file,
-                             gen_entry *entry,
-                             int depth,
-                             void *data)
+                             gen_entry *entry, int depth, void *data)
 {
   ASSERT (entry->parent != NULL);
   ASSERT (depth == 0);
   ASSERT (entry->parent->opcode_rule->gen == goto_switch_gen);
   ASSERT (entry->parent->opcode);
-  
+
   lf_printf (file, "/* %d */ &&", entry->opcode_nr);
   if (entry->combined_parent != NULL)
     print_goto_switch_name (file, entry->combined_parent);
@@ -307,8 +294,7 @@ print_goto_switch_table_leaf (lf *file,
 }
 
 static void
-print_goto_switch_break (lf *file,
-                        gen_entry *entry)
+print_goto_switch_break (lf *file, gen_entry *entry)
 {
   lf_printf (file, "goto break_");
   lf_print_table_name (file, entry->parent);
@@ -317,41 +303,31 @@ print_goto_switch_break (lf *file,
 
 
 static void
-print_goto_switch_table (lf *file,
-                        gen_entry *table)
+print_goto_switch_table (lf *file, gen_entry *table)
 {
   lf_printf (file, "const static void *");
   lf_print_table_name (file, table);
   lf_printf (file, "[] = {\n");
   lf_indent (file, +2);
-  gen_entry_traverse_tree (file, table,
-                          0,
-                          NULL/*start*/,
-                          print_goto_switch_table_leaf,
-                          NULL/*end*/,
-                          NULL/*data*/);
+  gen_entry_traverse_tree (file, table, 0, NULL /*start */ ,
+                          print_goto_switch_table_leaf, NULL /*end */ ,
+                          NULL /*data */ );
   lf_indent (file, -2);
   lf_printf (file, "};\n");
 }
 
 
-void print_idecode_switch
-(lf *file, 
- gen_entry *table,
- const char *result);
+void print_idecode_switch (lf *file, gen_entry *table, const char *result);
 
 static void
-print_idecode_switch_start (lf *file,
-                           gen_entry *table,
-                           int depth,
-                           void *data)
+print_idecode_switch_start (lf *file, gen_entry *table, int depth, void *data)
 {
   /* const char *result = data; */
   ASSERT (depth == 0);
   ASSERT (table->opcode_rule->gen == switch_gen
          || table->opcode_rule->gen == goto_switch_gen
          || table->opcode_rule->gen == padded_switch_gen);
-  
+
   if (table->opcode->is_boolean
       || table->opcode_rule->gen == switch_gen
       || table->opcode_rule->gen == padded_switch_gen)
@@ -393,16 +369,13 @@ print_idecode_switch_start (lf *file,
     }
   else
     {
-      ASSERT("bad switch" == NULL);
+      ASSERT ("bad switch" == NULL);
     }
 }
 
 
 static void
-print_idecode_switch_leaf (lf *file,
-                          gen_entry *entry,
-                          int depth,
-                          void *data)
+print_idecode_switch_leaf (lf *file, gen_entry *entry, int depth, void *data)
 {
   const char *result = data;
   ASSERT (entry->parent != NULL);
@@ -411,19 +384,17 @@ print_idecode_switch_leaf (lf *file,
          || entry->parent->opcode_rule->gen == goto_switch_gen
          || entry->parent->opcode_rule->gen == padded_switch_gen);
   ASSERT (entry->parent->opcode);
-  
+
   /* skip over any instructions combined into another entry */
   if (entry->combined_parent != NULL)
     return;
 
-  if (entry->parent->opcode->is_boolean
-          && entry->opcode_nr == 0)
+  if (entry->parent->opcode->is_boolean && entry->opcode_nr == 0)
     {
       /* case: boolean false target */
       lf_printf (file, "case %d:\n", entry->parent->opcode->boolean_constant);
     }
-  else if (entry->parent->opcode->is_boolean
-          && entry->opcode_nr != 0)
+  else if (entry->parent->opcode->is_boolean && entry->opcode_nr != 0)
     {
       /* case: boolean true case */
       lf_printf (file, "default:\n");
@@ -475,7 +446,9 @@ print_idecode_switch_leaf (lf *file,
        if (options.gen.code == generate_calls)
          {
            lf_printf (file, " (");
-           print_semantic_function_actual (file, entry->insns->semantic->nr_prefetched_words);
+           print_semantic_function_actual (file,
+                                           entry->insns->semantic->
+                                           nr_prefetched_words);
            lf_printf (file, ")");
          }
        lf_printf (file, ";\n");
@@ -512,7 +485,7 @@ print_idecode_switch_leaf (lf *file,
       }
     else if (entry->parent->opcode_rule->gen == goto_switch_gen)
       {
-       print_goto_switch_break(file, entry);
+       print_goto_switch_break (file, entry);
       }
     else
       {
@@ -525,8 +498,7 @@ print_idecode_switch_leaf (lf *file,
 
 
 static void
-print_idecode_switch_illegal (lf *file,
-                             const char *result)
+print_idecode_switch_illegal (lf *file, const char *result)
 {
   lf_indent (file, +2);
   print_idecode_invalid (file, result, invalid_illegal);
@@ -535,10 +507,7 @@ print_idecode_switch_illegal (lf *file,
 }
 
 static void
-print_idecode_switch_end (lf *file,
-                         gen_entry *table,
-                         int depth,
-                         void *data)
+print_idecode_switch_end (lf *file, gen_entry *table, int depth, void *data)
 {
   const char *result = data;
   ASSERT (depth == 0);
@@ -546,7 +515,7 @@ print_idecode_switch_end (lf *file,
          || table->opcode_rule->gen == goto_switch_gen
          || table->opcode_rule->gen == padded_switch_gen);
   ASSERT (table->opcode);
-  
+
   if (table->opcode->is_boolean)
     {
       lf_printf (file, "}\n");
@@ -559,7 +528,8 @@ print_idecode_switch_end (lf *file,
       lf_indent (file, +2);
       if (table->nr_entries == table->opcode->nr_opcodes)
        {
-         print_sim_engine_abort (file, "Internal error - bad switch generated");
+         print_sim_engine_abort (file,
+                                 "Internal error - bad switch generated");
          lf_printf (file, "%sNULL_CIA;\n", result);
          lf_printf (file, "break;\n");
        }
@@ -578,7 +548,7 @@ print_idecode_switch_end (lf *file,
       lf_printf (file, ":\n");
       print_idecode_invalid (file, result, invalid_illegal);
       lf_printf (file, "break_");
-      lf_print_table_name(file, table);
+      lf_print_table_name (file, table);
       lf_printf (file, ":;\n");
       if (table->parent != NULL
          && (table->parent->opcode_rule->gen == switch_gen
@@ -597,16 +567,13 @@ print_idecode_switch_end (lf *file,
 
 
 void
-print_idecode_switch (lf *file, 
-                     gen_entry *table,
-                     const char *result)
+print_idecode_switch (lf *file, gen_entry *table, const char *result)
 {
   gen_entry_traverse_tree (file, table,
                           0,
                           print_idecode_switch_start,
                           print_idecode_switch_leaf,
-                          print_idecode_switch_end,
-                          (void*)result);
+                          print_idecode_switch_end, (void *) result);
 }
 
 
@@ -657,47 +624,35 @@ print_idecode_switch_function_header (lf *file,
 
 
 static void
-idecode_declare_if_switch (lf *file,
-                          gen_entry *table,
-                          int depth,
-                          void *data)
+idecode_declare_if_switch (lf *file, gen_entry *table, int depth, void *data)
 {
-  if ((table->opcode_rule->gen == switch_gen
-       || table->opcode_rule->gen == goto_switch_gen
-       || table->opcode_rule->gen == padded_switch_gen)
-      && table->parent != NULL /* don't declare the top one yet */
+  if ((table->opcode_rule->gen == switch_gen || table->opcode_rule->gen == goto_switch_gen || table->opcode_rule->gen == padded_switch_gen) &&table->parent != NULL    /* don't declare the top one yet */
       && table->parent->opcode_rule->gen == array_gen)
     {
       print_idecode_switch_function_header (file,
                                            table,
-                                           0/*isnt function definition*/,
+                                           0 /*isnt function definition */ ,
                                            0);
     }
 }
 
 
 static void
-idecode_expand_if_switch (lf *file,
-                         gen_entry *table,
-                         int depth,
-                         void *data)
+idecode_expand_if_switch (lf *file, gen_entry *table, int depth, void *data)
 {
-  if ((table->opcode_rule->gen == switch_gen
-       || table->opcode_rule->gen == goto_switch_gen
-       || table->opcode_rule->gen == padded_switch_gen)
-      && table->parent != NULL /* don't expand the top one yet */
+  if ((table->opcode_rule->gen == switch_gen || table->opcode_rule->gen == goto_switch_gen || table->opcode_rule->gen == padded_switch_gen) &&table->parent != NULL    /* don't expand the top one yet */
       && table->parent->opcode_rule->gen == array_gen)
     {
-      print_idecode_switch_function_header(file,
-                                          table,
-                                          1/*is function definition*/,
-                                          0);
+      print_idecode_switch_function_header (file,
+                                           table,
+                                           1 /*is function definition */ ,
+                                           0);
       if (options.gen.code == generate_calls)
        {
          lf_printf (file, "{\n");
          lf_indent (file, +2);
        }
-      print_idecode_switch(file, table, "return");
+      print_idecode_switch (file, table, "return");
       if (options.gen.code == generate_calls)
        {
          lf_indent (file, -2);
@@ -711,45 +666,32 @@ idecode_expand_if_switch (lf *file,
 
 
 void
-print_idecode_lookups (lf *file,
-                      gen_entry *table,
-                      cache_entry *cache_rules)
+print_idecode_lookups (lf *file, gen_entry *table, cache_entry *cache_rules)
 {
   int depth;
-  
+
   /* output switch function declarations where needed by tables */
-  gen_entry_traverse_tree (file, table,
-                          1,
-                          idecode_declare_if_switch, /* START */
-                          NULL, NULL,
-                          NULL);
-  
+  gen_entry_traverse_tree (file, table, 1, idecode_declare_if_switch,  /* START */
+                          NULL, NULL, NULL);
+
   /* output tables where needed */
-  for (depth = gen_entry_depth (table);
-       depth > 0;
-       depth--)
+  for (depth = gen_entry_depth (table); depth > 0; depth--)
     {
       gen_entry_traverse_tree (file, table,
-                              1-depth,
+                              1 - depth,
                               print_idecode_table_start,
                               print_idecode_table_leaf,
-                              print_idecode_table_end,
-                              NULL);
+                              print_idecode_table_end, NULL);
     }
-  
+
   /* output switch functions where needed */
-  gen_entry_traverse_tree (file, table,
-                           1,
-                           idecode_expand_if_switch, /* START */
-                           NULL, NULL,
-                           NULL);
+  gen_entry_traverse_tree (file, table, 1, idecode_expand_if_switch,   /* START */
+                          NULL, NULL, NULL);
 }
 
 
 void
-print_idecode_body (lf *file,
-                   gen_entry *table,
-                   const char *result)
+print_idecode_body (lf *file, gen_entry *table, const char *result)
 {
   if (table->opcode_rule->gen == switch_gen
       || table->opcode_rule->gen == goto_switch_gen
@@ -768,15 +710,14 @@ print_idecode_body (lf *file,
 
 #if 0
 static void
-print_jump (lf *file,
-           int is_tail)
+print_jump (lf *file, int is_tail)
 {
   if (is_tail)
     {
       lf_putstr (file, "if (keep_running != NULL && !*keep_running)\n");
       lf_putstr (file, "  cpu_halt(cpu, nia, was_continuing, 0/*na*/);\n");
     }
-  
+
   if (!options.generate_smp)
     {
       lf_putstr (file, "if (WITH_EVENTS) {\n");
@@ -787,7 +728,7 @@ print_jump (lf *file,
       lf_putstr (file, "  }\n");
       lf_putstr (file, "}\n");
     }
-  
+
   if (options.generate_smp)
     {
       if (is_tail)
@@ -809,7 +750,7 @@ print_jump (lf *file,
       lf_putstr (file, "cpu = cpus[current_cpu];\n");
       lf_putstr (file, "nia = cpu_get_program_counter(cpu);\n");
     }
-  
+
   if (options.gen.icache)
     {
       lf_putstr (file, "cache_entry = cpu_icache_entry(cpu, nia);\n");
@@ -827,7 +768,7 @@ print_jump (lf *file,
     {
       lf_printf (file, "goto idecode;\n");
     }
-  
+
 }
 #endif
 
@@ -836,16 +777,15 @@ print_jump (lf *file,
 #if 0
 static void
 print_jump_insn (lf *file,
-                insn_entry *instruction,
-                insn_bits *expanded_bits,
-                opcode_field *opcodes,
-                cache_entry *cache_rules)
+                insn_entry * instruction,
+                insn_bits * expanded_bits,
+                opcode_field *opcodes, cache_entry *cache_rules)
 {
-  
+
   /* what we are for the moment */
   lf_printf (file, "\n");
   print_my_defines (file, expanded_bits, instruction->name);
-  
+
   /* output the icache entry */
   if (options.gen.icache)
     {
@@ -853,46 +793,36 @@ print_jump_insn (lf *file,
       lf_indent (file, -1);
       print_function_name (file,
                           instruction->name,
-                          expanded_bits,
-                          function_name_prefix_icache);
+                          expanded_bits, function_name_prefix_icache);
       lf_printf (file, ":\n");
       lf_indent (file, +1);
       lf_printf (file, "{\n");
       lf_indent (file, +2);
       lf_putstr (file, "const unsigned_word cia = nia;\n");
-      print_itrace (file, instruction, 1/*putting-value-in-cache*/);
+      print_itrace (file, instruction, 1 /*putting-value-in-cache */ );
       print_idecode_validate (file, instruction, opcodes);
       lf_printf (file, "\n");
       lf_printf (file, "{\n");
       lf_indent (file, +2);
-      print_icache_body (file,
-                        instruction,
-                        expanded_bits,
-                        cache_rules,
-                        0, /*use_defines*/
+      print_icache_body (file, instruction, expanded_bits, cache_rules, 0,     /*use_defines */
                         put_values_in_icache);
       lf_printf (file, "cache_entry->address = nia;\n");
       lf_printf (file, "cache_entry->semantic = &&");
       print_function_name (file,
                           instruction->name,
-                          expanded_bits,
-                          function_name_prefix_semantics);
+                          expanded_bits, function_name_prefix_semantics);
       lf_printf (file, ";\n");
       if (options.gen.semantic_icache)
        {
-         print_semantic_body (file,
-                              instruction,
-                              expanded_bits,
-                              opcodes);
-         print_jump (file, 1/*is-tail*/);
+         print_semantic_body (file, instruction, expanded_bits, opcodes);
+         print_jump (file, 1 /*is-tail */ );
        }
       else
        {
          lf_printf (file, "/* goto ");
          print_function_name (file,
                               instruction->name,
-                              expanded_bits,
-                              function_name_prefix_semantics);
+                              expanded_bits, function_name_prefix_semantics);
          lf_printf (file, "; */\n");
        }
       lf_indent (file, -2);
@@ -900,14 +830,13 @@ print_jump_insn (lf *file,
       lf_indent (file, -2);
       lf_printf (file, "}\n");
     }
-  
+
   /* print the semantics */
   lf_printf (file, "\n");
   lf_indent (file, -1);
   print_function_name (file,
                       instruction->name,
-                      expanded_bits,
-                      function_name_prefix_semantics);
+                      expanded_bits, function_name_prefix_semantics);
   lf_printf (file, ":\n");
   lf_indent (file, +1);
   lf_printf (file, "{\n");
@@ -921,12 +850,8 @@ print_jump_insn (lf *file,
                      ? define_variables
                      : declare_variables),
                     (options.gen.icache
-                     ? get_values_from_icache
-                     : do_not_use_icache));
-  print_semantic_body (file,
-                      instruction,
-                      expanded_bits,
-                      opcodes);
+                     ? get_values_from_icache : do_not_use_icache));
+  print_semantic_body (file, instruction, expanded_bits, opcodes);
   if (options.gen.direct_access)
     print_icache_body (file,
                       instruction,
@@ -934,9 +859,8 @@ print_jump_insn (lf *file,
                       cache_rules,
                       undef_variables,
                       (options.gen.icache
-                       ? get_values_from_icache
-                       : do_not_use_icache));
-  print_jump (file, 1/*is tail*/);
+                       ? get_values_from_icache : do_not_use_icache));
+  print_jump (file, 1 /*is tail */ );
   lf_indent (file, -2);
   lf_printf (file, "}\n");
 }
@@ -947,17 +871,14 @@ print_jump_insn (lf *file,
 static void
 print_jump_definition (lf *file,
                       gen_entry *entry,
-                      insn_entry *insn,
-                      int depth,
-                      void *data)
+                      insn_entry * insn, int depth, void *data)
 {
-  cache_entry *cache_rules = (cache_entry*)data;
+  cache_entry *cache_rules = (cache_entry *) data;
   if (options.generate_expanded_instructions)
     {
       ASSERT (entry->nr_insns == 1
              && entry->opcode == NULL
-             && entry->parent != NULL
-             && entry->parent->opcode != NULL);
+             && entry->parent != NULL && entry->parent->opcode != NULL);
       ASSERT (entry->nr_insns == 1
              && entry->opcode == NULL
              && entry->parent != NULL
@@ -965,17 +886,12 @@ print_jump_definition (lf *file,
              && entry->parent->opcode_rule != NULL);
       print_jump_insn (file,
                       entry->insns->words[0]->insn,
-                      entry->expanded_bits,
-                      entry->opcode,
-                      cache_rules);
+                      entry->expanded_bits, entry->opcode, cache_rules);
     }
   else
     {
       print_jump_insn (file,
-                      instruction->words[0]->insn,
-                      NULL,
-                      NULL,
-                      cache_rules);
+                      instruction->words[0]->insn, NULL, NULL, cache_rules);
     }
 }
 #endif
@@ -984,8 +900,7 @@ print_jump_definition (lf *file,
 static void
 print_jump_internal_function (lf *file,
                              gen_entry *table,
-                             function_entry *function,
-                             void *data)
+                             function_entry * function, void *data)
 {
   if (function->is_internal)
     {
@@ -1016,9 +931,8 @@ print_jump_internal_function (lf *file,
 
 #if 0
 static void
-print_jump_until_stop_body(lf *file,
-                          insn_table *table,
-                          cache_table *cache_rules)
+print_jump_until_stop_body (lf *file,
+                           insn_table *table, cache_table * cache_rules)
 {
   lf_printf (file, "{\n");
   lf_indent (file, +2);
@@ -1027,25 +941,28 @@ print_jump_until_stop_body(lf *file,
   lf_putstr (file, "sim_cpu *cpu = NULL;\n");
   lf_putstr (file, "unsigned_word nia = -1;\n");
   lf_putstr (file, "instruction_word instruction = 0;\n");
-  if ((code & generate_with_icache)) {
-    lf_putstr (file, "idecode_cache *cache_entry = NULL;\n");
-  }
-  if (generate_smp) {
-    lf_putstr (file, "int current_cpu = -1;\n");
-  }
+  if ((code & generate_with_icache))
+    {
+      lf_putstr (file, "idecode_cache *cache_entry = NULL;\n");
+    }
+  if (generate_smp)
+    {
+      lf_putstr (file, "int current_cpu = -1;\n");
+    }
 
   /* all the switches and tables - they know about jumping */
-  print_idecode_lookups(file, table, cache_rules);
+  print_idecode_lookups (file, table, cache_rules);
+
   /* start the simulation up */
-  if ((code & generate_with_icache)) {
-    lf_putstr (file, "\n");
-    lf_putstr (file, "{\n");
-    lf_putstr (file, "  int cpu_nr;\n");
-    lf_putstr (file, "  for (cpu_nr = 0; cpu_nr < nr_cpus; cpu_nr++)\n");
-    lf_putstr (file, "    cpu_flush_icache(cpus[cpu_nr]);\n");
-    lf_putstr (file, "}\n");
-  }
+  if ((code & generate_with_icache))
+    {
+      lf_putstr (file, "\n");
+      lf_putstr (file, "{\n");
+      lf_putstr (file, "  int cpu_nr;\n");
+      lf_putstr (file, "  for (cpu_nr = 0; cpu_nr < nr_cpus; cpu_nr++)\n");
+      lf_putstr (file, "    cpu_flush_icache(cpus[cpu_nr]);\n");
+      lf_putstr (file, "}\n");
+    }
 
   lf_putstr (file, "\n");
   lf_putstr (file, "psim_set_halt_and_restart(system, &halt, &restart);\n");
@@ -1058,52 +975,51 @@ print_jump_until_stop_body(lf *file,
   lf_putstr (file, "setjmp(restart);\n");
 
   lf_putstr (file, "\n");
-  if (!generate_smp) {
-    lf_putstr (file, "cpu = cpus[0];\n");
-    lf_putstr (file, "nia = cpu_get_program_counter(cpu);\n");
-  }
-  else {
-    lf_putstr (file, "current_cpu = psim_last_cpu(system);\n");
-  }
+  if (!generate_smp)
+    {
+      lf_putstr (file, "cpu = cpus[0];\n");
+      lf_putstr (file, "nia = cpu_get_program_counter(cpu);\n");
+    }
+  else
+    {
+      lf_putstr (file, "current_cpu = psim_last_cpu(system);\n");
+    }
 
-  if (!(code & generate_with_icache)) {
-    lf_printf (file, "\n");
-    lf_indent (file, -1);
-    lf_printf (file, "idecode:\n");
-    lf_indent (file, +1);
-  }
+  if (!(code & generate_with_icache))
+    {
+      lf_printf (file, "\n");
+      lf_indent (file, -1);
+      lf_printf (file, "idecode:\n");
+      lf_indent (file, +1);
+    }
 
-  print_jump(file, 0/*is_tail*/);
+  print_jump (file, 0 /*is_tail */ );
 
-  if ((code & generate_with_icache)) {
-    lf_indent (file, -1);
-    lf_printf (file, "cache_miss:\n");
-    lf_indent (file, +1);
-  }
+  if ((code & generate_with_icache))
+    {
+      lf_indent (file, -1);
+      lf_printf (file, "cache_miss:\n");
+      lf_indent (file, +1);
+    }
 
   lf_putstr (file, "instruction\n");
   lf_putstr (file, "  = vm_instruction_map_read(cpu_instruction_map(cpu),\n");
   lf_putstr (file, "                            cpu, nia);\n");
-  print_idecode_body(file, table, "/*IGORE*/");
+  print_idecode_body (file, table, "/*IGORE*/");
 
   /* print out a table of all the internals functions */
-  insn_table_traverse_function(table,
-                              file, NULL,
-                              print_jump_internal_function);
+  insn_table_traverse_function (table,
+                               file, NULL, print_jump_internal_function);
 
- /* print out a table of all the instructions */
 /* print out a table of all the instructions */
   if (generate_expanded_instructions)
-    insn_table_traverse_tree(table,
-                            file, cache_rules,
-                            1,
-                            NULL, /* start */
-                            print_jump_definition, /* leaf */
-                            NULL, /* end */
-                            NULL); /* padding */
+    insn_table_traverse_tree (table, file, cache_rules, 1, NULL,       /* start */
+                             print_jump_definition,    /* leaf */
+                             NULL,     /* end */
+                             NULL);    /* padding */
   else
-    insn_table_traverse_insn(table,
-                            file, cache_rules,
-                            print_jump_definition);
+    insn_table_traverse_insn (table,
+                             file, cache_rules, print_jump_definition);
   lf_indent (file, -2);
   lf_printf (file, "}\n");
 }
@@ -1120,8 +1036,7 @@ print_jump_until_stop_body(lf *file,
 
 void
 print_idecode_validate (lf *file,
-                       insn_entry *instruction,
-                       insn_opcodes *opcode_paths)
+                       insn_entry * instruction, insn_opcodes *opcode_paths)
 {
   /* Validate: unchecked instruction fields
 
@@ -1154,27 +1069,24 @@ print_idecode_validate (lf *file,
            /* Make space for the next bit */
            check_mask <<= 1;
            check_val <<= 1;
-           
+
            /* Only need to validate constant (and reserved)
-               bits. Skip any others */
+              bits. Skip any others */
            if (field->type != insn_field_int
                && field->type != insn_field_reserved)
              continue;
 
            /* Look through the list of opcode paths that lead to this
-               instruction.  See if any have failed to check the
-               relevant bit */
+              instruction.  See if any have failed to check the
+              relevant bit */
            if (opcode_paths != NULL)
              {
                insn_opcodes *entry;
-               for (entry = opcode_paths;
-                    entry != NULL;
-                    entry = entry->next)
+               for (entry = opcode_paths; entry != NULL; entry = entry->next)
                  {
                    opcode_field *opcode;
                    for (opcode = entry->opcode;
-                        opcode != NULL;
-                        opcode = opcode->parent)
+                        opcode != NULL; opcode = opcode->parent)
                      {
                        if (opcode->word_nr == word_nr
                            && opcode->first <= bit_nr
@@ -1188,14 +1100,14 @@ print_idecode_validate (lf *file,
                  }
                if (entry == NULL)
                  /* all the opcode paths decoded on BIT_NR, no need
-                     to check it */
+                    to check it */
                  continue;
              }
-           
+
            check_mask |= 1;
            check_val |= bit->value;
          }
-       
+
        /* if any bits not checked by opcode tables, output code to check them */
        if (check_mask)
          {
@@ -1205,23 +1117,23 @@ print_idecode_validate (lf *file,
                lf_printf (file, "  {\n");
                lf_indent (file, +4);
              }
-           nr_checks ++;
+           nr_checks++;
            if (options.insn_bit_size > 32)
              {
-               lf_printf (file, "if ((instruction_%d\n", word_nr); 
+               lf_printf (file, "if ((instruction_%d\n", word_nr);
                lf_printf (file, "     & UNSIGNED64 (0x%08lx%08lx))\n",
-                          (unsigned long)(check_mask >> 32),
-                          (unsigned long)(check_mask));
+                          (unsigned long) (check_mask >> 32),
+                          (unsigned long) (check_mask));
                lf_printf (file, "    != UNSIGNED64 (0x%08lx%08lx))\n",
-                          (unsigned long)(check_val >> 32),
-                          (unsigned long)(check_val));
+                          (unsigned long) (check_val >> 32),
+                          (unsigned long) (check_val));
              }
            else
              {
-               lf_printf (file, "if ((instruction_%d & 0x%08lx) != 0x%08lx)\n",
-                          word_nr,
-                          (unsigned long)(check_mask),
-                          (unsigned long)(check_val));
+               lf_printf (file,
+                          "if ((instruction_%d & 0x%08lx) != 0x%08lx)\n",
+                          word_nr, (unsigned long) (check_mask),
+                          (unsigned long) (check_val));
              }
            lf_indent (file, +2);
            print_idecode_invalid (file, "return", invalid_illegal);
@@ -1233,12 +1145,12 @@ print_idecode_validate (lf *file,
        lf_indent (file, -4);
        lf_printf (file, "  }\n");
       }
-    lf_indent_suppress(file);
+    lf_indent_suppress (file);
     lf_printf (file, "#endif\n");
   }
 
   /* Validate: Floating Point hardware
-     
+
      If the simulator is being built with out floating point hardware
      (different to it being disabled in the MSR) then floating point
      instructions are invalid */
@@ -1249,7 +1161,8 @@ print_idecode_validate (lf *file,
        lf_indent_suppress (file);
        lf_printf (file, "#if defined(CURRENT_FLOATING_POINT)\n");
        lf_printf (file, "/* Validate: FP hardware exists */\n");
-       lf_printf (file, "if (CURRENT_FLOATING_POINT != HARD_FLOATING_POINT) {\n");
+       lf_printf (file,
+                  "if (CURRENT_FLOATING_POINT != HARD_FLOATING_POINT) {\n");
        lf_indent (file, +2);
        print_idecode_invalid (file, "return", invalid_illegal);
        lf_indent (file, -2);
@@ -1277,14 +1190,14 @@ print_idecode_validate (lf *file,
        lf_printf (file, "/* Validate: FP available according to cpu */\n");
        lf_printf (file, "if (!IS_FP_AVAILABLE) {\n");
        lf_indent (file, +2);
-       print_idecode_invalid (file, "return",  invalid_fp_unavailable);
+       print_idecode_invalid (file, "return", invalid_fp_unavailable);
        lf_indent (file, -2);
        lf_printf (file, "}\n");
        lf_indent_suppress (file);
        lf_printf (file, "#endif\n");
       }
   }
-  
+
   /* Validate: Validate Instruction in correct slot
 
      Some architectures place restrictions on the slot that an
@@ -1297,7 +1210,8 @@ print_idecode_validate (lf *file,
        lf_printf (file, "\n");
        lf_indent_suppress (file);
        lf_printf (file, "#if defined(IS_WRONG_SLOT)\n");
-       lf_printf (file, "/* Validate: Instruction issued in correct slot */\n");
+       lf_printf (file,
+                  "/* Validate: Instruction issued in correct slot */\n");
        lf_printf (file, "if (IS_WRONG_SLOT) {\n");
        lf_indent (file, +2);
        print_idecode_invalid (file, "return", invalid_wrong_slot);
@@ -1307,7 +1221,7 @@ print_idecode_validate (lf *file,
        lf_printf (file, "#endif\n");
       }
   }
-  
+
 }
 
 
@@ -1326,13 +1240,11 @@ print_idecode_issue_function_header (lf *file,
     {
     case is_function_declaration:
       lf_print__function_type_function (file, print_semantic_function_type,
-                                       "INLINE_IDECODE",
-                                       " ");
+                                       "INLINE_IDECODE", " ");
       break;
     case is_function_definition:
       lf_print__function_type_function (file, print_semantic_function_type,
-                                       "INLINE_IDECODE",
-                                       "\n");
+                                       "INLINE_IDECODE", "\n");
       break;
     case is_function_variable:
       print_semantic_function_type (file);
@@ -1343,8 +1255,7 @@ print_idecode_issue_function_header (lf *file,
                                "issue",
                                NULL,
                                processor,
-                               NULL,
-                               function_name_prefix_idecode);
+                               NULL, function_name_prefix_idecode);
   switch (decl_type)
     {
     case is_function_definition:
index 9578e6c01b18f452b98a75aaf8d68abe09b6dfbc..18682e4d6d4df702c78aac404bdccbdef1a3b427 100644 (file)
 
 
 void print_idecode_issue_function_header
-(lf *file,
- const char *processor,
- function_decl_type decl_type,
- int nr_prefetched_words);
+  (lf *file,
+   const char *processor,
+   function_decl_type decl_type, int nr_prefetched_words);
 
-void print_idecode_globals
-(lf *file);
+void print_idecode_globals (lf *file);
 
 void print_idecode_lookups
-(lf *file,
- gen_entry *table,
- cache_entry *cache_rules);
+  (lf *file, gen_entry *table, cache_entry *cache_rules);
 
-void print_idecode_body
-(lf *file,
- gen_entry *table,
- const char *result);
+void print_idecode_body (lf *file, gen_entry *table, const char *result);
 
 
 
@@ -49,6 +42,4 @@ void print_idecode_body
    hardware isn't disabled */
 
 extern void print_idecode_validate
-(lf *file,
- insn_entry *instruction,
- insn_opcodes *opcode_paths);
+  (lf *file, insn_entry * instruction, insn_opcodes *opcode_paths);
index dea71a2ca8a872a4f08893e880d0fa7c3c4eee0c..7b94d37449bb5da7c97858d5a86ae74006ee2e52 100644 (file)
 
 
 
-typedef struct _itable_info {
+typedef struct _itable_info
+{
   int sizeof_form;
   int sizeof_name;
   int sizeof_file;
-} itable_info;
+}
+itable_info;
 
 
 static void
 itable_h_insn (lf *file,
-              insn_table *entry,
-              insn_entry *instruction,
-              void *data)
+              insn_table *entry, insn_entry * instruction, void *data)
 {
   int len;
   itable_info *info = data;
@@ -62,9 +62,7 @@ itable_h_insn (lf *file,
   print_function_name (file,
                       instruction->name,
                       instruction->format_name,
-                      NULL,
-                      NULL,
-                      function_name_prefix_itable);
+                      NULL, NULL, function_name_prefix_itable);
   lf_printf (file, ",\n");
   /* update summary info */
   len = strlen (instruction->format_name);
@@ -82,16 +80,13 @@ itable_h_insn (lf *file,
 /* print the list of all the different options */
 
 static void
-itable_print_enum (lf *file,
-                  filter *set,
-                  char *name)
+itable_print_enum (lf *file, filter *set, char *name)
 {
   char *elem;
   lf_printf (file, "typedef enum {\n");
   lf_indent (file, +2);
   for (elem = filter_next (set, "");
-       elem != NULL;
-       elem = filter_next (set, elem))
+       elem != NULL; elem = filter_next (set, elem))
     {
       lf_printf (file, "%sitable_%s_%s,\n",
                 options.module.itable.prefix.l, name, elem);
@@ -102,8 +97,9 @@ itable_print_enum (lf *file,
                     name, elem, options.module.itable.prefix.l, name, elem);
        }
     }
-  lf_printf (file, "nr_%sitable_%ss,\n", options.module.itable.prefix.l, name);
-  
+  lf_printf (file, "nr_%sitable_%ss,\n", options.module.itable.prefix.l,
+            name);
+
   lf_indent (file, -2);
   lf_printf (file, "} %sitable_%ss;\n", options.module.itable.prefix.l, name);
   if (strlen (options.module.itable.prefix.l) > 0)
@@ -120,9 +116,7 @@ itable_print_enum (lf *file,
 /* print an array of the option names as strings */
 
 static void
-itable_print_names (lf *file,
-                   filter *set,
-                   char *name)
+itable_print_names (lf *file, filter *set, char *name)
 {
   char *elem;
   lf_printf (file, "const char *%sitable_%s_names[nr_%sitable_%ss + 1] = {\n",
@@ -130,8 +124,7 @@ itable_print_names (lf *file,
             options.module.itable.prefix.l, name);
   lf_indent (file, +2);
   for (elem = filter_next (set, "");
-       elem != NULL;
-       elem = filter_next (set, elem))
+       elem != NULL; elem = filter_next (set, elem))
     {
       lf_printf (file, "\"%s\",\n", elem);
     }
@@ -140,16 +133,16 @@ itable_print_names (lf *file,
   lf_printf (file, "};\n");
 }
 
-extern void 
-gen_itable_h (lf *file,
-             insn_table *isa)
+extern void
+gen_itable_h (lf *file, insn_table *isa)
 {
   itable_info *info = ZALLOC (itable_info);
 
   /* output an enumerated type for each instruction */
   lf_printf (file, "typedef enum {\n");
   insn_table_traverse_insn (file, isa, itable_h_insn, info);
-  lf_printf (file, "  nr_%sitable_entries,\n", options.module.itable.prefix.l);
+  lf_printf (file, "  nr_%sitable_entries,\n",
+            options.module.itable.prefix.l);
   lf_printf (file, "} %sitable_index;\n", options.module.itable.prefix.l);
   lf_printf (file, "\n");
 
@@ -158,7 +151,7 @@ gen_itable_h (lf *file,
   lf_printf (file, "extern const char *%sitable_flag_names[];\n",
             options.module.itable.prefix.l);
   lf_printf (file, "\n");
-    
+
   /* output an enumeration of all the possible options */
   itable_print_enum (file, isa->options, "option");
   lf_printf (file, "extern const char *%sitable_option_names[];\n",
@@ -220,9 +213,7 @@ gen_itable_h (lf *file,
 /****************************************************************/
 
 static void
-itable_print_set (lf *file,
-                 filter *set,
-                 filter *members)
+itable_print_set (lf *file, filter *set, filter *members)
 {
   char *elem;
   lf_printf (file, "\"");
@@ -240,10 +231,9 @@ itable_print_set (lf *file,
     }
   lf_printf (file, "\",\n");
 
-  lf_printf(file, "{");
+  lf_printf (file, "{");
   for (elem = filter_next (set, "");
-       elem != NULL;
-       elem = filter_next (set, elem))
+       elem != NULL; elem = filter_next (set, elem))
     {
       if (filter_is_member (members, elem))
        {
@@ -253,27 +243,23 @@ itable_print_set (lf *file,
        {
          lf_printf (file, " 0,");
        }
-      
+
     }
   /* always print a dummy element, to avoid empty initializers. */
-  lf_printf(file, " 99 },\n");
+  lf_printf (file, " 99 },\n");
 }
 
 
 static void
 itable_c_insn (lf *file,
-              insn_table *isa,
-              insn_entry *instruction,
-              void *data)
+              insn_table *isa, insn_entry * instruction, void *data)
 {
   lf_printf (file, "{ ");
   lf_indent (file, +2);
   print_function_name (file,
                       instruction->name,
                       instruction->format_name,
-                      NULL,
-                      NULL,
-                      function_name_prefix_itable);
+                      NULL, NULL, function_name_prefix_itable);
   lf_printf (file, ",\n");
   lf_printf (file, "\"");
   print_insn_words (file, instruction);
@@ -284,22 +270,22 @@ itable_c_insn (lf *file,
   itable_print_set (file, isa->options, instruction->options);
   itable_print_set (file, isa->model->processors, instruction->processors);
 
-  lf_printf(file, "\"%s\",\n", instruction->name);
-  lf_printf(file, "\"%s\",\n",
-           filter_filename (instruction->line->file_name));
-  lf_printf(file, "%d,\n", instruction->line->line_nr);
-  lf_printf(file, "},\n");
+  lf_printf (file, "\"%s\",\n", instruction->name);
+  lf_printf (file, "\"%s\",\n",
+            filter_filename (instruction->line->file_name));
+  lf_printf (file, "%d,\n", instruction->line->line_nr);
+  lf_printf (file, "},\n");
   lf_indent (file, -2);
 }
 
 
-extern void 
-gen_itable_c (lf *file,
-             insn_table *isa)
+extern void
+gen_itable_c (lf *file, insn_table *isa)
 {
   /* leader */
-  lf_printf(file, "#include \"%sitable.h\"\n", options.module.itable.prefix.l);
-  lf_printf(file, "\n");
+  lf_printf (file, "#include \"%sitable.h\"\n",
+            options.module.itable.prefix.l);
+  lf_printf (file, "\n");
 
   /* FIXME - output model data??? */
   /* FIXME - output assembler data??? */
@@ -312,9 +298,8 @@ gen_itable_c (lf *file,
   /* output the table that contains the actual instruction info */
   lf_printf (file, "%sitable_info %sitable[nr_%sitable_entries] = {\n",
             options.module.itable.prefix.l,
-            options.module.itable.prefix.l,
-            options.module.itable.prefix.l);
+            options.module.itable.prefix.l, options.module.itable.prefix.l);
   insn_table_traverse_insn (file, isa, itable_c_insn, NULL);
 
-  lf_printf(file, "};\n");
+  lf_printf (file, "};\n");
 }
index 3134819fd3ce6aa37bf002729f16e02163df5a05..3cc69fba1163a6c4468299cdfa159b641a289945 100644 (file)
 
 /* Output a table of all the instructions */
 
-extern void gen_itable_h
-(lf *file,
- insn_table *table);
+extern void gen_itable_h (lf *file, insn_table *table);
 
-extern void gen_itable_c
-(lf *file,
- insn_table *table);
+extern void gen_itable_c (lf *file, insn_table *table);
index 98302c038859f99320992578a5161bd91a7a5771..8f35f0f1d0c814b36168f2da9a5ec8f32f50ce96 100644 (file)
 
 #if 0
 static void
-model_c_or_h_data(insn_table *table,
-                 lf *file,
-                 table_entry *data)
+model_c_or_h_data (insn_table *table, lf *file, table_entry *data)
 {
-  if (data->annex) {
-    table_entry_print_cpp_line_nr(file, data->annex_line);
-    lf_print__c_code(file, data->annex);
-    lf_print__internal_reference(file);
-    lf_printf(file, "\n");
-  }
+  if (data->annex)
+    {
+      table_entry_print_cpp_line_nr (file, data->annex_line);
+      lf_print__c_code (file, data->annex);
+      lf_print__internal_reference (file);
+      lf_printf (file, "\n");
+    }
 }
 
 static void
-model_c_or_h_function(insn_table *entry,
-                     lf *file,
-                     table_entry *function,
-                     char *prefix)
+model_c_or_h_function (insn_table *entry,
+                      lf *file, table_entry *function, char *prefix)
 {
   if (function->fields[function_type] == NULL
-      || function->fields[function_type][0] == '\0') {
-    error("Model function type not specified for %s", function->fields[function_name]);
-  }
-  lf_printf(file, "\n");
-  lf_print_function_type(file, function->fields[function_type], prefix, " ");
-  lf_printf(file, "%s\n(%s);\n",
-           function->fields[function_name],
-           function->fields[function_param]);
-  lf_printf(file, "\n");
+      || function->fields[function_type][0] == '\0')
+    {
+      error ("Model function type not specified for %s",
+            function->fields[function_name]);
+    }
+  lf_printf (file, "\n");
+  lf_print_function_type (file, function->fields[function_type], prefix, " ");
+  lf_printf (file, "%s\n(%s);\n",
+            function->fields[function_name],
+            function->fields[function_param]);
+  lf_printf (file, "\n");
 }
 
-void 
-gen_model_h(insn_table *table, lf *file)
+void
+gen_model_h (insn_table *table, lf *file)
 {
   insn *insn_ptr;
   model *model_ptr;
@@ -83,161 +82,171 @@ gen_model_h(insn_table *table, lf *file)
   int model_mon_info_p = 0;
   int model_mon_info_free_p = 0;
 
-  for(macro = model_macros; macro; macro = macro->next) {
-    model_c_or_h_data(table, file, macro->file_entry);
-  }
-
-  lf_printf(file, "typedef enum _model_enum {\n");
-  lf_printf(file, "  MODEL_NONE,\n");
-  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-    lf_printf(file, "  MODEL_%s,\n", model_ptr->name);
-  }
-  lf_printf(file, "  nr_models\n");
-  lf_printf(file, "} model_enum;\n");
-  lf_printf(file, "\n");
-
-  lf_printf(file, "#define DEFAULT_MODEL MODEL_%s\n", (models) ? models->name : "NONE");
-  lf_printf(file, "\n");
-
-  lf_printf(file, "typedef struct _model_data model_data;\n");
-  lf_printf(file, "typedef struct _model_time model_time;\n");
-  lf_printf(file, "\n");
-
-  lf_printf(file, "extern model_enum current_model;\n");
-  lf_printf(file, "extern const char *model_name[ (int)nr_models ];\n");
-  lf_printf(file, "extern const char *const *const model_func_unit_name[ (int)nr_models ];\n");
-  lf_printf(file, "extern const model_time *const model_time_mapping[ (int)nr_models ];\n");
-  lf_printf(file, "\n");
-
-  for(insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_or_h_function(table, file, insn_ptr->file_entry, "INLINE_MODEL");
-    name = insn_ptr->file_entry->fields[function_name];
-    if (strcmp (name, "model_create") == 0)
-      model_create_p = 1;
-    else if (strcmp (name, "model_init") == 0)
-      model_init_p = 1;
-    else if (strcmp (name, "model_halt") == 0)
-      model_halt_p = 1;
-    else if (strcmp (name, "model_mon_info") == 0)
-      model_mon_info_p = 1;
-    else if (strcmp (name, "model_mon_info_free") == 0)
-      model_mon_info_free_p = 1;
-  }
-
-  if (!model_create_p) {
-    lf_print_function_type(file, "model_data *", "INLINE_MODEL", " ");
-    lf_printf(file, "model_create\n");
-    lf_printf(file, "(sim_cpu *cpu);\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_init_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", " ");
-    lf_printf(file, "model_init\n");
-    lf_printf(file, "(model_data *model_ptr);\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_halt_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", " ");
-    lf_printf(file, "model_halt\n");
-    lf_printf(file, "(model_data *model_ptr);\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_mon_info_p) {
-    lf_print_function_type(file, "model_print *", "INLINE_MODEL", " ");
-    lf_printf(file, "model_mon_info\n");
-    lf_printf(file, "(model_data *model_ptr);\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_mon_info_free_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", " ");
-    lf_printf(file, "model_mon_info_free\n");
-    lf_printf(file, "(model_data *model_ptr,\n");
-    lf_printf(file, " model_print *info_ptr);\n");
-    lf_printf(file, "\n");
-  }
-
-  lf_print_function_type(file, "void", "INLINE_MODEL", " ");
-  lf_printf(file, "model_set\n");
-  lf_printf(file, "(const char *name);\n");
+  for (macro = model_macros; macro; macro = macro->next)
+    {
+      model_c_or_h_data (table, file, macro->file_entry);
+    }
+
+  lf_printf (file, "typedef enum _model_enum {\n");
+  lf_printf (file, "  MODEL_NONE,\n");
+  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+    {
+      lf_printf (file, "  MODEL_%s,\n", model_ptr->name);
+    }
+  lf_printf (file, "  nr_models\n");
+  lf_printf (file, "} model_enum;\n");
+  lf_printf (file, "\n");
+
+  lf_printf (file, "#define DEFAULT_MODEL MODEL_%s\n",
+            (models) ? models->name : "NONE");
+  lf_printf (file, "\n");
+
+  lf_printf (file, "typedef struct _model_data model_data;\n");
+  lf_printf (file, "typedef struct _model_time model_time;\n");
+  lf_printf (file, "\n");
+
+  lf_printf (file, "extern model_enum current_model;\n");
+  lf_printf (file, "extern const char *model_name[ (int)nr_models ];\n");
+  lf_printf (file,
+            "extern const char *const *const model_func_unit_name[ (int)nr_models ];\n");
+  lf_printf (file,
+            "extern const model_time *const model_time_mapping[ (int)nr_models ];\n");
+  lf_printf (file, "\n");
+
+  for (insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_or_h_function (table, file, insn_ptr->file_entry,
+                            "INLINE_MODEL");
+      name = insn_ptr->file_entry->fields[function_name];
+      if (strcmp (name, "model_create") == 0)
+       model_create_p = 1;
+      else if (strcmp (name, "model_init") == 0)
+       model_init_p = 1;
+      else if (strcmp (name, "model_halt") == 0)
+       model_halt_p = 1;
+      else if (strcmp (name, "model_mon_info") == 0)
+       model_mon_info_p = 1;
+      else if (strcmp (name, "model_mon_info_free") == 0)
+       model_mon_info_free_p = 1;
+    }
+
+  if (!model_create_p)
+    {
+      lf_print_function_type (file, "model_data *", "INLINE_MODEL", " ");
+      lf_printf (file, "model_create\n");
+      lf_printf (file, "(sim_cpu *cpu);\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_init_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", " ");
+      lf_printf (file, "model_init\n");
+      lf_printf (file, "(model_data *model_ptr);\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_halt_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", " ");
+      lf_printf (file, "model_halt\n");
+      lf_printf (file, "(model_data *model_ptr);\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_mon_info_p)
+    {
+      lf_print_function_type (file, "model_print *", "INLINE_MODEL", " ");
+      lf_printf (file, "model_mon_info\n");
+      lf_printf (file, "(model_data *model_ptr);\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_mon_info_free_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", " ");
+      lf_printf (file, "model_mon_info_free\n");
+      lf_printf (file, "(model_data *model_ptr,\n");
+      lf_printf (file, " model_print *info_ptr);\n");
+      lf_printf (file, "\n");
+    }
+
+  lf_print_function_type (file, "void", "INLINE_MODEL", " ");
+  lf_printf (file, "model_set\n");
+  lf_printf (file, "(const char *name);\n");
 }
 
 /****************************************************************/
 
 typedef struct _model_c_passed_data model_c_passed_data;
-struct _model_c_passed_data {
+struct _model_c_passed_data
+{
   lf *file;
   model *model_ptr;
 };
 
 static void
-model_c_insn(insn_table *entry,
-            lf *phony_file,
-            void *data,
-            insn *instruction,
-            int depth)
+model_c_insn (insn_table *entry,
+             lf *phony_file, void *data, insn * instruction, int depth)
 {
-  model_c_passed_data *data_ptr = (model_c_passed_data *)data;
+  model_c_passed_data *data_ptr = (model_c_passed_data *) data;
   lf *file = data_ptr->file;
   char *current_name = data_ptr->model_ptr->printable_name;
   table_model_entry *model_ptr = instruction->file_entry->model_first;
 
-  while (model_ptr) {
-    if (model_ptr->fields[insn_model_name] == current_name) {
-      lf_printf(file, "  { %-*s },  /* %s */\n",
-               max_model_fields_len,
-               model_ptr->fields[insn_model_fields],
-               instruction->file_entry->fields[insn_name]);
-      return;
+  while (model_ptr)
+    {
+      if (model_ptr->fields[insn_model_name] == current_name)
+       {
+         lf_printf (file, "  { %-*s },  /* %s */\n",
+                    max_model_fields_len,
+                    model_ptr->fields[insn_model_fields],
+                    instruction->file_entry->fields[insn_name]);
+         return;
+       }
+
+      model_ptr = model_ptr->next;
     }
 
-    model_ptr = model_ptr->next;
-  }
-
-  lf_printf(file, "  { %-*s },  /* %s */\n",
-           max_model_fields_len,
-           data_ptr->model_ptr->insn_default,
-           instruction->file_entry->fields[insn_name]);
+  lf_printf (file, "  { %-*s },  /* %s */\n",
+            max_model_fields_len,
+            data_ptr->model_ptr->insn_default,
+            instruction->file_entry->fields[insn_name]);
 }
 
 static void
-model_c_function(insn_table *table,
-                lf *file,
-                table_entry *function,
-                const char *prefix)
+model_c_function (insn_table *table,
+                 lf *file, table_entry *function, const char *prefix)
 {
   if (function->fields[function_type] == NULL
       || function->fields[function_type][0] == '\0')
     {
-      error("Model function return type not specified for %s",
-           function->fields[function_name]);
+      error ("Model function return type not specified for %s",
+            function->fields[function_name]);
     }
   else
     {
-      lf_printf(file, "\n");
-      lf_print_function_type(file, function->fields[function_type], prefix, "\n");
-      lf_printf(file, "%s(%s)\n",
-               function->fields[function_name],
-               function->fields[function_param]);
+      lf_printf (file, "\n");
+      lf_print_function_type (file, function->fields[function_type], prefix,
+                             "\n");
+      lf_printf (file, "%s(%s)\n", function->fields[function_name],
+                function->fields[function_param]);
     }
-  lf_printf(file, "{\n");
+  lf_printf (file, "{\n");
   if (function->annex)
     {
-      lf_indent(file, +2);
-      table_entry_print_cpp_line_nr(file, function->annex_line);
-      lf_print__c_code(file, function->annex);
-      lf_indent(file, -2);
+      lf_indent (file, +2);
+      table_entry_print_cpp_line_nr (file, function->annex_line);
+      lf_print__c_code (file, function->annex);
+      lf_indent (file, -2);
     }
-  lf_printf(file, "}\n");
-  lf_print__internal_reference(file);
-  lf_printf(file, "\n");
+  lf_printf (file, "}\n");
+  lf_print__internal_reference (file);
+  lf_printf (file, "\n");
 }
 
-void 
-gen_model_c(insn_table *table, lf *file)
+void
+gen_model_c (insn_table *table, lf *file)
 {
   insn *insn_ptr;
   model *model_ptr;
@@ -248,155 +257,179 @@ gen_model_c(insn_table *table, lf *file)
   int model_mon_info_p = 0;
   int model_mon_info_free_p = 0;
 
-  lf_printf(file, "\n");
-  lf_printf(file, "#include \"cpu.h\"\n");
-  lf_printf(file, "#include \"mon.h\"\n");
-  lf_printf(file, "\n");
-  lf_printf(file, "#ifdef HAVE_STDLIB_H\n");
-  lf_printf(file, "#include <stdlib.h>\n");
-  lf_printf(file, "#endif\n");
-  lf_printf(file, "\n");
-
-  for(insn_ptr = model_data; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_or_h_data(table, file, insn_ptr->file_entry);
-  }
-
-  for(insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_or_h_function(table, file, insn_ptr->file_entry, "/*h*/STATIC");
-  }
-
-  for(insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_or_h_function(table, file, insn_ptr->file_entry, "STATIC_INLINE_MODEL");
-  }
-
-  for(insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_function(table, file, insn_ptr->file_entry, "/*c*/STATIC");
-  }
-
-  for(insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_function(table, file, insn_ptr->file_entry, "STATIC_INLINE_MODEL");
-  }
-
-  for(insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next) {
-    model_c_function(table, file, insn_ptr->file_entry, "INLINE_MODEL");
-    name = insn_ptr->file_entry->fields[function_name];
-    if (strcmp (name, "model_create") == 0)
-      model_create_p = 1;
-    else if (strcmp (name, "model_init") == 0)
-      model_init_p = 1;
-    else if (strcmp (name, "model_halt") == 0)
-      model_halt_p = 1;
-    else if (strcmp (name, "model_mon_info") == 0)
-      model_mon_info_p = 1;
-    else if (strcmp (name, "model_mon_info_free") == 0)
-      model_mon_info_free_p = 1;
-  }
-
-  if (!model_create_p) {
-    lf_print_function_type(file, "model_data *", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_create(sim_cpu *cpu)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "  return (model_data *)0;\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_init_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_init(model_data *model_ptr)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_halt_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_halt(model_data *model_ptr)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_mon_info_p) {
-    lf_print_function_type(file, "model_print *", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_mon_info(model_data *model_ptr)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "  return (model_print *)0;\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  if (!model_mon_info_free_p) {
-    lf_print_function_type(file, "void", "INLINE_MODEL", "\n");
-    lf_printf(file, "model_mon_info_free(model_data *model_ptr,\n");
-    lf_printf(file, "                    model_print *info_ptr)\n");
-    lf_printf(file, "{\n");
-    lf_printf(file, "}\n");
-    lf_printf(file, "\n");
-  }
-
-  lf_printf(file, "/* Insn functional unit info */\n");
-  for(model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-    model_c_passed_data data;
-
-    lf_printf(file, "static const model_time model_time_%s[] = {\n", model_ptr->name);
-    data.file = file;
-    data.model_ptr = model_ptr;
-    insn_table_traverse_insn(table,
-                            NULL, (void *)&data,
-                            model_c_insn);
-
-    lf_printf(file, "};\n");
-    lf_printf(file, "\n");
-    lf_printf(file, "\f\n");
-  }
-
-  lf_printf(file, "#ifndef _INLINE_C_\n");
-  lf_printf(file, "const model_time *const model_time_mapping[ (int)nr_models ] = {\n");
-  lf_printf(file, "  (const model_time *const)0,\n");
-  for(model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-    lf_printf(file, "  model_time_%s,\n", model_ptr->name);
-  }
-  lf_printf(file, "};\n");
-  lf_printf(file, "#endif\n");
-  lf_printf(file, "\n");
-
-  lf_printf(file, "\f\n");
-  lf_printf(file, "/* map model enumeration into printable string */\n");
-  lf_printf(file, "#ifndef _INLINE_C_\n");
-  lf_printf(file, "const char *model_name[ (int)nr_models ] = {\n");
-  lf_printf(file, "  \"NONE\",\n");
-  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-    lf_printf(file, "  \"%s\",\n", model_ptr->printable_name);
-  }
-  lf_printf(file, "};\n");
-  lf_printf(file, "#endif\n");
-  lf_printf(file, "\n");
-
-  lf_print_function_type(file, "void", "INLINE_MODEL", "\n");
-  lf_printf(file, "model_set(const char *name)\n");
-  lf_printf(file, "{\n");
-  if (models) {
-    lf_printf(file, "  model_enum model;\n");
-    lf_printf(file, "  for(model = MODEL_%s; model < nr_models; model++) {\n", models->name);
-    lf_printf(file, "    if(strcmp(name, model_name[model]) == 0) {\n");
-    lf_printf(file, "      current_model = model;\n");
-    lf_printf(file, "      return;\n");
-    lf_printf(file, "    }\n");
-    lf_printf(file, "  }\n");
-    lf_printf(file, "\n");
-    lf_printf(file, "  error(\"Unknown model '%%s', Models which are known are:%%s\n\",\n");
-    lf_printf(file, "        name,\n");
-    lf_printf(file, "        \"");
-    for(model_ptr = models; model_ptr; model_ptr = model_ptr->next) {
-      lf_printf(file, "\\n\\t%s", model_ptr->printable_name);
+  lf_printf (file, "\n");
+  lf_printf (file, "#include \"cpu.h\"\n");
+  lf_printf (file, "#include \"mon.h\"\n");
+  lf_printf (file, "\n");
+  lf_printf (file, "#ifdef HAVE_STDLIB_H\n");
+  lf_printf (file, "#include <stdlib.h>\n");
+  lf_printf (file, "#endif\n");
+  lf_printf (file, "\n");
+
+  for (insn_ptr = model_data; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_or_h_data (table, file, insn_ptr->file_entry);
+    }
+
+  for (insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_or_h_function (table, file, insn_ptr->file_entry,
+                            "/*h*/STATIC");
+    }
+
+  for (insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_or_h_function (table, file, insn_ptr->file_entry,
+                            "STATIC_INLINE_MODEL");
+    }
+
+  for (insn_ptr = model_static; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_function (table, file, insn_ptr->file_entry, "/*c*/STATIC");
+    }
+
+  for (insn_ptr = model_internal; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_function (table, file, insn_ptr->file_entry,
+                       "STATIC_INLINE_MODEL");
+    }
+
+  for (insn_ptr = model_functions; insn_ptr; insn_ptr = insn_ptr->next)
+    {
+      model_c_function (table, file, insn_ptr->file_entry, "INLINE_MODEL");
+      name = insn_ptr->file_entry->fields[function_name];
+      if (strcmp (name, "model_create") == 0)
+       model_create_p = 1;
+      else if (strcmp (name, "model_init") == 0)
+       model_init_p = 1;
+      else if (strcmp (name, "model_halt") == 0)
+       model_halt_p = 1;
+      else if (strcmp (name, "model_mon_info") == 0)
+       model_mon_info_p = 1;
+      else if (strcmp (name, "model_mon_info_free") == 0)
+       model_mon_info_free_p = 1;
+    }
+
+  if (!model_create_p)
+    {
+      lf_print_function_type (file, "model_data *", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_create(sim_cpu *cpu)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "  return (model_data *)0;\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_init_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_init(model_data *model_ptr)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_halt_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_halt(model_data *model_ptr)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_mon_info_p)
+    {
+      lf_print_function_type (file, "model_print *", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_mon_info(model_data *model_ptr)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "  return (model_print *)0;\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  if (!model_mon_info_free_p)
+    {
+      lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
+      lf_printf (file, "model_mon_info_free(model_data *model_ptr,\n");
+      lf_printf (file, "                    model_print *info_ptr)\n");
+      lf_printf (file, "{\n");
+      lf_printf (file, "}\n");
+      lf_printf (file, "\n");
+    }
+
+  lf_printf (file, "/* Insn functional unit info */\n");
+  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+    {
+      model_c_passed_data data;
+
+      lf_printf (file, "static const model_time model_time_%s[] = {\n",
+                model_ptr->name);
+      data.file = file;
+      data.model_ptr = model_ptr;
+      insn_table_traverse_insn (table, NULL, (void *) &data, model_c_insn);
+
+      lf_printf (file, "};\n");
+      lf_printf (file, "\n");
+      lf_printf (file, "\f\n");
+    }
+
+  lf_printf (file, "#ifndef _INLINE_C_\n");
+  lf_printf (file,
+            "const model_time *const model_time_mapping[ (int)nr_models ] = {\n");
+  lf_printf (file, "  (const model_time *const)0,\n");
+  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+    {
+      lf_printf (file, "  model_time_%s,\n", model_ptr->name);
+    }
+  lf_printf (file, "};\n");
+  lf_printf (file, "#endif\n");
+  lf_printf (file, "\n");
+
+  lf_printf (file, "\f\n");
+  lf_printf (file, "/* map model enumeration into printable string */\n");
+  lf_printf (file, "#ifndef _INLINE_C_\n");
+  lf_printf (file, "const char *model_name[ (int)nr_models ] = {\n");
+  lf_printf (file, "  \"NONE\",\n");
+  for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+    {
+      lf_printf (file, "  \"%s\",\n", model_ptr->printable_name);
+    }
+  lf_printf (file, "};\n");
+  lf_printf (file, "#endif\n");
+  lf_printf (file, "\n");
+
+  lf_print_function_type (file, "void", "INLINE_MODEL", "\n");
+  lf_printf (file, "model_set(const char *name)\n");
+  lf_printf (file, "{\n");
+  if (models)
+    {
+      lf_printf (file, "  model_enum model;\n");
+      lf_printf (file,
+                "  for(model = MODEL_%s; model < nr_models; model++) {\n",
+                models->name);
+      lf_printf (file, "    if(strcmp(name, model_name[model]) == 0) {\n");
+      lf_printf (file, "      current_model = model;\n");
+      lf_printf (file, "      return;\n");
+      lf_printf (file, "    }\n");
+      lf_printf (file, "  }\n");
+      lf_printf (file, "\n");
+      lf_printf (file,
+                "  error(\"Unknown model '%%s', Models which are known are:%%s\n\",\n");
+      lf_printf (file, "        name,\n");
+      lf_printf (file, "        \"");
+      for (model_ptr = models; model_ptr; model_ptr = model_ptr->next)
+       {
+         lf_printf (file, "\\n\\t%s", model_ptr->printable_name);
+       }
+      lf_printf (file, "\");\n");
+    }
+  else
+    {
+      lf_printf (file, "  error(\"No models are currently known about\");\n");
     }
-    lf_printf(file, "\");\n");
-  } else {
-    lf_printf(file, "  error(\"No models are currently known about\");\n");
-  }
 
-  lf_printf(file, "}\n");
+  lf_printf (file, "}\n");
 }
 
 #endif
@@ -404,16 +437,14 @@ gen_model_c(insn_table *table, lf *file)
 
 
 void
-gen_model_h (lf *file,
-            insn_table *table)
+gen_model_h (lf *file, insn_table *table)
 {
   lf_print__this_file_is_empty (file, "suffering bit rot");
 }
 
 
 void
-gen_model_c (lf *file,
-            insn_table *table)
+gen_model_c (lf *file, insn_table *table)
 {
   lf_print__this_file_is_empty (file, "suffering bit rot");
 }
index a0d7773e40eda754d3c811471d16ddc1c70e05ef..8dd987228b5d587d44f08053d15fa0e50a052998 100644 (file)
 
 
 
-extern void gen_model_h
-(lf *file,
- insn_table *isa);
+extern void gen_model_h (lf *file, insn_table *isa);
 
-extern void gen_model_c
-(lf *file,
- insn_table *isa);
+extern void gen_model_c (lf *file, insn_table *isa);
index ee6b610f85738a7e67a1df87a7dbff4c8aaceb00..44a3c5249e5aabd52a8a2668e5b1cfaedda01020 100644 (file)
@@ -48,7 +48,7 @@ print_semantic_function_header (lf *file,
                                int nr_prefetched_words)
 {
   int indent;
-  lf_printf(file, "\n");
+  lf_printf (file, "\n");
   lf_print__function_type_function (file, print_semantic_function_type,
                                    "EXTERN_SEMANTICS",
                                    (is_function_definition ? "\n" : " "));
@@ -85,52 +85,58 @@ print_semantic_function_header (lf *file,
 
 void
 print_semantic_declaration (lf *file,
-                           insn_entry *insn,
+                           insn_entry * insn,
                            opcode_bits *expanded_bits,
-                           insn_opcodes *opcodes,
-                           int nr_prefetched_words)
+                           insn_opcodes *opcodes, int nr_prefetched_words)
 {
   print_semantic_function_header (file,
                                  insn->name,
                                  insn->format_name,
                                  expanded_bits,
-                                 0/* is not function definition*/,
+                                 0 /* is not function definition */ ,
                                  nr_prefetched_words);
 }
+\f
 
 
-\f
 /* generate the semantics.c file */
 
 
 void
-print_idecode_invalid (lf *file,
-                      const char *result,
-                      invalid_type type)
+print_idecode_invalid (lf *file, const char *result, invalid_type type)
 {
   const char *name;
   switch (type)
     {
-    default: name = "unknown"; break;
-    case invalid_illegal: name = "illegal"; break;
-    case invalid_fp_unavailable: name = "fp_unavailable"; break;
-    case invalid_wrong_slot: name = "wrong_slot"; break;
+    default:
+      name = "unknown";
+      break;
+    case invalid_illegal:
+      name = "illegal";
+      break;
+    case invalid_fp_unavailable:
+      name = "fp_unavailable";
+      break;
+    case invalid_wrong_slot:
+      name = "wrong_slot";
+      break;
     }
   if (options.gen.code == generate_jumps)
     {
       lf_printf (file, "goto %s_%s;\n",
-                (options.gen.icache ? "icache" : "semantic"),
-                name);
+                (options.gen.icache ? "icache" : "semantic"), name);
     }
   else if (options.gen.icache)
     {
-      lf_printf (file, "%s %sicache_%s (", result, options.module.global.prefix.l, name);
+      lf_printf (file, "%s %sicache_%s (", result,
+                options.module.global.prefix.l, name);
       print_icache_function_actual (file, 0);
       lf_printf (file, ");\n");
     }
   else
     {
-      lf_printf (file, "%s %ssemantic_%s (", result, options.module.global.prefix.l, name);
+      lf_printf (file, "%s %ssemantic_%s (", result,
+                options.module.global.prefix.l, name);
       print_semantic_function_actual (file, 0);
       lf_printf (file, ");\n");
     }
@@ -139,18 +145,17 @@ print_idecode_invalid (lf *file,
 
 void
 print_semantic_body (lf *file,
-                    insn_entry *instruction,
-                    opcode_bits *expanded_bits,
-                    insn_opcodes *opcodes)
+                    insn_entry * instruction,
+                    opcode_bits *expanded_bits, insn_opcodes *opcodes)
 {
   /* validate the instruction, if a cache this has already been done */
   if (!options.gen.icache)
     {
       print_idecode_validate (file, instruction, opcodes);
     }
-  
-  print_itrace (file, instruction, 0/*put_value_in_cache*/);
-  
+
+  print_itrace (file, instruction, 0 /*put_value_in_cache */ );
+
   /* generate the instruction profile call - this is delayed until
      after the instruction has been verified.  The count macro
      generated is prefixed by ITABLE_PREFIX */
@@ -177,22 +182,20 @@ print_semantic_body (lf *file,
     print_function_name (file,
                         instruction->name,
                         instruction->format_name,
-                        NULL,
-                        NULL,
-                        function_name_prefix_itable);
+                        NULL, NULL, function_name_prefix_itable);
     lf_printf (file, ", cpu, cia);\n");
     lf_indent_suppress (file);
     lf_printf (file, "#endif\n");
     lf_printf (file, "\n");
   }
-  
+
   /* determine the new instruction address */
   {
-    lf_printf(file, "/* keep the next instruction address handy */\n");
+    lf_printf (file, "/* keep the next instruction address handy */\n");
     if (options.gen.nia == nia_is_invalid)
       {
-       lf_printf(file, "nia = %sINVALID_INSTRUCTION_ADDRESS;\n",
-                 options.module.global.prefix.u);
+       lf_printf (file, "nia = %sINVALID_INSTRUCTION_ADDRESS;\n",
+                  options.module.global.prefix.u);
       }
     else
       {
@@ -218,7 +221,7 @@ print_semantic_body (lf *file,
                lf_printf (file, "nia = cia + %d * (%d + 1); %s\n",
                           options.insn_bit_size / 8, nr_immeds,
                           "/* skip immeds as well */");
-               
+
              }
            else
              {
@@ -228,7 +231,7 @@ print_semantic_body (lf *file,
          }
       }
   }
-  
+
   /* if conditional, generate code to verify that the instruction
      should be issued */
   if (filter_is_member (instruction->options, "c")
@@ -241,7 +244,7 @@ print_semantic_body (lf *file,
       lf_indent (file, +4);
       /* FIXME - need to log a conditional failure */
     }
-  
+
   /* Architecture expects a REG to be zero.  Instead of having to
      check every read to see if it is refering to that REG just zap it
      at the start of every instruction */
@@ -251,7 +254,7 @@ print_semantic_body (lf *file,
       lf_printf (file, "/* Architecture expects REG to be zero */\n");
       lf_printf (file, "GPR_CLEAR(%d);\n", options.gen.zero_reg_nr);
     }
-  
+
   /* generate the code (or at least something */
   lf_printf (file, "\n");
   lf_printf (file, "/* semantics: */\n");
@@ -287,32 +290,30 @@ print_semantic_body (lf *file,
       lf_indent (file, -indent);
       lf_print__internal_ref (file);
     }
-  
+
   /* Close off the conditional execution */
   if (filter_is_member (instruction->options, "c")
       || options.gen.conditional_issue)
     {
       lf_indent (file, -4);
       lf_printf (file, "  }\n");
-    }  
+    }
 }
 
 static void
 print_c_semantic (lf *file,
-                 insn_entry *instruction,
+                 insn_entry * instruction,
                  opcode_bits *expanded_bits,
                  insn_opcodes *opcodes,
-                 cache_entry *cache_rules,
-                 int nr_prefetched_words)
+                 cache_entry *cache_rules, int nr_prefetched_words)
 {
-  
+
   lf_printf (file, "{\n");
   lf_indent (file, +2);
-  
+
   print_my_defines (file,
                    instruction->name,
-                   instruction->format_name,
-                   expanded_bits);
+                   instruction->format_name, expanded_bits);
   lf_printf (file, "\n");
   print_icache_body (file,
                     instruction,
@@ -323,16 +324,13 @@ print_c_semantic (lf *file,
                      : declare_variables),
                     (options.gen.icache
                      ? get_values_from_icache
-                     : do_not_use_icache),
-                    nr_prefetched_words);
-  
-  lf_printf (file, "%sinstruction_address nia;\n", options.module.global.prefix.l);
-  print_semantic_body (file,
-                      instruction,
-                      expanded_bits,
-                      opcodes);
+                     : do_not_use_icache), nr_prefetched_words);
+
+  lf_printf (file, "%sinstruction_address nia;\n",
+            options.module.global.prefix.l);
+  print_semantic_body (file, instruction, expanded_bits, opcodes);
   lf_printf (file, "return nia;\n");
-  
+
   /* generate something to clean up any #defines created for the cache */
   if (options.gen.direct_access)
     {
@@ -343,51 +341,41 @@ print_c_semantic (lf *file,
                         undef_variables,
                         (options.gen.icache
                          ? get_values_from_icache
-                         : do_not_use_icache),
-                        nr_prefetched_words);
+                         : do_not_use_icache), nr_prefetched_words);
     }
-  
+
   lf_indent (file, -2);
   lf_printf (file, "}\n");
 }
 
 static void
 print_c_semantic_function (lf *file,
-                          insn_entry *instruction,
+                          insn_entry * instruction,
                           opcode_bits *expanded_bits,
                           insn_opcodes *opcodes,
-                          cache_entry *cache_rules,
-                          int nr_prefetched_words)
+                          cache_entry *cache_rules, int nr_prefetched_words)
 {
   /* build the semantic routine to execute the instruction */
   print_semantic_function_header (file,
                                  instruction->name,
                                  instruction->format_name,
                                  expanded_bits,
-                                 1/*is-function-definition*/,
+                                 1 /*is-function-definition */ ,
                                  nr_prefetched_words);
   print_c_semantic (file,
                    instruction,
-                   expanded_bits,
-                   opcodes,
-                   cache_rules,
-                   nr_prefetched_words);
+                   expanded_bits, opcodes, cache_rules, nr_prefetched_words);
 }
 
 void
 print_semantic_definition (lf *file,
-                          insn_entry *insn,
+                          insn_entry * insn,
                           opcode_bits *expanded_bits,
                           insn_opcodes *opcodes,
-                          cache_entry *cache_rules,
-                          int nr_prefetched_words)
+                          cache_entry *cache_rules, int nr_prefetched_words)
 {
   print_c_semantic_function (file,
                             insn,
                             expanded_bits,
-                            opcodes,
-                            cache_rules,
-                            nr_prefetched_words);
+                            opcodes, cache_rules, nr_prefetched_words);
 }
-
-
index c8373b5a494f0e75621032722bc90406dafca8a9..9afc5cf7ffe07c61f6cde0e880911b96e097b3a9 100644 (file)
 
 
 extern void print_semantic_declaration
-(lf *file,
- insn_entry *insn,
- opcode_bits *bits,
- insn_opcodes *opcodes,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * insn,
+   opcode_bits *bits, insn_opcodes *opcodes, int nr_prefetched_words);
 
 extern void print_semantic_definition
-(lf *file,
- insn_entry *insn,
- opcode_bits *bits,
- insn_opcodes *opcodes,
- cache_entry *cache_rules,
- int nr_prefetched_words);
+  (lf *file,
+   insn_entry * insn,
+   opcode_bits *bits,
+   insn_opcodes *opcodes, cache_entry *cache_rules, int nr_prefetched_words);
 
 
-typedef enum {
+typedef enum
+{
   invalid_illegal,
   invalid_fp_unavailable,
   invalid_wrong_slot,
-} invalid_type;
+}
+invalid_type;
 
 extern void print_idecode_invalid
-(lf *file,
- const char *result,
- invalid_type type);
+  (lf *file, const char *result, invalid_type type);
 
 extern void print_semantic_body
-(lf *file,
- insn_entry *instruction,
- opcode_bits *expanded_bits,
- insn_opcodes *opcodes);
-
+  (lf *file,
+   insn_entry * instruction,
+   opcode_bits *expanded_bits, insn_opcodes *opcodes);
index 407d5f7e25e5d89b1fe4971db8c8862fb243924f..d246845b99f003e4092f88725490c60fb5ce223b 100644 (file)
 
 static void
 print_support_function_name (lf *file,
-                            function_entry *function,
+                            function_entry * function,
                             int is_function_definition)
 {
   if (function->is_internal)
     {
       lf_print__function_type_function (file, print_semantic_function_type,
                                        "INLINE_SUPPORT",
-                                       (is_function_definition ? "\n" : " "));
-      print_function_name (file,
-                          function->name,
-                          NULL,
-                          NULL,
-                          NULL,
+                                       (is_function_definition ? "\n" :
+                                        " "));
+      print_function_name (file, function->name, NULL, NULL, NULL,
                           function_name_prefix_semantics);
       lf_printf (file, "\n(");
       lf_indent (file, +1);
@@ -71,16 +68,14 @@ print_support_function_name (lf *file,
          lf_indent_suppress (file);
          lf_printf (file, "#define %s %s%s\n",
                     function->name,
-                    options.module.support.prefix.l,
-                    function->name);
+                    options.module.support.prefix.l, function->name);
        }
       lf_print__function_type (file,
                               function->type,
                               "INLINE_SUPPORT",
                               (is_function_definition ? "\n" : " "));
       lf_printf (file, "%s%s\n(",
-                options.module.support.prefix.l,
-                function->name);
+                options.module.support.prefix.l, function->name);
       if (options.gen.smp)
        lf_printf (file,
                   "sim_cpu *cpu, %sinstruction_address cia, int MY_INDEX",
@@ -89,8 +84,7 @@ print_support_function_name (lf *file,
        lf_printf (file,
                   "SIM_DESC sd, %sinstruction_address cia, int MY_INDEX",
                   options.module.support.prefix.l);
-      if (function->param != NULL
-         && strlen (function->param) > 0)
+      if (function->param != NULL && strlen (function->param) > 0)
        lf_printf (file, ", %s", function->param);
       lf_printf (file, ")%s", (is_function_definition ? "\n" : ";\n"));
     }
@@ -98,58 +92,54 @@ print_support_function_name (lf *file,
 
 
 static void
-support_h_function (lf *file,
-                   function_entry *function,
-                   void *data)
+support_h_function (lf *file, function_entry * function, void *data)
 {
   ASSERT (function->type != NULL);
-  print_support_function_name (file,
-                              function,
-                              0/*!is_definition*/);
-  lf_printf(file, "\n");
+  print_support_function_name (file, function, 0 /*!is_definition */ );
+  lf_printf (file, "\n");
 }
 
 
 extern void
-gen_support_h (lf *file,
-              insn_table *table)
+gen_support_h (lf *file, insn_table *table)
 {
-  /* output the definition of `SD_'*/
-  if (options.gen.smp) 
+  /* output the definition of `SD_' */
+  if (options.gen.smp)
     {
-      lf_printf(file, "#define SD CPU_STATE (cpu)\n");
-      lf_printf(file, "#define CPU cpu\n");
-      lf_printf(file, "#define CPU_ cpu\n");
+      lf_printf (file, "#define SD CPU_STATE (cpu)\n");
+      lf_printf (file, "#define CPU cpu\n");
+      lf_printf (file, "#define CPU_ cpu\n");
     }
   else
     {
-      lf_printf(file, "#define SD sd\n");
-      lf_printf(file, "#define CPU (STATE_CPU (sd, 0))\n");
-      lf_printf(file, "#define CPU_ sd\n");
+      lf_printf (file, "#define SD sd\n");
+      lf_printf (file, "#define CPU (STATE_CPU (sd, 0))\n");
+      lf_printf (file, "#define CPU_ sd\n");
     }
 
-  lf_printf(file, "#define CIA_ cia\n");
+  lf_printf (file, "#define CIA_ cia\n");
   if (options.gen.delayed_branch)
     {
-      lf_printf(file, "#define CIA cia.ip\n");
-      lf_printf(file, "/* #define NIA nia.dp -- do not define, ambigious */\n");
+      lf_printf (file, "#define CIA cia.ip\n");
+      lf_printf (file,
+                "/* #define NIA nia.dp -- do not define, ambigious */\n");
     }
   else
     {
-      lf_printf(file, "#define CIA cia\n");
-      lf_printf(file, "#define NIA nia\n");
+      lf_printf (file, "#define CIA cia\n");
+      lf_printf (file, "#define NIA nia\n");
     }
-  lf_printf(file, "\n");
+  lf_printf (file, "\n");
 
-  lf_printf(file, "#define SD_ CPU_, CIA_, MY_INDEX\n");
-  lf_printf(file, "#define _SD SD_ /* deprecated */\n");
-  lf_printf(file, "\n");
+  lf_printf (file, "#define SD_ CPU_, CIA_, MY_INDEX\n");
+  lf_printf (file, "#define _SD SD_ /* deprecated */\n");
+  lf_printf (file, "\n");
 
   /* Map <PREFIX>_xxxx onto the shorter xxxx for the following names:
 
-       instruction_word
-       idecode_issue
-       semantic_illegal
+     instruction_word
+     idecode_issue
+     semantic_illegal
 
      Map defined here as name space problems are created when the name is
      defined in idecode.h  */
@@ -158,55 +148,47 @@ gen_support_h (lf *file,
       lf_indent_suppress (file);
       lf_printf (file, "#define %s %s%s\n",
                 "instruction_word",
-                options.module.idecode.prefix.l,
-                "instruction_word");
+                options.module.idecode.prefix.l, "instruction_word");
       lf_printf (file, "\n");
       lf_indent_suppress (file);
       lf_printf (file, "#define %s %s%s\n",
                 "idecode_issue",
-                options.module.idecode.prefix.l,
-                "idecode_issue");
+                options.module.idecode.prefix.l, "idecode_issue");
       lf_printf (file, "\n");
       lf_indent_suppress (file);
       lf_printf (file, "#define %s %s%s\n",
                 "semantic_illegal",
-                options.module.idecode.prefix.l,
-                "semantic_illegal");
+                options.module.idecode.prefix.l, "semantic_illegal");
       lf_printf (file, "\n");
     }
 
   /* output a declaration for all functions */
-  function_entry_traverse (file, table->functions,
-                          support_h_function,
-                          NULL);
-  lf_printf(file, "\n");
-  lf_printf(file, "#if defined(SUPPORT_INLINE)\n");
-  lf_printf(file, "# if ((SUPPORT_INLINE & INCLUDE_MODULE)\\\n");
-  lf_printf(file, "      && (SUPPORT_INLINE & INCLUDED_BY_MODULE))\n");
-  lf_printf(file, "#  include \"%ssupport.c\"\n", options.module.support.prefix.l);
-  lf_printf(file, "# endif\n");
-  lf_printf(file, "#endif\n");
+  function_entry_traverse (file, table->functions, support_h_function, NULL);
+  lf_printf (file, "\n");
+  lf_printf (file, "#if defined(SUPPORT_INLINE)\n");
+  lf_printf (file, "# if ((SUPPORT_INLINE & INCLUDE_MODULE)\\\n");
+  lf_printf (file, "      && (SUPPORT_INLINE & INCLUDED_BY_MODULE))\n");
+  lf_printf (file, "#  include \"%ssupport.c\"\n",
+            options.module.support.prefix.l);
+  lf_printf (file, "# endif\n");
+  lf_printf (file, "#endif\n");
 }
 
 static void
-support_c_function (lf *file,
-                   function_entry *function,
-                   void *data)
+support_c_function (lf *file, function_entry * function, void *data)
 {
   ASSERT (function->type != NULL);
-  print_support_function_name (file,
-                              function,
-                              1/*!is_definition*/);
+  print_support_function_name (file, function, 1 /*!is_definition */ );
   lf_printf (file, "{\n");
   lf_indent (file, +2);
   if (function->code == NULL)
-    error (function->line,
-          "Function without body (or null statement)");
+    error (function->line, "Function without body (or null statement)");
   lf_print__line_ref (file, function->code->line);
   table_print_code (file, function->code);
   if (function->is_internal)
     {
-      lf_printf (file, "sim_engine_abort (SD, CPU, cia, \"Internal function must longjump\\n\");\n");
+      lf_printf (file,
+                "sim_engine_abort (SD, CPU, cia, \"Internal function must longjump\\n\");\n");
       lf_printf (file, "return cia;\n");
     }
   lf_indent (file, -2);
@@ -217,17 +199,17 @@ support_c_function (lf *file,
 
 
 void
-gen_support_c (lf *file,
-              insn_table *table)
+gen_support_c (lf *file, insn_table *table)
 {
-  lf_printf(file, "#include \"sim-main.h\"\n");
-  lf_printf(file, "#include \"%sidecode.h\"\n", options.module.idecode.prefix.l);
-  lf_printf(file, "#include \"%sitable.h\"\n", options.module.itable.prefix.l);
-  lf_printf(file, "#include \"%ssupport.h\"\n", options.module.support.prefix.l);
-  lf_printf(file, "\n");
+  lf_printf (file, "#include \"sim-main.h\"\n");
+  lf_printf (file, "#include \"%sidecode.h\"\n",
+            options.module.idecode.prefix.l);
+  lf_printf (file, "#include \"%sitable.h\"\n",
+            options.module.itable.prefix.l);
+  lf_printf (file, "#include \"%ssupport.h\"\n",
+            options.module.support.prefix.l);
+  lf_printf (file, "\n");
 
   /* output a definition (c-code) for all functions */
-  function_entry_traverse (file, table->functions,
-                          support_c_function,
-                          NULL);
+  function_entry_traverse (file, table->functions, support_c_function, NULL);
 }
index e05bd9cfedfdcfd5545892f69a27c267eb9265e8..4d716c90ef67a7483b54e3a7f1f5659af9d7439a 100644 (file)
    Boston, MA 02111-1307, USA.  */
 
 
-extern void gen_support_h
-(lf *file,
- insn_table *table);
-
-extern void gen_support_c
-(lf *file,
- insn_table *table);
+extern void gen_support_h (lf *file, insn_table *table);
 
+extern void gen_support_c (lf *file, insn_table *table);
index d12cb3b14255a0e4e0a22c41f90dd7ad238e9945..0ff15d487938e1afb3a9f91505c395b621b907cd 100644 (file)
 #include "gen.h"
 
 static insn_uint
-sub_val (insn_uint val,
-        int val_last_pos,
-        int first_pos,
-        int last_pos)
+sub_val (insn_uint val, int val_last_pos, int first_pos, int last_pos)
 {
   return ((val >> (val_last_pos - last_pos))
-         & (((insn_uint)1 << (last_pos - first_pos + 1)) - 1));
+         & (((insn_uint) 1 << (last_pos - first_pos + 1)) - 1));
 }
 
 static void
-update_depth (lf *file,
-             gen_entry *entry,
-             int depth,
-             void *data)
+update_depth (lf *file, gen_entry *entry, int depth, void *data)
 {
-  int *max_depth = (int*)data;
+  int *max_depth = (int *) data;
   if (*max_depth < depth)
     *max_depth = depth;
 }
@@ -58,21 +52,15 @@ int
 gen_entry_depth (gen_entry *table)
 {
   int depth = 0;
-  gen_entry_traverse_tree (NULL,
-                          table,
-                          1,
-                          NULL, /*start*/
-                          update_depth,
-                          NULL, /*end*/
-                          &depth); /* data */
+  gen_entry_traverse_tree (NULL, table, 1, NULL,       /*start */
+                          update_depth, NULL,  /*end */
+                          &depth);     /* data */
   return depth;
 }
 
 
 static void
-print_gen_entry_path (line_ref *line,
-                     gen_entry *table,
-                     error_func *print)
+print_gen_entry_path (line_ref *line, gen_entry *table, error_func *print)
 {
   if (table->parent == NULL)
     {
@@ -91,8 +79,7 @@ print_gen_entry_path (line_ref *line,
 static void
 print_gen_entry_insns (gen_entry *table,
                       error_func *print,
-                      char *first_message,
-                      char *next_message)
+                      char *first_message, char *next_message)
 {
   insn_list *i;
   char *message;
@@ -101,10 +88,7 @@ print_gen_entry_insns (gen_entry *table,
     {
       insn_entry *insn = i->insn;
       print_gen_entry_path (insn->line, table, print);
-      print (NULL, ": %s.%s %s\n",
-            insn->format_name,
-            insn->name,
-            message);
+      print (NULL, ": %s.%s %s\n", insn->format_name, insn->name, message);
       if (next_message != NULL)
        message = next_message;
     }
@@ -118,14 +102,12 @@ insn_field_cmp (insn_word_entry *l, insn_word_entry *r)
     {
       int bit_nr;
       if (l == NULL && r == NULL)
-       return 0; /* all previous fields the same */
+       return 0;               /* all previous fields the same */
       if (l == NULL)
-       return -1; /* left shorter than right */
+       return -1;              /* left shorter than right */
       if (r == NULL)
-       return +1; /* left longer than right */
-      for (bit_nr = 0;
-          bit_nr < options.insn_bit_size;
-          bit_nr++)
+       return +1;              /* left longer than right */
+      for (bit_nr = 0; bit_nr < options.insn_bit_size; bit_nr++)
        {
          if (l->bit[bit_nr]->field->type != insn_field_string)
            continue;
@@ -138,38 +120,46 @@ insn_field_cmp (insn_word_entry *l, insn_word_entry *r)
          if (0)
            printf ("%s%s%s VS %s%s%s\n",
                    l->bit[bit_nr]->field->val_string,
-                   l->bit[bit_nr]->field->conditions->test == insn_field_cond_eq ? "=" : "!",
-                   l->bit[bit_nr]->field->conditions->string,  
+                   l->bit[bit_nr]->field->conditions->test ==
+                   insn_field_cond_eq ? "=" : "!",
+                   l->bit[bit_nr]->field->conditions->string,
                    r->bit[bit_nr]->field->val_string,
-                   r->bit[bit_nr]->field->conditions->test == insn_field_cond_eq ? "=" : "!",
+                   r->bit[bit_nr]->field->conditions->test ==
+                   insn_field_cond_eq ? "=" : "!",
                    r->bit[bit_nr]->field->conditions->string);
          if (l->bit[bit_nr]->field->conditions->test == insn_field_cond_eq
-             && r->bit[bit_nr]->field->conditions->test == insn_field_cond_eq)
+             && r->bit[bit_nr]->field->conditions->test ==
+             insn_field_cond_eq)
            {
-             if (l->bit[bit_nr]->field->conditions->type == insn_field_cond_field
-                 && r->bit[bit_nr]->field->conditions->type == insn_field_cond_field)
+             if (l->bit[bit_nr]->field->conditions->type ==
+                 insn_field_cond_field
+                 && r->bit[bit_nr]->field->conditions->type ==
+                 insn_field_cond_field)
                /* somewhat arbitrary */
                {
                  int cmp = strcmp (l->bit[bit_nr]->field->conditions->string,
-                                   r->bit[bit_nr]->field->conditions->string);
+                                   r->bit[bit_nr]->field->conditions->
+                                   string);
                  if (cmp != 0)
                    return cmp;
                  else
                    continue;
                }
-             if (l->bit[bit_nr]->field->conditions->type == insn_field_cond_field)
+             if (l->bit[bit_nr]->field->conditions->type ==
+                 insn_field_cond_field)
                return +1;
-             if (r->bit[bit_nr]->field->conditions->type == insn_field_cond_field)
+             if (r->bit[bit_nr]->field->conditions->type ==
+                 insn_field_cond_field)
                return -1;
              /* The case of both fields having constant values should have
-                already have been handled because such fields are converted
-                into normal constant fields. */
+                already have been handled because such fields are converted
+                into normal constant fields. */
              continue;
            }
          if (l->bit[bit_nr]->field->conditions->test == insn_field_cond_eq)
-           return +1; /* left = only */
+           return +1;          /* left = only */
          if (r->bit[bit_nr]->field->conditions->test == insn_field_cond_eq)
-           return -1; /* right = only */
+           return -1;          /* right = only */
          /* FIXME: Need to some what arbitrarily order conditional lists */
          continue;
        }
@@ -186,14 +176,12 @@ insn_word_cmp (insn_word_entry *l, insn_word_entry *r)
     {
       int bit_nr;
       if (l == NULL && r == NULL)
-       return 0; /* all previous fields the same */
+       return 0;               /* all previous fields the same */
       if (l == NULL)
-       return -1; /* left shorter than right */
+       return -1;              /* left shorter than right */
       if (r == NULL)
-       return +1; /* left longer than right */
-      for (bit_nr = 0;
-          bit_nr < options.insn_bit_size;
-          bit_nr++)
+       return +1;              /* left longer than right */
+      for (bit_nr = 0; bit_nr < options.insn_bit_size; bit_nr++)
        {
          if (l->bit[bit_nr]->mask < r->bit[bit_nr]->mask)
            return -1;
@@ -211,30 +199,29 @@ insn_word_cmp (insn_word_entry *l, insn_word_entry *r)
 
 /* same as strcmp */
 static int
-opcode_bit_cmp (opcode_bits *l,
-               opcode_bits *r)
+opcode_bit_cmp (opcode_bits *l, opcode_bits *r)
 {
   if (l == NULL && r == NULL)
-    return 0; /* all previous bits the same */
+    return 0;                  /* all previous bits the same */
   if (l == NULL)
-    return -1; /* left shorter than right */
+    return -1;                 /* left shorter than right */
   if (r == NULL)
-    return +1; /* left longer than right */
+    return +1;                 /* left longer than right */
   /* most significant word */
   if (l->field->word_nr < r->field->word_nr)
-    return +1; /* left has more significant word */
+    return +1;                 /* left has more significant word */
   if (l->field->word_nr > r->field->word_nr)
-    return -1; /* right has more significant word */
+    return -1;                 /* right has more significant word */
   /* most significant bit? */
   if (l->first < r->first)
-    return +1; /* left as more significant bit */
+    return +1;                 /* left as more significant bit */
   if (l->first > r->first)
-    return -1; /* right as more significant bit */
+    return -1;                 /* right as more significant bit */
   /* nr bits? */
   if (l->last < r->last)
-    return +1; /* left as less bits */
+    return +1;                 /* left as less bits */
   if (l->last > r->last)
-    return -1; /* right as less bits */
+    return -1;                 /* right as less bits */
   /* value? */
   if (l->value < r->value)
     return -1;
@@ -246,14 +233,13 @@ opcode_bit_cmp (opcode_bits *l,
 
 /* same as strcmp */
 static int
-opcode_bits_cmp (opcode_bits *l,
-                opcode_bits *r)
+opcode_bits_cmp (opcode_bits *l, opcode_bits *r)
 {
   while (1)
     {
       int cmp;
       if (l == NULL && r == NULL)
-       return 0; /* all previous bits the same */
+       return 0;               /* all previous bits the same */
       cmp = opcode_bit_cmp (l, r);
       if (cmp != 0)
        return cmp;
@@ -267,9 +253,7 @@ static opcode_bits *
 new_opcode_bits (opcode_bits *old_bits,
                 int value,
                 int first,
-                int last,
-                insn_field_entry *field,
-                opcode_field *opcode)
+                int last, insn_field_entry *field, opcode_field *opcode)
 {
   opcode_bits *new_bits = ZALLOC (opcode_bits);
   new_bits->field = field;
@@ -277,7 +261,7 @@ new_opcode_bits (opcode_bits *old_bits,
   new_bits->first = first;
   new_bits->last = last;
   new_bits->opcode = opcode;
-  
+
   if (old_bits != NULL)
     {
       opcode_bits *new_list;
@@ -286,12 +270,11 @@ new_opcode_bits (opcode_bits *old_bits,
                                  old_bits->value,
                                  old_bits->first,
                                  old_bits->last,
-                                 old_bits->field,
-                                 old_bits->opcode);
+                                 old_bits->field, old_bits->opcode);
       while (*last != NULL)
        {
          int cmp = opcode_bit_cmp (new_bits, *last);
-         if (cmp < 0) /* new < new_list */
+         if (cmp < 0)          /* new < new_list */
            {
              break;
            }
@@ -325,15 +308,17 @@ format_name_cmp (const char *l, const char *r)
 }
 
 
-typedef enum {
+typedef enum
+{
   merge_duplicate_insns,
   report_duplicate_insns,
-} duplicate_insn_actions;
+}
+duplicate_insn_actions;
 
 static insn_list *
 insn_list_insert (insn_list **cur_insn_ptr,
                  int *nr_insns,
-                 insn_entry *insn,
+                 insn_entry * insn,
                  opcode_bits *expanded_bits,
                  opcode_field *opcodes,
                  int nr_prefetched_words,
@@ -366,12 +351,14 @@ insn_list_insert (insn_list **cur_insn_ptr,
        continue;
 
       /* key#4 sort according to the format-name.  If two apparently
-        identical instructions have unique format-names, then the
-        instructions are different.  This is because the
-        format-name's use is overloaded, it not only indicates the
-        format name but also provides a unique semantic name for the
-        function.  */
-      cmp = format_name_cmp (insn->format_name, (*cur_insn_ptr)->insn->format_name);
+         identical instructions have unique format-names, then the
+         instructions are different.  This is because the
+         format-name's use is overloaded, it not only indicates the
+         format name but also provides a unique semantic name for the
+         function.  */
+      cmp =
+       format_name_cmp (insn->format_name,
+                        (*cur_insn_ptr)->insn->format_name);
       if (cmp < 0)
        break;
       else if (cmp > 0)
@@ -409,7 +396,7 @@ insn_list_insert (insn_list **cur_insn_ptr,
        }
 
     }
-  
+
   /* create a new list entry and insert it */
   {
     insn_list *new_insn = ZALLOC (insn_list);
@@ -424,7 +411,7 @@ insn_list_insert (insn_list **cur_insn_ptr,
       }
     (*cur_insn_ptr) = new_insn;
   }
-  
+
   *nr_insns += 1;
 
   return (*cur_insn_ptr);
@@ -435,27 +422,24 @@ extern void
 gen_entry_traverse_tree (lf *file,
                         gen_entry *table,
                         int depth,
-                        gen_entry_handler *start,
-                        gen_entry_handler *leaf,
-                        gen_entry_handler *end,
-                        void *data)
+                        gen_entry_handler * start,
+                        gen_entry_handler * leaf,
+                        gen_entry_handler * end, void *data)
 {
   gen_entry *entry;
-  
-  ASSERT (table != NULL);
+
+  ASSERT (table !=NULL);
   ASSERT (table->opcode != NULL);
   ASSERT (table->nr_entries > 0);
   ASSERT (table->entries != 0);
-  
+
   /* prefix */
   if (start != NULL && depth >= 0)
     {
       start (file, table, depth, data);
     }
   /* infix leaves */
-  for (entry = table->entries;
-       entry != NULL;
-       entry = entry->sibling)
+  for (entry = table->entries; entry != NULL; entry = entry->sibling)
     {
       if (entry->entries != NULL && depth != 0)
        {
@@ -482,9 +466,7 @@ gen_entry_traverse_tree (lf *file,
 /* create a list element containing a single gen_table entry */
 
 static gen_list *
-make_table (insn_table *isa,
-           decode_table *rules,
-           model_entry *model)
+make_table (insn_table *isa, decode_table *rules, model_entry *model)
 {
   insn_entry *insn;
   gen_list *entry = ZALLOC (gen_list);
@@ -498,12 +480,9 @@ make_table (insn_table *isa,
          || insn->processors == NULL
          || filter_is_member (insn->processors, model->name))
        {
-         insn_list_insert (&entry->table->insns,
-                           &entry->table->nr_insns,
-                           insn,
-                           NULL, /* expanded_bits - none yet */
-                           NULL, /* opcodes - none yet */
-                           0, /* nr_prefetched_words - none yet */
+         insn_list_insert (&entry->table->insns, &entry->table->nr_insns, insn, NULL,  /* expanded_bits - none yet */
+                           NULL,       /* opcodes - none yet */
+                           0,  /* nr_prefetched_words - none yet */
                            report_duplicate_insns);
        }
     }
@@ -513,8 +492,7 @@ make_table (insn_table *isa,
 
 
 gen_table *
-make_gen_tables (insn_table *isa,
-                decode_table *rules)
+make_gen_tables (insn_table *isa, decode_table *rules)
 {
   gen_table *gen = ZALLOC (gen_table);
   gen->isa = isa;
@@ -528,9 +506,7 @@ make_gen_tables (insn_table *isa,
        processors = options.model_filter;
       else
        processors = isa->model->processors;
-      for (model = isa->model->models;
-          model != NULL;
-          model = model->next)
+      for (model = isa->model->models; model != NULL; model = model->next)
        {
          if (filter_is_member (processors, model->name))
            {
@@ -545,21 +521,22 @@ make_gen_tables (insn_table *isa,
     }
   return gen;
 }
-  
-  
+
+
 /****************************************************************/
 
 #if 0
-typedef enum {
+typedef enum
+{
   field_is_not_constant = 0,
   field_constant_int = 1,
   field_constant_reserved = 2,
   field_constant_string = 3
-} constant_field_types;
+}
+constant_field_types;
 
 static constant_field_types
-insn_field_is_constant (insn_field *field,
-                       decode_table *rule)
+insn_field_is_constant (insn_field * field, decode_table *rule)
 {
   switch (field->type)
     {
@@ -573,7 +550,7 @@ insn_field_is_constant (insn_field *field,
       else
        return field_is_not_constant;
     case insn_field_wild:
-      return field_is_not_constant; /* never constant */
+      return field_is_not_constant;    /* never constant */
     case insn_field_string:
       /* field, though variable, is on the list of forced constants */
       if (filter_is_member (rule->constant_field_names, field->val_string))
@@ -593,13 +570,11 @@ insn_field_is_constant (insn_field *field,
 /* Is the bit, according to the decode rule, identical across all the
    instructions? */
 static int
-insns_bit_useless (insn_list *insns,
-                  decode_table *rule,
-                  int bit_nr)
+insns_bit_useless (insn_list *insns, decode_table *rule, int bit_nr)
 {
   insn_list *entry;
   int value = -1;
-  int is_useless = 1; /* cleared if something actually found */
+  int is_useless = 1;          /* cleared if something actually found */
 
   /* check the instructions for some constant value in at least one of
      the bit fields */
@@ -625,9 +600,9 @@ insns_bit_useless (insn_list *insns,
            case decode_find_constants:
            case decode_find_mixed:
              /* an integer is useful if its value isn't the same
-                 between all instructions.  The first time through the
-                 value is saved, the second time through (if the
-                 values differ) it is marked as useful. */
+                between all instructions.  The first time through the
+                value is saved, the second time through (if the
+                values differ) it is marked as useful. */
              if (value < 0)
                value = bit->value;
              else if (value != bit->value)
@@ -684,14 +659,13 @@ insns_bit_useless (insn_list *insns,
                  break;
                case decode_find_mixed:
                  /* string field with conditions.  If this condition
-                     eliminates the value then the compare is useful */
+                    eliminates the value then the compare is useful */
                  if (bit->field->conditions != NULL)
                    {
                      insn_field_cond *condition;
                      int shift = bit->field->last - bit_nr;
                      for (condition = bit->field->conditions;
-                          condition != NULL;
-                          condition = condition->next)
+                          condition != NULL; condition = condition->next)
                        {
                          switch (condition->type)
                            {
@@ -702,14 +676,14 @@ insns_bit_useless (insn_list *insns,
                                  if (((condition->value >> shift) & 1)
                                      == (unsigned) value)
                                    /* conditional field excludes the
-                                       current value */
+                                      current value */
                                    is_useless = 0;
                                  break;
                                case insn_field_cond_eq:
                                  if (((condition->value >> shift) & 1)
                                      != (unsigned) value)
                                    /* conditional field requires the
-                                       current value */
+                                      current value */
                                    is_useless = 0;
                                  break;
                                }
@@ -734,8 +708,7 @@ insns_bit_useless (insn_list *insns,
 
 static opcode_field *
 gen_entry_find_opcode_field (insn_list *insns,
-                            decode_table *rule,
-                            int string_only)
+                            decode_table *rule, int string_only)
 {
   opcode_field curr_opcode;
   ASSERT (rule != NULL);
@@ -751,14 +724,14 @@ gen_entry_find_opcode_field (insn_list *insns,
   while (curr_opcode.first <= rule->last)
     {
       if (insns_bit_useless (insns, rule, curr_opcode.first))
-       curr_opcode.first ++;
+       curr_opcode.first++;
       else
        break;
     }
   while (curr_opcode.last >= rule->first)
     {
       if (insns_bit_useless (insns, rule, curr_opcode.last))
-       curr_opcode.last --;
+       curr_opcode.last--;
       else
        break;
     }
@@ -769,62 +742,66 @@ gen_entry_find_opcode_field (insn_list *insns,
     {
       insn_word_entry *fields = entry->insn->word[rule->word_nr];
       opcode_field new_opcode;
-      
+
       ASSERT (fields != NULL);
-      
+
       /* find a start point for the opcode field */
       new_opcode.first = rule->first;
       while (new_opcode.first <= rule->last
             && (!string_only
-                || (insn_field_is_constant(fields->bit[new_opcode.first], rule)
-                    != field_constant_string))
-            && (string_only
-                || (insn_field_is_constant(fields->bit[new_opcode.first], rule)
-                    == field_is_not_constant)))
+                ||
+                (insn_field_is_constant (fields->bit[new_opcode.first], rule)
+                 != field_constant_string)) && (string_only
+                                                ||
+                                                (insn_field_is_constant
+                                                 (fields->
+                                                  bit[new_opcode.first],
+                                                  rule) ==
+                                                 field_is_not_constant)))
        {
          int new_first = fields->bit[new_opcode.first]->last + 1;
          ASSERT (new_first > new_opcode.first);
          new_opcode.first = new_first;
        }
-      ASSERT(new_opcode.first > rule->last
-            || (string_only
-                && insn_field_is_constant(fields->bit[new_opcode.first],
-                                          rule) == field_constant_string)
-            || (!string_only
-                && insn_field_is_constant(fields->bit[new_opcode.first],
-                                          rule)));
-      
+      ASSERT (new_opcode.first > rule->last
+             || (string_only
+                 && insn_field_is_constant (fields->bit[new_opcode.first],
+                                            rule) == field_constant_string)
+             || (!string_only
+                 && insn_field_is_constant (fields->bit[new_opcode.first],
+                                            rule)));
+
       /* find the end point for the opcode field */
       new_opcode.last = rule->last;
       while (new_opcode.last >= rule->first
             && (!string_only
-                || insn_field_is_constant(fields->bit[new_opcode.last],
-                                          rule) != field_constant_string)
+                || insn_field_is_constant (fields->bit[new_opcode.last],
+                                           rule) != field_constant_string)
             && (string_only
-                || !insn_field_is_constant(fields->bit[new_opcode.last],
-                                           rule)))
+                || !insn_field_is_constant (fields->bit[new_opcode.last],
+                                            rule)))
        {
          int new_last = fields->bit[new_opcode.last]->first - 1;
          ASSERT (new_last < new_opcode.last);
          new_opcode.last = new_last;
        }
-      ASSERT(new_opcode.last < rule->first
-            || (string_only
-                && insn_field_is_constant(fields->bit[new_opcode.last],
-                                          rule) == field_constant_string)
-            || (!string_only
-                && insn_field_is_constant(fields->bit[new_opcode.last],
-                                          rule)));
-      
+      ASSERT (new_opcode.last < rule->first
+             || (string_only
+                 && insn_field_is_constant (fields->bit[new_opcode.last],
+                                            rule) == field_constant_string)
+             || (!string_only
+                 && insn_field_is_constant (fields->bit[new_opcode.last],
+                                            rule)));
+
       /* now see if our current opcode needs expanding to include the
-        interesting fields within this instruction */
+         interesting fields within this instruction */
       if (new_opcode.first <= rule->last
          && curr_opcode.first > new_opcode.first)
        curr_opcode.first = new_opcode.first;
       if (new_opcode.last >= rule->first
          && curr_opcode.last < new_opcode.last)
        curr_opcode.last = new_opcode.last;
-      
+
     }
 #endif
 
@@ -839,21 +816,18 @@ gen_entry_find_opcode_field (insn_list *insns,
 
   /* Ensure that, for the non string only case, the opcode includes
      the range forced_first .. forced_last */
-  if (!string_only
-      && curr_opcode.first > rule->force_first)
+  if (!string_only && curr_opcode.first > rule->force_first)
     {
       curr_opcode.first = rule->force_first;
     }
-  if (!string_only
-      && curr_opcode.last < rule->force_last)
+  if (!string_only && curr_opcode.last < rule->force_last)
     {
       curr_opcode.last = rule->force_last;
     }
 
   /* For the string only case, force just the lower bound (so that the
      shift can be eliminated) */
-  if (string_only
-      && rule->force_last == options.insn_bit_size - 1)
+  if (string_only && rule->force_last == options.insn_bit_size - 1)
     {
       curr_opcode.last = options.insn_bit_size - 1;
     }
@@ -883,20 +857,19 @@ gen_entry_find_opcode_field (insn_list *insns,
 
 static void
 gen_entry_insert_insn (gen_entry *table,
-                      insn_entry *old_insn,
+                      insn_entry * old_insn,
                       int new_word_nr,
                       int new_nr_prefetched_words,
-                      int new_opcode_nr,
-                      opcode_bits *new_bits)
+                      int new_opcode_nr, opcode_bits *new_bits)
 {
   gen_entry **entry = &table->entries;
-  
+
   /* find the new table for this entry */
   while ((*entry) != NULL && (*entry)->opcode_nr < new_opcode_nr)
     {
       entry = &(*entry)->sibling;
     }
-  
+
   if ((*entry) == NULL || (*entry)->opcode_nr != new_opcode_nr)
     {
       /* insert the missing entry */
@@ -915,22 +888,17 @@ gen_entry_insert_insn (gen_entry *table,
     }
   /* ASSERT new_bits == cur_entry bits */
   ASSERT ((*entry) != NULL && (*entry)->opcode_nr == new_opcode_nr);
-  insn_list_insert (&(*entry)->insns,
-                   &(*entry)->nr_insns,
-                   old_insn,
-                   NULL, /* expanded_bits - only in final list */
-                   NULL, /* opcodes - only in final list */
-                   new_nr_prefetched_words, /* for this table */
+  insn_list_insert (&(*entry)->insns, &(*entry)->nr_insns, old_insn, NULL,     /* expanded_bits - only in final list */
+                   NULL,       /* opcodes - only in final list */
+                   new_nr_prefetched_words,    /* for this table */
                    report_duplicate_insns);
 }
 
 
 static void
 gen_entry_expand_opcode (gen_entry *table,
-                        insn_entry *instruction,
-                        int bit_nr,
-                        int opcode_nr,
-                        opcode_bits *bits)
+                        insn_entry * instruction,
+                        int bit_nr, int opcode_nr, opcode_bits *bits)
 {
   if (bit_nr > table->opcode->last)
     {
@@ -943,21 +911,20 @@ gen_entry_expand_opcode (gen_entry *table,
                  opcode_nr,
                  instruction->format_name,
                  instruction->name,
-                 (table->opcode_rule->with_duplicates ? " (duplicated)" : ""));
+                 (table->opcode_rule->
+                  with_duplicates ? " (duplicated)" : ""));
        }
       if (table->opcode_rule->with_duplicates)
        {
          gen_entry_insert_insn (table, instruction,
                                 table->opcode->word_nr,
-                                table->nr_prefetched_words,
-                                opcode_nr, bits);
+                                table->nr_prefetched_words, opcode_nr, bits);
        }
       else
        {
          gen_entry_insert_insn (table, instruction,
                                 table->opcode->word_nr,
-                                table->nr_prefetched_words,
-                                opcode_nr, NULL);
+                                table->nr_prefetched_words, opcode_nr, NULL);
        }
     }
   else
@@ -965,23 +932,19 @@ gen_entry_expand_opcode (gen_entry *table,
       insn_word_entry *word = instruction->word[table->opcode->word_nr];
       insn_field_entry *field = word->bit[bit_nr]->field;
       int last_pos = ((field->last < table->opcode->last)
-                     ? field->last
-                     : table->opcode->last);
+                     ? field->last : table->opcode->last);
       int first_pos = ((field->first > table->opcode->first)
-                      ? field->first
-                      : table->opcode->first);
+                      ? field->first : table->opcode->first);
       int width = last_pos - first_pos + 1;
       switch (field->type)
        {
        case insn_field_int:
          {
            int val;
-           val = sub_val (field->val_int, field->last,
-                          first_pos, last_pos);
+           val = sub_val (field->val_int, field->last, first_pos, last_pos);
            gen_entry_expand_opcode (table, instruction,
                                     last_pos + 1,
-                                    ((opcode_nr << width) | val),
-                                    bits);
+                                    ((opcode_nr << width) | val), bits);
            break;
          }
        default:
@@ -989,18 +952,15 @@ gen_entry_expand_opcode (gen_entry *table,
            if (field->type == insn_field_reserved)
              gen_entry_expand_opcode (table, instruction,
                                       last_pos + 1,
-                                      ((opcode_nr << width)),
-                                      bits);
+                                      ((opcode_nr << width)), bits);
            else
              {
                int val;
-               int last_val = (table->opcode->is_boolean
-                               ? 2
-                               : (1 << width));
+               int last_val = (table->opcode->is_boolean ? 2 : (1 << width));
                for (val = 0; val < last_val; val++)
                  {
                    /* check to see if the value has been precluded
-                       (by a conditional) in some way */
+                      (by a conditional) in some way */
                    int is_precluded;
                    insn_field_cond *condition;
                    for (condition = field->conditions, is_precluded = 0;
@@ -1011,8 +971,9 @@ gen_entry_expand_opcode (gen_entry *table,
                          {
                          case insn_field_cond_value:
                            {
-                             int value = sub_val (condition->value, field->last,
-                                                  first_pos, last_pos);
+                             int value =
+                               sub_val (condition->value, field->last,
+                                        first_pos, last_pos);
                              switch (condition->test)
                                {
                                case insn_field_cond_ne:
@@ -1032,51 +993,62 @@ gen_entry_expand_opcode (gen_entry *table,
                              opcode_bits *bit;
                              gen_entry *t = NULL;
                              /* Try to find a value for the
-                                 conditional by looking back through
-                                 the previously defined bits for one
-                                 that covers the designated
-                                 conditional field */
-                             for (bit = bits;
-                                  bit != NULL;
-                                  bit = bit->next)
+                                conditional by looking back through
+                                the previously defined bits for one
+                                that covers the designated
+                                conditional field */
+                             for (bit = bits; bit != NULL; bit = bit->next)
                                {
-                                 if (bit->field->word_nr == condition->field->word_nr
+                                 if (bit->field->word_nr ==
+                                     condition->field->word_nr
                                      && bit->first <= condition->field->first
                                      && bit->last >= condition->field->last)
                                    {
                                      /* the bit field fully specified
-                                        the conditional field's value */
+                                        the conditional field's value */
                                      value = sub_val (bit->value, bit->last,
-                                                      condition->field->first,
-                                                      condition->field->last);
+                                                      condition->field->
+                                                      first,
+                                                      condition->field->
+                                                      last);
                                    }
                                }
                              /* Try to find a value by looking
-                                 through this and previous tables */
+                                through this and previous tables */
                              if (bit == NULL)
                                {
                                  for (t = table;
-                                      t->parent != NULL;
-                                      t = t->parent)
+                                      t->parent != NULL; t = t->parent)
                                    {
-                                     if (t->parent->opcode->word_nr == condition->field->word_nr
-                                         && t->parent->opcode->first <= condition->field->first
-                                         && t->parent->opcode->last >= condition->field->last)
+                                     if (t->parent->opcode->word_nr ==
+                                         condition->field->word_nr
+                                         && t->parent->opcode->first <=
+                                         condition->field->first
+                                         && t->parent->opcode->last >=
+                                         condition->field->last)
                                        {
                                          /* the table entry fully
-                                             specified the condition
-                                             field's value */
+                                            specified the condition
+                                            field's value */
                                          /* extract the field's value
-                                             from the opcode */
-                                         value = sub_val (t->opcode_nr, t->parent->opcode->last,
-                                                          condition->field->first, condition->field->last);
+                                            from the opcode */
+                                         value =
+                                           sub_val (t->opcode_nr,
+                                                    t->parent->opcode->last,
+                                                    condition->field->first,
+                                                    condition->field->last);
                                          /* this is a requirement of
-                                             a conditonal field
-                                             refering to another field */
-                                         ASSERT ((condition->field->first - condition->field->last)
-                                                 == (first_pos - last_pos));
-printf ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
-       value, t->opcode_nr, t->parent->opcode->last, condition->field->first, condition->field->last);
+                                            a conditonal field
+                                            refering to another field */
+                                         ASSERT ((condition->field->first -
+                                                  condition->field->last) ==
+                                                 (first_pos - last_pos));
+                                         printf
+                                           ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
+                                            value, t->opcode_nr,
+                                            t->parent->opcode->last,
+                                            condition->field->first,
+                                            condition->field->last);
                                        }
                                    }
                                }
@@ -1102,25 +1074,26 @@ printf ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
                    if (!is_precluded)
                      {
                        /* Only add additional hardwired bit
-                           information if the entry is not going to
-                           later be combined */
+                          information if the entry is not going to
+                          later be combined */
                        if (table->opcode_rule->with_combine)
                          {
                            gen_entry_expand_opcode (table, instruction,
                                                     last_pos + 1,
-                                                    ((opcode_nr << width) | val),
-                                                    bits);
+                                                    ((opcode_nr << width) |
+                                                     val), bits);
                          }
                        else
                          {
-                           opcode_bits *new_bits = new_opcode_bits (bits, val,
-                                                                    first_pos, last_pos,
-                                                                    field,
-                                                                    table->opcode);
+                           opcode_bits *new_bits =
+                             new_opcode_bits (bits, val,
+                                              first_pos, last_pos,
+                                              field,
+                                              table->opcode);
                            gen_entry_expand_opcode (table, instruction,
                                                     last_pos + 1,
-                                                    ((opcode_nr << width) | val),
-                                                    new_bits);
+                                                    ((opcode_nr << width) |
+                                                     val), new_bits);
                          }
                      }
                  }
@@ -1131,28 +1104,24 @@ printf ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
 }
 
 static void
-gen_entry_insert_expanding (gen_entry *table,
-                           insn_entry *instruction)
+gen_entry_insert_expanding (gen_entry *table, insn_entry * instruction)
 {
   gen_entry_expand_opcode (table,
                           instruction,
-                          table->opcode->first,
-                          0,
-                          table->expanded_bits);
+                          table->opcode->first, 0, table->expanded_bits);
 }
 
 
 static int
-insns_match_format_names (insn_list *insns,
-                         filter *format_names)
+insns_match_format_names (insn_list *insns, filter *format_names)
 {
   if (format_names != NULL)
     {
       insn_list *i;
       for (i = insns; i != NULL; i = i->next)
        {
-         if ( i->insn->format_name != NULL
-              && !filter_is_member (format_names, i->insn->format_name))
+         if (i->insn->format_name != NULL
+             && !filter_is_member (format_names, i->insn->format_name))
            return 0;
        }
     }
@@ -1160,8 +1129,7 @@ insns_match_format_names (insn_list *insns,
 }
 
 static int
-table_matches_path (gen_entry *table,
-                   decode_path_list *paths)
+table_matches_path (gen_entry *table, decode_path_list *paths)
 {
   if (paths == NULL)
     return 1;
@@ -1187,8 +1155,7 @@ table_matches_path (gen_entry *table,
 
 
 static int
-insns_match_conditions (insn_list *insns,
-                       decode_cond *conditions)
+insns_match_conditions (insn_list *insns, decode_cond *conditions)
 {
   if (conditions != NULL)
     {
@@ -1208,8 +1175,7 @@ insns_match_conditions (insn_list *insns,
                  if (!i->insn->word[cond->word_nr]->bit[bit_nr]->mask)
                    return 0;
                  if ((i->insn->word[cond->word_nr]->bit[bit_nr]->value
-                      == cond->value[bit_nr])
-                     == !cond->is_equal)
+                      == cond->value[bit_nr]) == !cond->is_equal)
                    return 0;
                }
            }
@@ -1219,8 +1185,7 @@ insns_match_conditions (insn_list *insns,
 }
 
 static int
-insns_match_nr_words (insn_list *insns,
-                     int nr_words)
+insns_match_nr_words (insn_list *insns, int nr_words)
 {
   insn_list *i;
   for (i = insns; i != NULL; i = i->next)
@@ -1232,8 +1197,7 @@ insns_match_nr_words (insn_list *insns,
 }
 
 static int
-insn_list_cmp (insn_list *l,
-              insn_list *r)
+insn_list_cmp (insn_list *l, insn_list *r)
 {
   while (1)
     {
@@ -1245,7 +1209,7 @@ insn_list_cmp (insn_list *l,
       if (r == NULL)
        return 1;
       if (l->insn != r->insn)
-       return -1; /* somewhat arbitrary at present */
+       return -1;              /* somewhat arbitrary at present */
       /* skip this insn */
       insn = l->insn;
       while (l != NULL && l->insn == insn)
@@ -1262,12 +1226,11 @@ gen_entry_expand_insns (gen_entry *table)
 {
   decode_table *opcode_rule;
 
-  ASSERT(table->nr_insns >= 1);
-  
+  ASSERT (table->nr_insns >= 1);
+
   /* determine a valid opcode */
   for (opcode_rule = table->opcode_rule;
-       opcode_rule != NULL;
-       opcode_rule = opcode_rule->next)
+       opcode_rule != NULL; opcode_rule = opcode_rule->next)
     {
       char *discard_reason;
       if (table->top->model != NULL
@@ -1281,17 +1244,19 @@ gen_entry_expand_insns (gen_entry *table)
       else if (table->nr_insns == 1 && opcode_rule->conditions == NULL)
        {
          /* for safety, require a pre-codition when attempting to
-             apply a rule to a single instruction */
+            apply a rule to a single instruction */
          discard_reason = "need pre-condition when nr-insn == 1";
        }
       else if (table->nr_insns == 1 && !opcode_rule->with_duplicates)
        {
          /* Little point in expanding a single instruction when we're
-             not duplicating the semantic functions that this table
-             calls */
+            not duplicating the semantic functions that this table
+            calls */
          discard_reason = "need duplication with nr-insns == 1";
        }
-      else if (!insns_match_format_names (table->insns, opcode_rule->format_names))
+      else
+       if (!insns_match_format_names
+           (table->insns, opcode_rule->format_names))
        {
          discard_reason = "wrong format name";
        }
@@ -1303,18 +1268,18 @@ gen_entry_expand_insns (gen_entry *table)
        {
          discard_reason = "path failed";
        }
-      else if (!insns_match_conditions (table->insns, opcode_rule->conditions))
+      else
+       if (!insns_match_conditions (table->insns, opcode_rule->conditions))
        {
          discard_reason = "condition failed";
        }
       else
        {
          discard_reason = "no opcode field";
-         table->opcode =
-           gen_entry_find_opcode_field (table->insns,
-                                        opcode_rule,
-                                        table->nr_insns == 1/*string-only*/
-                                        );
+         table->opcode = gen_entry_find_opcode_field (table->insns,
+                                                      opcode_rule,
+                                                      table->nr_insns == 1     /*string-only */
+           );
          if (table->opcode != NULL)
            {
              table->opcode_rule = opcode_rule;
@@ -1328,7 +1293,7 @@ gen_entry_expand_insns (gen_entry *table)
          notify (NULL, ": rule discarded - %s\n", discard_reason);
        }
     }
-  
+
   /* did we find anything */
   if (opcode_rule == NULL)
     {
@@ -1348,7 +1313,8 @@ gen_entry_expand_insns (gen_entry *table)
      this table to function */
   if (table->parent == NULL)
     table->nr_prefetched_words = table->opcode_rule->word_nr + 1;
-  else if (table->opcode_rule->word_nr + 1 > table->parent->nr_prefetched_words)
+  else if (table->opcode_rule->word_nr + 1 >
+          table->parent->nr_prefetched_words)
     table->nr_prefetched_words = table->opcode_rule->word_nr + 1;
   else
     table->nr_prefetched_words = table->parent->nr_prefetched_words;
@@ -1356,7 +1322,7 @@ gen_entry_expand_insns (gen_entry *table)
   /* back link what we found to its parent */
   if (table->parent != NULL)
     {
-      ASSERT(table->parent->opcode != NULL);
+      ASSERT (table->parent->opcode != NULL);
       table->opcode->parent = table->parent->opcode;
     }
 
@@ -1371,8 +1337,7 @@ gen_entry_expand_insns (gen_entry *table)
              i2target (options.hi_bit_nr, table->opcode->last),
              i2target (options.hi_bit_nr, table->opcode_rule->first),
              i2target (options.hi_bit_nr, table->opcode_rule->last),
-             table->opcode->nr_opcodes,
-             table->nr_entries);
+             table->opcode->nr_opcodes, table->nr_entries);
     }
 
   /* expand the raw instructions according to the opcode */
@@ -1384,8 +1349,7 @@ gen_entry_expand_insns (gen_entry *table)
          {
            print_gen_entry_path (table->opcode_rule->line, table, notify);
            notify (NULL, ": expand - %s.%s\n",
-                   entry->insn->format_name,
-                   entry->insn->name);
+                   entry->insn->format_name, entry->insn->name);
          }
        gen_entry_insert_expanding (table, entry->insn);
       }
@@ -1400,14 +1364,13 @@ gen_entry_expand_insns (gen_entry *table)
          insn_list *l;
          print_gen_entry_path (table->opcode_rule->line, entry, notify);
          notify (NULL, ": %d - entries %d -",
-                 entry->opcode_nr,
-                 entry->nr_insns);
+                 entry->opcode_nr, entry->nr_insns);
          for (l = entry->insns; l != NULL; l = l->next)
            notify (NULL, " %s.%s", l->insn->format_name, l->insn->name);
          notify (NULL, "\n");
        }
     }
-       
+
   /* perform a combine pass if needed */
   if (table->opcode_rule->with_combine)
     {
@@ -1441,9 +1404,9 @@ gen_entry_expand_insns (gen_entry *table)
                  insn_list *l;
                  gen_entry *duplicate;
                  nr_unique++;
-                 print_gen_entry_path (table->opcode_rule->line, entry, notify);
-                 for (duplicate = entry->combined_next;
-                      duplicate != NULL;
+                 print_gen_entry_path (table->opcode_rule->line, entry,
+                                       notify);
+                 for (duplicate = entry->combined_next; duplicate != NULL;
                       duplicate = duplicate->combined_next)
                    {
                      notify (NULL, "+%d", duplicate->opcode_nr);
@@ -1452,42 +1415,42 @@ gen_entry_expand_insns (gen_entry *table)
                  for (l = entry->insns; l != NULL; l = l->next)
                    {
                      notify (NULL, " %s.%s",
-                             l->insn->format_name,
-                             l->insn->name);
+                             l->insn->format_name, l->insn->name);
                    }
                  notify (NULL, "\n");
                }
            }
          print_gen_entry_path (table->opcode_rule->line, table, notify);
-         notify (NULL, ": combine - word %d, bits [%d..%d] in [%d..%d], opcodes %d, entries %d, unique %d\n",
-                 table->opcode->word_nr,
-                 i2target (options.hi_bit_nr, table->opcode->first),
+         notify (NULL,
+                 ": combine - word %d, bits [%d..%d] in [%d..%d], opcodes %d, entries %d, unique %d\n",
+                 table->opcode->word_nr, i2target (options.hi_bit_nr,
+                                                   table->opcode->first),
                  i2target (options.hi_bit_nr, table->opcode->last),
                  i2target (options.hi_bit_nr, table->opcode_rule->first),
                  i2target (options.hi_bit_nr, table->opcode_rule->last),
-                 table->opcode->nr_opcodes,
-                 table->nr_entries,
-                 nr_unique);
+                 table->opcode->nr_opcodes, table->nr_entries, nr_unique);
        }
     }
-       
+
   /* Check that the rule did more than re-arange the order of the
      instructions */
   {
-      gen_entry *entry;
-      for (entry = table->entries; entry != NULL; entry = entry->sibling)
-       {
-         if (entry->combined_parent == NULL)
-           {
-             if (insn_list_cmp (table->insns, entry->insns) == 0)
-               {
-                 print_gen_entry_path (table->opcode_rule->line, table, warning);
-                 warning (NULL, ": Applying rule just copied all instructions\n");
-                 print_gen_entry_insns (entry, warning, "Copied", NULL);
-                 error (NULL, "");
-               }
-           }
-       }    
+    gen_entry *entry;
+    for (entry = table->entries; entry != NULL; entry = entry->sibling)
+      {
+       if (entry->combined_parent == NULL)
+         {
+           if (insn_list_cmp (table->insns, entry->insns) == 0)
+             {
+               print_gen_entry_path (table->opcode_rule->line, table,
+                                     warning);
+               warning (NULL,
+                        ": Applying rule just copied all instructions\n");
+               print_gen_entry_insns (entry, warning, "Copied", NULL);
+               error (NULL, "");
+             }
+         }
+      }
   }
 
   /* if some form of expanded table, fill in the missing dots */
@@ -1507,10 +1470,7 @@ gen_entry_expand_insns (gen_entry *table)
              if ((*entry) == NULL || (*entry)->opcode_nr != opcode_nr)
                {
                  /* missing - insert it under our feet at *entry */
-                 gen_entry_insert_insn (table,
-                                        table->top->isa->illegal_insn,
-                                        table->opcode->word_nr,
-                                        0, /* nr_prefetched_words == 0 for invalid */
+                 gen_entry_insert_insn (table, table->top->isa->illegal_insn, table->opcode->word_nr, 0,       /* nr_prefetched_words == 0 for invalid */
                                         opcode_nr, NULL);
                  ASSERT ((*entry) != NULL);
                  ASSERT ((*entry)->opcode_nr == opcode_nr);
@@ -1522,7 +1482,7 @@ gen_entry_expand_insns (gen_entry *table)
              opcode_nr++;
            }
          /* oops, will have pointed the first illegal insn back to
-             its self.  Fix this */
+            its self.  Fix this */
          if (illegals != NULL)
            illegals->combined_parent = NULL;
        }
@@ -1537,7 +1497,7 @@ gen_entry_expand_insns (gen_entry *table)
      expand entries that haven't been combined. */
   {
     gen_entry *entry;
-    for (entry = table->entries; entry != NULL; entry =  entry->sibling)
+    for (entry = table->entries; entry != NULL; entry = entry->sibling)
       {
        if (entry->combined_parent == NULL)
          {
@@ -1563,12 +1523,9 @@ gen_tables_expand_insns (gen_table *gen)
    worked. */
 
 static void
-make_gen_semantics_list (lf *file,
-                        gen_entry *entry,
-                        int depth,
-                        void *data)
+make_gen_semantics_list (lf *file, gen_entry *entry, int depth, void *data)
 {
-  gen_table *gen = (gen_table*) data;
+  gen_table *gen = (gen_table *) data;
   insn_list *insn;
   /* Not interested in an entrie that have been combined into some
      other entry at the same level */
@@ -1598,14 +1555,12 @@ gen_tables_expand_semantics (gen_table *gen)
   gen_list *entry;
   for (entry = gen->tables; entry != NULL; entry = entry->next)
     {
-      gen_entry_traverse_tree (NULL,
-                              entry->table,
-                              1, /* depth */
-                              NULL, /* start-handler */
-                              make_gen_semantics_list, /* leaf-handler */
-                              NULL, /* end-handler */
-                              gen); /* data */
-  }
+      gen_entry_traverse_tree (NULL, entry->table, 1,  /* depth */
+                              NULL,    /* start-handler */
+                              make_gen_semantics_list, /* leaf-handler */
+                              NULL,    /* end-handler */
+                              gen);    /* data */
+    }
 }
 
 
@@ -1616,34 +1571,30 @@ gen_tables_expand_semantics (gen_table *gen)
 static void
 dump_opcode_field (lf *file,
                   char *prefix,
-                  opcode_field *field,
-                  char *suffix,
-                  int levels)
+                  opcode_field *field, char *suffix, int levels)
 {
   lf_printf (file, "%s(opcode_field *) 0x%lx", prefix, (long) field);
-  if (levels && field != NULL) {
-    lf_indent (file, +1);
-    lf_printf (file, "\n(first %d)", field->first);
-    lf_printf (file, "\n(last %d)", field->last);
-    lf_printf (file, "\n(nr_opcodes %d)", field->nr_opcodes);
-    lf_printf (file, "\n(is_boolean %d)", field->is_boolean);
-    lf_printf (file, "\n(boolean_constant %d)", field->boolean_constant);
-    dump_opcode_field(file, "\n(parent ", field->parent, ")", levels - 1);
-    lf_indent (file, -1);
-  }
+  if (levels && field != NULL)
+    {
+      lf_indent (file, +1);
+      lf_printf (file, "\n(first %d)", field->first);
+      lf_printf (file, "\n(last %d)", field->last);
+      lf_printf (file, "\n(nr_opcodes %d)", field->nr_opcodes);
+      lf_printf (file, "\n(is_boolean %d)", field->is_boolean);
+      lf_printf (file, "\n(boolean_constant %d)", field->boolean_constant);
+      dump_opcode_field (file, "\n(parent ", field->parent, ")", levels - 1);
+      lf_indent (file, -1);
+    }
   lf_printf (file, "%s", suffix);
 }
 
 
 static void
 dump_opcode_bits (lf *file,
-                 char *prefix,
-                 opcode_bits *bits,
-                 char *suffix,
-                 int levels)
+                 char *prefix, opcode_bits *bits, char *suffix, int levels)
 {
   lf_printf (file, "%s(opcode_bits *) 0x%lx", prefix, (long) bits);
-  
+
   if (levels && bits != NULL)
     {
       lf_indent (file, +1);
@@ -1659,28 +1610,25 @@ dump_opcode_bits (lf *file,
 
 
 static void
-dump_insn_list (lf *file,
-               char *prefix,
-               insn_list *entry,
-               char *suffix)
+dump_insn_list (lf *file, char *prefix, insn_list *entry, char *suffix)
 {
   lf_printf (file, "%s(insn_list *) 0x%lx", prefix, (long) entry);
 
-  if (entry != NULL) {
-    lf_indent (file, +1);
-    dump_insn_entry (file, "\n(insn ", entry->insn, ")");
-    lf_printf (file, "\n(next 0x%lx)", (long) entry->next);
-    lf_indent (file, -1);
-  }
+  if (entry != NULL)
+    {
+      lf_indent (file, +1);
+      dump_insn_entry (file, "\n(insn ", entry->insn, ")");
+      lf_printf (file, "\n(next 0x%lx)", (long) entry->next);
+      lf_indent (file, -1);
+    }
   lf_printf (file, "%s", suffix);
 }
 
 
 static void
 dump_insn_word_entry_list_entries (lf *file,
-                              char *prefix,
-                              insn_list *entry,
-                              char *suffix)
+                                  char *prefix,
+                                  insn_list *entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (entry != NULL)
@@ -1694,39 +1642,37 @@ dump_insn_word_entry_list_entries (lf *file,
 
 static void
 dump_gen_entry (lf *file,
-               char *prefix,
-               gen_entry *table,
-               char *suffix,
-               int levels)
+               char *prefix, gen_entry *table, char *suffix, int levels)
 {
 
   lf_printf (file, "%s(gen_entry *) 0x%lx", prefix, (long) table);
 
-  if (levels && table != NULL) {
-
-    lf_indent (file, +1);
-    lf_printf (file, "\n(opcode_nr %d)", table->opcode_nr);
-    lf_printf (file, "\n(word_nr %d)", table->word_nr);
-    dump_opcode_bits (file, "\n(expanded_bits ", table->expanded_bits, ")", -1);
-    lf_printf (file, "\n(nr_insns %d)", table->nr_insns);
-    dump_insn_word_entry_list_entries (file, "\n(insns ", table->insns, ")");
-    dump_decode_rule (file, "\n(opcode_rule ", table->opcode_rule, ")");
-    dump_opcode_field (file, "\n(opcode ", table->opcode, ")", 0);
-    lf_printf (file, "\n(nr_entries %d)", table->nr_entries);
-    dump_gen_entry (file, "\n(entries ", table->entries, ")", table->nr_entries);
-    dump_gen_entry (file, "\n(sibling ", table->sibling, ")", levels - 1);
-    dump_gen_entry (file, "\n(parent ", table->parent, ")", 0);
-    lf_indent (file, -1);
-  }
+  if (levels && table !=NULL)
+    {
+
+      lf_indent (file, +1);
+      lf_printf (file, "\n(opcode_nr %d)", table->opcode_nr);
+      lf_printf (file, "\n(word_nr %d)", table->word_nr);
+      dump_opcode_bits (file, "\n(expanded_bits ", table->expanded_bits, ")",
+                       -1);
+      lf_printf (file, "\n(nr_insns %d)", table->nr_insns);
+      dump_insn_word_entry_list_entries (file, "\n(insns ", table->insns,
+                                        ")");
+      dump_decode_rule (file, "\n(opcode_rule ", table->opcode_rule, ")");
+      dump_opcode_field (file, "\n(opcode ", table->opcode, ")", 0);
+      lf_printf (file, "\n(nr_entries %d)", table->nr_entries);
+      dump_gen_entry (file, "\n(entries ", table->entries, ")",
+                     table->nr_entries);
+      dump_gen_entry (file, "\n(sibling ", table->sibling, ")", levels - 1);
+      dump_gen_entry (file, "\n(parent ", table->parent, ")", 0);
+      lf_indent (file, -1);
+    }
   lf_printf (file, "%s", suffix);
 }
 
 static void
 dump_gen_list (lf *file,
-              char *prefix,
-              gen_list *entry,
-              char *suffix,
-              int levels)
+              char *prefix, gen_list *entry, char *suffix, int levels)
 {
   while (entry != NULL)
     {
@@ -1740,10 +1686,7 @@ dump_gen_list (lf *file,
 
 static void
 dump_gen_table (lf *file,
-               char *prefix,
-               gen_table *gen,
-               char *suffix,
-               int levels)
+               char *prefix, gen_table *gen, char *suffix, int levels)
 {
   lf_printf (file, "%s(gen_table *) 0x%lx", prefix, (long) gen);
   lf_printf (file, "\n(isa (insn_table *) 0x%lx)", (long) gen->isa);
@@ -1756,8 +1699,7 @@ dump_gen_table (lf *file,
 igen_options options;
 
 int
-main (int argc,
-      char **argv)
+main (int argc, char **argv)
 {
   decode_table *decode_rules;
   insn_table *instructions;
@@ -1765,16 +1707,17 @@ main (int argc,
   lf *l;
 
   if (argc != 7)
-    error (NULL, "Usage: insn <filter-in> <hi-bit-nr> <insn-bit-size> <widths> <decode-table> <insn-table>\n");
+    error (NULL,
+          "Usage: insn <filter-in> <hi-bit-nr> <insn-bit-size> <widths> <decode-table> <insn-table>\n");
 
   INIT_OPTIONS (options);
 
   filter_parse (&options.flags_filter, argv[1]);
 
-  options.hi_bit_nr = a2i(argv[2]);
-  options.insn_bit_size = a2i(argv[3]);
-  options.insn_specifying_widths = a2i(argv[4]);
-  ASSERT(options.hi_bit_nr < options.insn_bit_size);
+  options.hi_bit_nr = a2i (argv[2]);
+  options.insn_bit_size = a2i (argv[3]);
+  options.insn_specifying_widths = a2i (argv[4]);
+  ASSERT (options.hi_bit_nr < options.insn_bit_size);
 
   instructions = load_insn_table (argv[6], NULL);
   decode_rules = load_decode_table (argv[5]);
index c919fcce6a4a7eec56136d83ce09b52c2bb47348..073a831d87b3427b87eefc971f43139660fc94b6 100644 (file)
@@ -23,7 +23,8 @@
 
 
 typedef struct _opcode_field opcode_field;
-struct _opcode_field {
+struct _opcode_field
+{
   int word_nr;
   int first;
   int last;
@@ -34,7 +35,8 @@ struct _opcode_field {
 };
 
 typedef struct _opcode_bits opcode_bits;
-struct _opcode_bits {
+struct _opcode_bits
+{
   int value;
   int first;
   int last;
@@ -44,13 +46,15 @@ struct _opcode_bits {
 };
 
 typedef struct _insn_opcodes insn_opcodes;
-struct _insn_opcodes {
+struct _insn_opcodes
+{
   opcode_field *opcode;
   insn_opcodes *next;
 };
 
 typedef struct _insn_list insn_list;
-struct _insn_list {
+struct _insn_list
+{
   /* the instruction */
   insn_entry *insn;
   /* list of non constant bits that have been made constant */
@@ -70,14 +74,15 @@ struct _insn_list {
 typedef struct _gen_list gen_list;
 
 typedef struct _gen_entry gen_entry;
-struct _gen_entry {
+struct _gen_entry
+{
 
   /* as an entry in a table */
   int word_nr;
   int opcode_nr;
   gen_entry *sibling;
   opcode_bits *expanded_bits;
-  gen_entry *parent; /* parent has the opcode* data */
+  gen_entry *parent;           /* parent has the opcode* data */
 
   /* as a table containing entries */
   decode_table *opcode_rule;
@@ -99,7 +104,8 @@ struct _gen_entry {
 };
 
 
-struct _gen_list {
+struct _gen_list
+{
   model_entry *model;
   insn_table *isa;
   gen_entry *table;
@@ -108,7 +114,8 @@ struct _gen_list {
 
 
 typedef struct _gen_table gen_table;
-struct _gen_table {
+struct _gen_table
+{
   /* list of all the instructions */
   insn_table *isa;
   /* list of all the semantic functions */
@@ -121,38 +128,28 @@ struct _gen_table {
 };
 
 
-extern gen_table *make_gen_tables
-(insn_table *isa,
- decode_table *rules);
+extern gen_table *make_gen_tables (insn_table *isa, decode_table *rules);
 
 
-extern void gen_tables_expand_insns
-(gen_table *gen);
+extern void gen_tables_expand_insns (gen_table *gen);
 
-extern void gen_tables_expand_semantics
-(gen_table *gen);
+extern void gen_tables_expand_semantics (gen_table *gen);
 
-extern int gen_entry_depth
-(gen_entry *table);
+extern int gen_entry_depth (gen_entry *table);
 
 
 
 /* Traverse the created data structure */
 
 typedef void gen_entry_handler
-(lf *file,
- gen_entry *entry,
- int depth,
- void *data);
+  (lf *file, gen_entry *entry, int depth, void *data);
 
 extern void gen_entry_traverse_tree
-(lf *file,
- gen_entry *table,
- int depth,
- gen_entry_handler *start,
- gen_entry_handler *leaf,
- gen_entry_handler *end,
- void *data);
+  (lf *file,
+   gen_entry *table,
+   int depth,
+   gen_entry_handler * start,
+   gen_entry_handler * leaf, gen_entry_handler * end, void *data);
 
 
 
@@ -161,70 +158,57 @@ extern void gen_entry_traverse_tree
 
 /* Cache functions: */
 
-extern int print_icache_function_formal
-(lf *file, int nr_prefetched_words);
+extern int print_icache_function_formal (lf *file, int nr_prefetched_words);
 
-extern int print_icache_function_actual
-(lf *file, int nr_prefetched_words);
+extern int print_icache_function_actual (lf *file, int nr_prefetched_words);
 
-extern int print_icache_function_type
-(lf *file);
+extern int print_icache_function_type (lf *file);
 
-extern int print_semantic_function_formal
-(lf *file, int nr_prefetched_words);
+extern int print_semantic_function_formal (lf *file, int nr_prefetched_words);
 
-extern int print_semantic_function_actual
-(lf *file, int nr_prefetched_words);
+extern int print_semantic_function_actual (lf *file, int nr_prefetched_words);
 
-extern int print_semantic_function_type
-(lf *file);
+extern int print_semantic_function_type (lf *file);
 
-extern int print_idecode_function_formal
-(lf *file, int nr_prefetched_words);
+extern int print_idecode_function_formal (lf *file, int nr_prefetched_words);
 
-extern int print_idecode_function_actual
-(lf *file, int nr_prefetched_words);
+extern int print_idecode_function_actual (lf *file, int nr_prefetched_words);
 
-typedef enum {
+typedef enum
+{
   function_name_prefix_semantics,
   function_name_prefix_idecode,
   function_name_prefix_itable,
   function_name_prefix_icache,
   function_name_prefix_engine,
   function_name_prefix_none
-} lf_function_name_prefixes;
+}
+lf_function_name_prefixes;
 
-typedef enum {
+typedef enum
+{
   is_function_declaration = 0,
   is_function_definition = 1,
   is_function_variable,
-} function_decl_type;
+}
+function_decl_type;
 
 extern int print_function_name
-(lf *file,
- const char *basename,
- const char *format_name,
- const char *model_name,
- opcode_bits *expanded_bits,
- lf_function_name_prefixes prefix);
+  (lf *file,
+   const char *basename,
+   const char *format_name,
+   const char *model_name,
+   opcode_bits *expanded_bits, lf_function_name_prefixes prefix);
 
 extern void print_my_defines
-(lf *file,
- const char *basename,
- const char *format_name,
- opcode_bits *expanded_bits);
+  (lf *file,
+   const char *basename, const char *format_name, opcode_bits *expanded_bits);
 
-extern void print_itrace
-(lf *file,
- insn_entry *insn,
- int idecode);
+extern void print_itrace (lf *file, insn_entry * insn, int idecode);
 
-extern void print_sim_engine_abort
-(lf *file,
- const char *message);
+extern void print_sim_engine_abort (lf *file, const char *message);
 
 
 extern void print_include (lf *file, igen_module module);
-extern void print_include_inline  (lf *file, igen_module module);
+extern void print_include_inline (lf *file, igen_module module);
 extern void print_includes (lf *file);
-
index d51684babd9edba5e17e3a7241bb378d2d9bce9c..d5896f2e221fdb77c51dde852d6a2673f773c545 100644 (file)
@@ -55,8 +55,7 @@
 /* Semantic functions */
 
 int
-print_semantic_function_formal (lf *file,
-                               int nr_prefetched_words)
+print_semantic_function_formal (lf *file, int nr_prefetched_words)
 {
   int nr = 0;
   int word_nr;
@@ -74,8 +73,7 @@ print_semantic_function_formal (lf *file,
       for (word_nr = 0; word_nr < nr_prefetched_words; word_nr++)
        {
          nr += lf_printf (file, "%sinstruction_word instruction_%d,\n",
-                          options.module.global.prefix.l,
-                          word_nr);
+                          options.module.global.prefix.l, word_nr);
        }
       nr += lf_printf (file, "%sinstruction_address cia",
                       options.module.global.prefix.l);
@@ -86,8 +84,7 @@ print_semantic_function_formal (lf *file,
       for (word_nr = 0; word_nr < nr_prefetched_words; word_nr++)
        {
          nr += lf_printf (file, "%sinstruction_word instruction_%d,\n",
-                          options.module.global.prefix.l,
-                          word_nr);
+                          options.module.global.prefix.l, word_nr);
        }
       nr += lf_printf (file, "%sinstruction_address cia",
                       options.module.global.prefix.l);
@@ -96,8 +93,7 @@ print_semantic_function_formal (lf *file,
 }
 
 int
-print_semantic_function_actual (lf *file,
-                               int nr_prefetched_words)
+print_semantic_function_actual (lf *file, int nr_prefetched_words)
 {
   int nr = 0;
   int word_nr;
@@ -131,15 +127,14 @@ print_semantic_function_type (lf *file)
 /* Idecode functions */
 
 int
-print_icache_function_formal (lf *file,
-                             int nr_prefetched_words)
+print_icache_function_formal (lf *file, int nr_prefetched_words)
 {
   int nr = 0;
   int word_nr;
   if (options.gen.smp)
-      nr += lf_printf (file, "sim_cpu *cpu,\n");
+    nr += lf_printf (file, "sim_cpu *cpu,\n");
   else
-      nr += lf_printf (file, "SIM_DESC sd,\n");
+    nr += lf_printf (file, "SIM_DESC sd,\n");
   for (word_nr = 0; word_nr < nr_prefetched_words; word_nr++)
     nr += lf_printf (file, " %sinstruction_word instruction_%d,\n",
                     options.module.global.prefix.l, word_nr);
@@ -151,8 +146,7 @@ print_icache_function_formal (lf *file,
 }
 
 int
-print_icache_function_actual (lf *file,
-                             int nr_prefetched_words)
+print_icache_function_actual (lf *file, int nr_prefetched_words)
 {
   int nr = 0;
   int word_nr;
@@ -186,8 +180,7 @@ print_icache_function_type (lf *file)
 /* Function names */
 
 static int
-print_opcode_bits (lf *file,
-                  opcode_bits *bits)
+print_opcode_bits (lf *file, opcode_bits *bits)
 {
   int nr = 0;
   if (bits == NULL)
@@ -196,19 +189,21 @@ print_opcode_bits (lf *file,
   nr += lf_putstr (file, bits->field->val_string);
   if (bits->opcode->is_boolean && bits->value == 0)
     nr += lf_putint (file, bits->opcode->boolean_constant);
-  else if (!bits->opcode->is_boolean) {
-    if (bits->opcode->last < bits->field->last)
-      nr += lf_putint (file, bits->value << (bits->field->last - bits->opcode->last));
-    else
-      nr += lf_putint (file, bits->value);
-  }
+  else if (!bits->opcode->is_boolean)
+    {
+      if (bits->opcode->last < bits->field->last)
+       nr +=
+         lf_putint (file,
+                    bits->value << (bits->field->last - bits->opcode->last));
+      else
+       nr += lf_putint (file, bits->value);
+    }
   nr += print_opcode_bits (file, bits->next);
   return nr;
 }
 
 static int
-print_c_name (lf *file,
-             const char *name)
+print_c_name (lf *file, const char *name)
 {
   int nr = 0;
   const char *pos;
@@ -264,7 +259,7 @@ print_function_name (lf *file,
     default:
       break;
     }
-  
+
   if (model_name != NULL)
     {
       nr += print_c_name (file, model_name);
@@ -273,7 +268,7 @@ print_function_name (lf *file,
 
   /* the function name */
   nr += print_c_name (file, basename);
-  
+
   /* the format name if available */
   if (format_name != NULL)
     {
@@ -291,8 +286,7 @@ print_function_name (lf *file,
 void
 print_my_defines (lf *file,
                  const char *basename,
-                 const char *format_name,
-                 opcode_bits *expanded_bits)
+                 const char *format_name, opcode_bits *expanded_bits)
 {
   /* #define MY_INDEX xxxxx */
   lf_indent_suppress (file);
@@ -301,16 +295,14 @@ print_my_defines (lf *file,
   lf_printf (file, "#define MY_INDEX ");
   print_function_name (file,
                       basename, format_name, NULL,
-                      NULL,
-                      function_name_prefix_itable);
+                      NULL, function_name_prefix_itable);
   lf_printf (file, "\n");
   /* #define MY_PREFIX xxxxxx */
   lf_indent_suppress (file);
   lf_printf (file, "#undef ");
   print_function_name (file,
                       basename, format_name, NULL,
-                      expanded_bits,
-                      function_name_prefix_none);
+                      expanded_bits, function_name_prefix_none);
   lf_printf (file, "\n");
   lf_indent_suppress (file);
   lf_printf (file, "#undef MY_PREFIX\n");
@@ -318,8 +310,7 @@ print_my_defines (lf *file,
   lf_printf (file, "#define MY_PREFIX ");
   print_function_name (file,
                       basename, format_name, NULL,
-                      expanded_bits,
-                      function_name_prefix_none);
+                      expanded_bits, function_name_prefix_none);
   lf_printf (file, "\n");
   /* #define MY_NAME xxxxxx */
   lf_indent_suppress (file);
@@ -329,8 +320,7 @@ print_my_defines (lf *file,
   lf_printf (file, "#define MY_NAME \"");
   print_function_name (file,
                       basename, format_name, NULL,
-                      expanded_bits,
-                      function_name_prefix_none);
+                      expanded_bits, function_name_prefix_none);
   lf_printf (file, "\"\n");
 }
 
@@ -340,18 +330,20 @@ print_itrace_prefix (lf *file)
 {
   const char *prefix = "trace_prefix (";
   int indent = strlen (prefix);
-  lf_printf (file, "%sSD, CPU, cia, CIA, TRACE_LINENUM_P (CPU), \\\n", prefix);
+  lf_printf (file, "%sSD, CPU, cia, CIA, TRACE_LINENUM_P (CPU), \\\n",
+            prefix);
   lf_indent (file, +indent);
-  lf_printf (file, "%sitable[MY_INDEX].file, \\\n", options.module.itable.prefix.l);
-  lf_printf (file, "%sitable[MY_INDEX].line_nr, \\\n", options.module.itable.prefix.l);
+  lf_printf (file, "%sitable[MY_INDEX].file, \\\n",
+            options.module.itable.prefix.l);
+  lf_printf (file, "%sitable[MY_INDEX].line_nr, \\\n",
+            options.module.itable.prefix.l);
   lf_printf (file, "\"");
   return indent;
 }
 
 
 static void
-print_itrace_format (lf *file,
-                    insn_mnemonic_entry *assembler)
+print_itrace_format (lf *file, insn_mnemonic_entry *assembler)
 {
   /* pass=1 is fmt string; pass=2 is arguments */
   int pass;
@@ -359,7 +351,7 @@ print_itrace_format (lf *file,
   for (pass = 1; pass <= 2; pass++)
     {
       const char *chp = assembler->format;
-      chp++; /* skip the leading quote */
+      chp++;                   /* skip the leading quote */
       /* write out the format/args */
       while (*chp != '\0')
        {
@@ -399,7 +391,8 @@ print_itrace_format (lf *file,
                }
              strlen_param = chp - param;
              if (chp[0] != '>')
-               error (assembler->line, "Missing closing `>' in assembler string\n");
+               error (assembler->line,
+                      "Missing closing `>' in assembler string\n");
              chp++;
              /* now process it */
              if (pass == 2)
@@ -430,7 +423,8 @@ print_itrace_format (lf *file,
                    lf_printf (file, "%%s");
                  else
                    {
-                     lf_printf (file, "%sstr_", options.module.global.prefix.l);
+                     lf_printf (file, "%sstr_",
+                                options.module.global.prefix.l);
                      lf_write (file, func, strlen_func);
                      lf_printf (file, " (SD_, ");
                      lf_write (file, param, strlen_param);
@@ -449,7 +443,7 @@ print_itrace_format (lf *file,
                    }
                }
              else if (strncmp (fmt, "%#lx<", 5) == 0)
-               /* simple hex with 0x prefix*/
+               /* simple hex with 0x prefix */
                {
                  if (pass == 1)
                    lf_printf (file, "%%#lx");
@@ -486,9 +480,7 @@ print_itrace_format (lf *file,
 
 
 void
-print_itrace (lf *file,
-             insn_entry *insn,
-             int idecode)
+print_itrace (lf *file, insn_entry * insn, int idecode)
 {
   /* NB: Here we escape each EOLN. This is so that the the compiler
      treats a trace function call as a single line.  Consequently any
@@ -513,8 +505,7 @@ print_itrace (lf *file,
              {
                int indent;
                lf_printf (file, "%sif (%s)\n",
-                          is_first ? "" : "else ",
-                          assembler->condition);
+                          is_first ? "" : "else ", assembler->condition);
                lf_indent (file, +2);
                lf_print__line_ref (file, assembler->line);
                indent = print_itrace_prefix (file);
@@ -523,7 +514,8 @@ print_itrace (lf *file,
                lf_indent (file, -indent);
                lf_indent (file, -2);
                if (assembler->next == NULL)
-                 error (assembler->line, "Missing final unconditional assembler\n");
+                 error (assembler->line,
+                        "Missing final unconditional assembler\n");
              }
            else
              {
@@ -541,7 +533,8 @@ print_itrace (lf *file,
                if (!is_first)
                  lf_indent (file, -2);
                if (assembler->next != NULL)
-                 error (assembler->line, "Unconditional assembler is not last\n");
+                 error (assembler->line,
+                        "Unconditional assembler is not last\n");
              }
            is_first = 0;
            assembler = assembler->next;
@@ -562,7 +555,9 @@ print_itrace (lf *file,
       }
     lf_printf (file, "/* trace the instruction execution if enabled */\n");
     lf_printf (file, "if (TRACE_%s_P (CPU))\n", phase);
-    lf_printf (file, "  trace_generic (SD, CPU, TRACE_%s_IDX, \" %%s\", itable[MY_INDEX].name);\n", phase);
+    lf_printf (file,
+              "  trace_generic (SD, CPU, TRACE_%s_IDX, \" %%s\", itable[MY_INDEX].name);\n",
+              phase);
   }
   lf_indent (file, -4);
   lf_printf (file, "  }\n");
@@ -572,8 +567,7 @@ print_itrace (lf *file,
 
 
 void
-print_sim_engine_abort (lf *file,
-                       const char *message)
+print_sim_engine_abort (lf *file, const char *message)
 {
   lf_printf (file, "sim_engine_abort (SD, CPU, cia, ");
   lf_printf (file, "\"%s\"", message);
@@ -582,15 +576,13 @@ print_sim_engine_abort (lf *file,
 
 
 void
-print_include (lf *file,
-              igen_module module)
+print_include (lf *file, igen_module module)
 {
   lf_printf (file, "#include \"%s%s.h\"\n", module.prefix.l, module.suffix.l);
 }
 
 void
-print_include_inline (lf *file,
-                     igen_module module)
+print_include_inline (lf *file, igen_module module)
 {
   lf_printf (file, "#if C_REVEALS_MODULE_P (%s_INLINE)\n", module.suffix.u);
   lf_printf (file, "#include \"%s%s.c\"\n", module.prefix.l, module.suffix.l);
@@ -616,9 +608,7 @@ print_includes (lf *file)
 
 
 static void
-gen_semantics_h (lf *file,
-                insn_list *semantics,
-                int max_nr_words)
+gen_semantics_h (lf *file, insn_list *semantics, int max_nr_words)
 {
   int word_nr;
   insn_list *semantic;
@@ -626,8 +616,7 @@ gen_semantics_h (lf *file,
     {
       lf_printf (file, "typedef ");
       print_semantic_function_type (file);
-      lf_printf (file, " %sidecode_semantic",
-                options.module.global.prefix.l);
+      lf_printf (file, " %sidecode_semantic", options.module.global.prefix.l);
       if (word_nr >= 0)
        lf_printf (file, "_%d", word_nr);
       lf_printf (file, "\n(");
@@ -660,9 +649,7 @@ gen_semantics_h (lf *file,
 
 
 static void
-gen_semantics_c (lf *file,
-                insn_list *semantics,
-                cache_entry *cache_rules)
+gen_semantics_c (lf *file, insn_list *semantics, cache_entry *cache_rules)
 {
   if (options.gen.code == generate_calls)
     {
@@ -697,23 +684,20 @@ gen_semantics_c (lf *file,
 static void
 gen_icache_h (lf *file,
              insn_list *semantic,
-             function_entry *functions,
-             int max_nr_words)
+             function_entry * functions, int max_nr_words)
 {
   int word_nr;
   for (word_nr = 0; word_nr <= max_nr_words; word_nr++)
     {
       lf_printf (file, "typedef ");
-      print_icache_function_type(file);
+      print_icache_function_type (file);
       lf_printf (file, " %sidecode_icache_%d\n(",
-                options.module.global.prefix.l,
-                word_nr);
-      print_icache_function_formal(file, word_nr);
+                options.module.global.prefix.l, word_nr);
+      print_icache_function_formal (file, word_nr);
       lf_printf (file, ");\n");
       lf_printf (file, "\n");
     }
-  if (options.gen.code == generate_calls
-      && options.gen.icache)
+  if (options.gen.code == generate_calls && options.gen.icache)
     {
       function_entry_traverse (file, functions,
                               print_icache_internal_function_declaration,
@@ -737,13 +721,11 @@ gen_icache_h (lf *file,
 static void
 gen_icache_c (lf *file,
              insn_list *semantic,
-             function_entry *functions,
-             cache_entry *cache_rules)
+             function_entry * functions, cache_entry *cache_rules)
 {
   /* output `internal' invalid/floating-point unavailable functions
      where needed */
-  if (options.gen.code == generate_calls
-      && options.gen.icache)
+  if (options.gen.code == generate_calls && options.gen.icache)
     {
       lf_printf (file, "\n");
       lf_printf (file, "#include \"cpu.h\"\n");
@@ -779,9 +761,7 @@ gen_icache_c (lf *file,
 
 static void
 gen_idecode_h (lf *file,
-              gen_table *gen,
-              insn_table *insns,
-              cache_entry *cache_rules)
+              gen_table *gen, insn_table *insns, cache_entry *cache_rules)
 {
   lf_printf (file, "typedef unsigned%d %sinstruction_word;\n",
             options.insn_bit_size, options.module.global.prefix.l);
@@ -791,13 +771,14 @@ gen_idecode_h (lf *file,
                 options.module.global.prefix.l);
       lf_printf (file, "  address_word ip; /* instruction pointer */\n");
       lf_printf (file, "  address_word dp; /* delayed-slot pointer */\n");
-      lf_printf (file, "} %sinstruction_address;\n", options.module.global.prefix.l);
+      lf_printf (file, "} %sinstruction_address;\n",
+                options.module.global.prefix.l);
     }
   else
     {
       lf_printf (file, "typedef address_word %sinstruction_address;\n",
                 options.module.global.prefix.l);
-      
+
     }
   if (options.gen.nia == nia_is_invalid
       && strlen (options.module.global.prefix.u) > 0)
@@ -824,14 +805,14 @@ gen_idecode_h (lf *file,
                                                ? entry->model->name
                                                : NULL),
                                               is_function_declaration,
-                                              1/*ALWAYS ONE WORD*/);
+                                              1 /*ALWAYS ONE WORD */ );
        }
       if (options.gen.multi_sim)
        {
          print_idecode_issue_function_header (file,
                                               NULL,
                                               is_function_variable,
-                                              1/*ALWAYS ONE WORD*/);
+                                              1 /*ALWAYS ONE WORD */ );
        }
     }
 }
@@ -839,9 +820,7 @@ gen_idecode_h (lf *file,
 
 static void
 gen_idecode_c (lf *file,
-              gen_table *gen,
-              insn_table *isa,
-              cache_entry *cache_rules)
+              gen_table *gen, insn_table *isa, cache_entry *cache_rules)
 {
   /* the intro */
   print_includes (file);
@@ -850,7 +829,7 @@ gen_idecode_c (lf *file,
 
   print_idecode_globals (file);
   lf_printf (file, "\n");
-  
+
   switch (options.gen.code)
     {
     case generate_calls:
@@ -859,7 +838,7 @@ gen_idecode_c (lf *file,
        for (entry = gen->tables; entry != NULL; entry = entry->next)
          {
            print_idecode_lookups (file, entry->table, cache_rules);
-       
+
            /* output the main idecode routine */
            if (!options.gen.icache)
              {
@@ -867,8 +846,8 @@ gen_idecode_c (lf *file,
                                                     (options.gen.multi_sim
                                                      ? entry->model->name
                                                      : NULL),
-                                                    1/*is definition*/,
-                                                    1/*ALWAYS ONE WORD*/);
+                                                    1 /*is definition */ ,
+                                                    1 /*ALWAYS ONE WORD */ );
                lf_printf (file, "{\n");
                lf_indent (file, +2);
                lf_printf (file, "%sinstruction_address nia;\n",
@@ -894,8 +873,7 @@ gen_idecode_c (lf *file,
 
 
 static void
-gen_run_c (lf *file,
-          gen_table *gen)
+gen_run_c (lf *file, gen_table *gen)
 {
   gen_list *entry;
   lf_printf (file, "#include \"sim-main.h\"\n");
@@ -906,12 +884,13 @@ gen_run_c (lf *file,
 
   if (options.gen.multi_sim)
     {
-      print_idecode_issue_function_header (file, NULL, is_function_variable, 1);
+      print_idecode_issue_function_header (file, NULL, is_function_variable,
+                                          1);
       lf_printf (file, "\n");
       print_engine_run_function_header (file, NULL, is_function_variable);
       lf_printf (file, "\n");
     }
-  
+
   lf_printf (file, "void\n");
   lf_printf (file, "sim_engine_run (SIM_DESC sd,\n");
   lf_printf (file, "                int next_cpu_nr,\n");
@@ -933,36 +912,27 @@ gen_run_c (lf *file,
        {
          if (options.gen.default_model != NULL
              && (strcmp (entry->model->name, options.gen.default_model) == 0
-                 || strcmp (entry->model->full_name, options.gen.default_model) == 0))
+                 || strcmp (entry->model->full_name,
+                            options.gen.default_model) == 0))
            lf_printf (file, "default:\n");
          lf_printf (file, "case bfd_mach_%s:\n", entry->model->full_name);
          lf_indent (file, +2);
-         print_function_name (file,
-                              "issue",
-                              NULL, /* format name */
-                              NULL, /* NO processor */
-                              NULL, /* expanded bits */
+         print_function_name (file, "issue", NULL,     /* format name */
+                              NULL,    /* NO processor */
+                              NULL,    /* expanded bits */
                               function_name_prefix_idecode);
          lf_printf (file, " = ");
-         print_function_name (file,
-                              "issue",
-                              NULL, /* format name */
-                              entry->model->name,
-                              NULL, /* expanded bits */
+         print_function_name (file, "issue", NULL,     /* format name */
+                              entry->model->name, NULL,        /* expanded bits */
                               function_name_prefix_idecode);
          lf_printf (file, ";\n");
-         print_function_name (file,
-                              "run",
-                              NULL, /* format name */
-                              NULL, /* NO processor */
-                              NULL, /* expanded bits */
+         print_function_name (file, "run", NULL,       /* format name */
+                              NULL,    /* NO processor */
+                              NULL,    /* expanded bits */
                               function_name_prefix_engine);
          lf_printf (file, " = ");
-         print_function_name (file,
-                              "run",
-                              NULL, /* format name */
-                              entry->model->name,
-                              NULL, /* expanded bits */
+         print_function_name (file, "run", NULL,       /* format name */
+                              entry->model->name, NULL,        /* expanded bits */
                               function_name_prefix_engine);
          lf_printf (file, ";\n");
          lf_printf (file, "break;\n");
@@ -973,18 +943,17 @@ gen_run_c (lf *file,
          lf_printf (file, "default:\n");
          lf_indent (file, +2);
          lf_printf (file, "sim_engine_abort (sd, NULL, NULL_CIA,\n");
-         lf_printf (file, "                  \"sim_engine_run - unknown machine\");\n");
+         lf_printf (file,
+                    "                  \"sim_engine_run - unknown machine\");\n");
          lf_printf (file, "break;\n");
          lf_indent (file, -2);
        }
       lf_indent (file, -2);
       lf_printf (file, "  }\n");
     }
-  print_function_name (file,
-                      "run",
-                      NULL, /* format name */
-                      NULL, /* NO processor */
-                      NULL, /* expanded bits */
+  print_function_name (file, "run", NULL,      /* format name */
+                      NULL,    /* NO processor */
+                      NULL,    /* expanded bits */
                       function_name_prefix_engine);
   lf_printf (file, " (sd, next_cpu_nr, nr_cpus, siggnal);\n");
   lf_indent (file, -2);
@@ -994,8 +963,7 @@ gen_run_c (lf *file,
 /****************************************************************/
 
 static gen_table *
-do_gen (insn_table *isa,
-       decode_table *decode_rules)
+do_gen (insn_table *isa, decode_table *decode_rules)
 {
   gen_table *gen;
   if (decode_rules == NULL)
@@ -1015,9 +983,7 @@ do_gen (insn_table *isa,
 igen_options options;
 
 int
-main (int argc,
-      char **argv,
-      char **envp)
+main (int argc, char **argv, char **envp)
 {
   cache_entry *cache_rules = NULL;
   lf_file_references file_references = lf_include_references;
@@ -1027,7 +993,8 @@ main (int argc,
   char *real_file_name = NULL;
   int is_header = 0;
   int ch;
-  lf *standard_out = lf_open ("-", "stdout", lf_omit_references, lf_is_text, "igen");
+  lf *standard_out =
+    lf_open ("-", "stdout", lf_omit_references, lf_is_text, "igen");
 
   INIT_OPTIONS ();
 
@@ -1041,95 +1008,140 @@ main (int argc,
       printf ("\n");
       printf ("  -B <bit-size>\n");
       printf ("\t Set the number of bits in an instruction (deprecated).\n");
-      printf ("\t This option can now be set directly in the instruction table.\n");
+      printf
+       ("\t This option can now be set directly in the instruction table.\n");
       printf ("\n");
       printf ("  -D <data-structure>\n");
-      printf ("\t Dump the specified data structure to stdout. Valid structures include:\n");
-      printf ("\t processor-names - list the names of all the processors (models)\n");
+      printf
+       ("\t Dump the specified data structure to stdout. Valid structures include:\n");
+      printf
+       ("\t processor-names - list the names of all the processors (models)\n");
       printf ("\n");
       printf ("  -F <filter-list>\n");
-      printf ("\t Filter out any instructions with a non-empty flags field that contains\n");
+      printf
+       ("\t Filter out any instructions with a non-empty flags field that contains\n");
       printf ("\t a flag not listed in the <filter-list>.\n");
       printf ("\n");
       printf ("  -H <high-bit>\n");
-      printf ("\t Set the number of the high (most significant) instruction bit (deprecated).\n");
-      printf ("\t This option can now be set directly in the instruction table.\n");
+      printf
+       ("\t Set the number of the high (most significant) instruction bit (deprecated).\n");
+      printf
+       ("\t This option can now be set directly in the instruction table.\n");
       printf ("\n");
       printf ("  -I <directory>\n");
-      printf ("\t Add <directory> to the list of directories searched when opening a file\n");
+      printf
+       ("\t Add <directory> to the list of directories searched when opening a file\n");
       printf ("\n");
       printf ("  -M <model-list>\n");
-      printf ("\t Filter out any instructions that do not support at least one of the listed\n");
-      printf ("\t models (An instructions with no model information is considered to support\n");
+      printf
+       ("\t Filter out any instructions that do not support at least one of the listed\n");
+      printf
+       ("\t models (An instructions with no model information is considered to support\n");
       printf ("\t all models.).\n");
       printf ("\n");
       printf ("  -N <nr-cpus>\n");
       printf ("\t Generate a simulator supporting <nr-cpus>\n");
-      printf ("\t Specify `-N 0' to disable generation of the SMP. Specifying `-N 1' will\n");
-      printf ("\t still generate an SMP enabled simulator but will only support one CPU.\n");
+      printf
+       ("\t Specify `-N 0' to disable generation of the SMP. Specifying `-N 1' will\n");
+      printf
+       ("\t still generate an SMP enabled simulator but will only support one CPU.\n");
       printf ("\n");
       printf ("  -T <mechanism>\n");
-      printf ("\t Override the decode mechanism specified by the decode rules\n");
+      printf
+       ("\t Override the decode mechanism specified by the decode rules\n");
       printf ("\n");
       printf ("  -P <prefix>\n");
-      printf ("\t Prepend global names (except itable) with the string <prefix>.\n");
-      printf ("\t Specify -P <module>=<prefix> to set a specific <module>'s prefix.\n");
+      printf
+       ("\t Prepend global names (except itable) with the string <prefix>.\n");
+      printf
+       ("\t Specify -P <module>=<prefix> to set a specific <module>'s prefix.\n");
       printf ("\n");
       printf ("  -S <suffix>\n");
-      printf ("\t Replace a global name (suffix) (except itable) with the string <suffix>.\n");
-      printf ("\t Specify -S <module>=<suffix> to change a specific <module>'s name (suffix).\n");
+      printf
+       ("\t Replace a global name (suffix) (except itable) with the string <suffix>.\n");
+      printf
+       ("\t Specify -S <module>=<suffix> to change a specific <module>'s name (suffix).\n");
       printf ("\n");
       printf ("  -Werror\n");
       printf ("\t Make warnings errors\n");
       printf ("  -Wnodiscard\n");
-      printf ("\t Suppress warnings about discarded functions and instructions\n");
+      printf
+       ("\t Suppress warnings about discarded functions and instructions\n");
       printf ("  -Wnowidth\n");
-      printf ("\t Suppress warnings about instructions with invalid widths\n");
+      printf
+       ("\t Suppress warnings about instructions with invalid widths\n");
       printf ("  -Wnounimplemented\n");
       printf ("\t Suppress warnings about unimplemented instructions\n");
       printf ("\n");
       printf ("  -G [!]<gen-option>\n");
       printf ("\t Any of the following options:\n");
       printf ("\n");
-      printf ("\t decode-duplicate       - Override the decode rules, forcing the duplication of\n");
+      printf
+       ("\t decode-duplicate       - Override the decode rules, forcing the duplication of\n");
       printf ("\t                          semantic functions\n");
-      printf ("\t decode-combine         - Combine any duplicated entries within a table\n");
-      printf ("\t decode-zero-reserved   - Override the decode rules, forcing reserved bits to be\n");
+      printf
+       ("\t decode-combine         - Combine any duplicated entries within a table\n");
+      printf
+       ("\t decode-zero-reserved   - Override the decode rules, forcing reserved bits to be\n");
       printf ("\t                          treated as zero.\n");
-      printf ("\t decode-switch-is-goto  - Overfide the padded-switch code type as a goto-switch\n");
+      printf
+       ("\t decode-switch-is-goto  - Overfide the padded-switch code type as a goto-switch\n");
       printf ("\n");
-      printf ("\t gen-conditional-issue  - conditionally issue each instruction\n");
-      printf ("\t gen-delayed-branch     - need both cia and nia passed around\n");
-      printf ("\t gen-direct-access      - use #defines to directly access values\n");
-      printf ("\t gen-zero-r<N>          - arch assumes GPR(<N>) == 0, keep it that way\n");
-      printf ("\t gen-icache[=<N>        - generate an instruction cracking cache of size <N>\n");
-      printf ("\t                          Default size is %d\n", options.gen.icache_size);
-      printf ("\t gen-insn-in-icache     - save original instruction when cracking\n");
-      printf ("\t gen-multi-sim[=MODEL]  - generate multiple simulators - one per model\n");
-      printf ("\t                          If specified MODEL is made the default architecture.\n");
-      printf ("\t                          By default, a single simulator that will\n");
-      printf ("\t                          execute any instruction is generated\n");
-      printf ("\t gen-multi-word         - generate code allowing for multi-word insns\n");
-      printf ("\t gen-semantic-icache    - include semantic code in cracking functions\n");
-      printf ("\t gen-slot-verification  - perform slot verification as part of decode\n");
+      printf
+       ("\t gen-conditional-issue  - conditionally issue each instruction\n");
+      printf
+       ("\t gen-delayed-branch     - need both cia and nia passed around\n");
+      printf
+       ("\t gen-direct-access      - use #defines to directly access values\n");
+      printf
+       ("\t gen-zero-r<N>          - arch assumes GPR(<N>) == 0, keep it that way\n");
+      printf
+       ("\t gen-icache[=<N>        - generate an instruction cracking cache of size <N>\n");
+      printf ("\t                          Default size is %d\n",
+             options.gen.icache_size);
+      printf
+       ("\t gen-insn-in-icache     - save original instruction when cracking\n");
+      printf
+       ("\t gen-multi-sim[=MODEL]  - generate multiple simulators - one per model\n");
+      printf
+       ("\t                          If specified MODEL is made the default architecture.\n");
+      printf
+       ("\t                          By default, a single simulator that will\n");
+      printf
+       ("\t                          execute any instruction is generated\n");
+      printf
+       ("\t gen-multi-word         - generate code allowing for multi-word insns\n");
+      printf
+       ("\t gen-semantic-icache    - include semantic code in cracking functions\n");
+      printf
+       ("\t gen-slot-verification  - perform slot verification as part of decode\n");
       printf ("\t gen-nia-invalid        - NIA defaults to nia_invalid\n");
       printf ("\t gen-nia-void           - do not compute/return NIA\n");
       printf ("\n");
-      printf ("\t trace-combine          - report combined entries a rule application\n");
-      printf ("\t trace-entries          - report entries after a rules application\n");
+      printf
+       ("\t trace-combine          - report combined entries a rule application\n");
+      printf
+       ("\t trace-entries          - report entries after a rules application\n");
       printf ("\t trace-rule-rejection   - report each rule as rejected\n");
       printf ("\t trace-rule-selection   - report each rule as selected\n");
-      printf ("\t trace-insn-insertion   - report each instruction as it is inserted into a decode table\n");
-      printf ("\t trace-rule-expansion   - report each instruction as it is expanded (before insertion into a decode table)\n");
+      printf
+       ("\t trace-insn-insertion   - report each instruction as it is inserted into a decode table\n");
+      printf
+       ("\t trace-rule-expansion   - report each instruction as it is expanded (before insertion into a decode table)\n");
       printf ("\t trace-all              - enable all trace options\n");
       printf ("\n");
-      printf ("\t field-widths           - instruction formats specify widths (deprecated)\n");
-      printf ("\t                          By default, an instruction format specifies bit\n");
+      printf
+       ("\t field-widths           - instruction formats specify widths (deprecated)\n");
+      printf
+       ("\t                          By default, an instruction format specifies bit\n");
       printf ("\t                          positions\n");
-      printf ("\t                          This option can now be set directly in the\n");
+      printf
+       ("\t                          This option can now be set directly in the\n");
       printf ("\t                          instruction table\n");
-      printf ("\t jumps                  - use jumps instead of function calls\n");
-      printf ("\t omit-line-numbers      - do not include line number information in the output\n");
+      printf
+       ("\t jumps                  - use jumps instead of function calls\n");
+      printf
+       ("\t omit-line-numbers      - do not include line number information in the output\n");
       printf ("\n");
       printf ("Input options:\n");
       printf ("\n");
@@ -1140,8 +1152,10 @@ main (int argc,
       printf ("Output options:\n");
       printf ("\n");
       printf ("  -x                    Perform expansion (required)\n");
-      printf ("  -n <real-name>        Specify the real name of the next output file\n"); 
-      printf ("  -h                   Generate the header (.h) file rather than the body (.c)\n");
+      printf
+       ("  -n <real-name>        Specify the real name of the next output file\n");
+      printf
+       ("  -h                 Generate the header (.h) file rather than the body (.c)\n");
       printf ("  -c <output-file>      output icache\n");
       printf ("  -d <output-file>      output idecode\n");
       printf ("  -e <output-file>      output engine\n");
@@ -1151,19 +1165,19 @@ main (int argc,
       printf ("  -s <output-file>      output schematic\n");
       printf ("  -t <output-file>      output itable\n");
     }
-  
-  while ((ch = getopt(argc, argv,
-                     "B:D:F:G:H:I:M:N:P:T:W:o:k:i:n:hc:d:e:m:r:s:t:f:x"))
+
+  while ((ch = getopt (argc, argv,
+                      "B:D:F:G:H:I:M:N:P:T:W:o:k:i:n:hc:d:e:m:r:s:t:f:x"))
         != -1)
     {
       fprintf (stderr, "  -%c ", ch);
       if (optarg)
        fprintf (stderr, "%s ", optarg);
       fprintf (stderr, "\\\n");
-      
-      switch(ch)
+
+      switch (ch)
        {
-         
+
        case 'M':
          filter_parse (&options.model_filter, optarg);
          break;
@@ -1184,7 +1198,7 @@ main (int argc,
        case 'F':
          filter_parse (&options.flags_filter, optarg);
          break;
-         
+
        case 'I':
          {
            table_include **dir = &options.include;
@@ -1194,7 +1208,7 @@ main (int argc,
            (*dir)->dir = strdup (optarg);
          }
          break;
-         
+
        case 'B':
          options.insn_bit_size = a2i (optarg);
          if (options.insn_bit_size <= 0
@@ -1209,7 +1223,7 @@ main (int argc,
              error (NULL, "Conflict betweem hi-bit-nr and insn-bit-size\n");
            }
          break;
-         
+
        case 'H':
          options.hi_bit_nr = a2i (optarg);
          if (options.hi_bit_nr != options.insn_bit_size - 1
@@ -1218,11 +1232,11 @@ main (int argc,
              error (NULL, "Conflict between hi-bit-nr and insn-bit-size\n");
            }
          break;
-         
+
        case 'N':
          options.gen.smp = a2i (optarg);
          break;
-         
+
        case 'P':
        case 'S':
          {
@@ -1237,7 +1251,7 @@ main (int argc,
              }
            else
              {
-               chp = chp + 1; /* skip `=' */
+               chp = chp + 1;  /* skip `=' */
                names = NULL;
                if (strncmp (optarg, "global=", chp - optarg) == 0)
                  {
@@ -1281,23 +1295,25 @@ main (int argc,
                name = &names->suffix;
                break;
              default:
-               abort (); /* Bad switch.  */
+               abort ();       /* Bad switch.  */
              }
            name->u = strdup (chp);
            name->l = strdup (chp);
            chp = name->u;
-           while (*chp) {
-             if (islower(*chp))
-               *chp = toupper(*chp);
-             chp++;
-           }
+           while (*chp)
+             {
+               if (islower (*chp))
+                 *chp = toupper (*chp);
+               chp++;
+             }
            if (name == &options.module.global.prefix)
              {
                options.module.engine.prefix = options.module.global.prefix;
                options.module.icache.prefix = options.module.global.prefix;
                options.module.idecode.prefix = options.module.global.prefix;
                /* options.module.itable.prefix = options.module.global.prefix; */
-               options.module.semantics.prefix = options.module.global.prefix;
+               options.module.semantics.prefix =
+                 options.module.global.prefix;
                options.module.support.prefix = options.module.global.prefix;
              }
            if (name == &options.module.global.suffix)
@@ -1306,12 +1322,13 @@ main (int argc,
                options.module.icache.suffix = options.module.global.suffix;
                options.module.idecode.suffix = options.module.global.suffix;
                /* options.module.itable.suffix = options.module.global.suffix; */
-               options.module.semantics.suffix = options.module.global.suffix;
+               options.module.semantics.suffix =
+                 options.module.global.suffix;
                options.module.support.suffix = options.module.global.suffix;
              }
            break;
          }
-       
+
        case 'W':
          {
            if (strcmp (optarg, "error") == 0)
@@ -1365,7 +1382,7 @@ main (int argc,
              {
                options.decode.zero_reserved = enable_p;
              }
-           
+
            else if (strcmp (argp, "gen-conditional-issue") == 0)
              {
                options.gen.conditional_issue = enable_p;
@@ -1373,7 +1390,8 @@ main (int argc,
            else if (strcmp (argp, "conditional-issue") == 0)
              {
                options.gen.conditional_issue = enable_p;
-               options.warning (NULL, "Option conditional-issue replaced by gen-conditional-issue\n");
+               options.warning (NULL,
+                                "Option conditional-issue replaced by gen-conditional-issue\n");
              }
            else if (strcmp (argp, "gen-delayed-branch") == 0)
              {
@@ -1382,7 +1400,8 @@ main (int argc,
            else if (strcmp (argp, "delayed-branch") == 0)
              {
                options.gen.delayed_branch = enable_p;
-               options.warning (NULL, "Option delayed-branch replaced by gen-delayed-branch\n");
+               options.warning (NULL,
+                                "Option delayed-branch replaced by gen-delayed-branch\n");
              }
            else if (strcmp (argp, "gen-direct-access") == 0)
              {
@@ -1391,7 +1410,8 @@ main (int argc,
            else if (strcmp (argp, "direct-access") == 0)
              {
                options.gen.direct_access = enable_p;
-               options.warning (NULL, "Option direct-access replaced by gen-direct-access\n");
+               options.warning (NULL,
+                                "Option direct-access replaced by gen-direct-access\n");
              }
            else if (strncmp (argp, "gen-zero-r", strlen ("gen-zero-r")) == 0)
              {
@@ -1402,28 +1422,32 @@ main (int argc,
              {
                options.gen.zero_reg = enable_p;
                options.gen.zero_reg_nr = atoi (argp + strlen ("zero-r"));
-               options.warning (NULL, "Option zero-r<N> replaced by gen-zero-r<N>\n");
+               options.warning (NULL,
+                                "Option zero-r<N> replaced by gen-zero-r<N>\n");
              }
            else if (strncmp (argp, "gen-icache", strlen ("gen-icache")) == 0)
              {
                switch (argp[strlen ("gen-icache")])
                  {
                  case '=':
-                   options.gen.icache_size = atoi (argp + strlen ("gen-icache") + 1);
+                   options.gen.icache_size =
+                     atoi (argp + strlen ("gen-icache") + 1);
                    options.gen.icache = enable_p;
                    break;
                  case '\0':
                    options.gen.icache = enable_p;
                    break;
                  default:
-                   error (NULL, "Expecting -Ggen-icache or -Ggen-icache=<N>\n");
+                   error (NULL,
+                          "Expecting -Ggen-icache or -Ggen-icache=<N>\n");
                  }
              }
            else if (strcmp (argp, "gen-insn-in-icache") == 0)
              {
                options.gen.insn_in_icache = enable_p;
              }
-           else if (strncmp (argp, "gen-multi-sim", strlen ("gen-multi-sim")) == 0)
+           else if (strncmp (argp, "gen-multi-sim", strlen ("gen-multi-sim"))
+                    == 0)
              {
                char *arg = &argp[strlen ("gen-multi-sim")];
                switch (arg[0])
@@ -1431,15 +1455,18 @@ main (int argc,
                  case '=':
                    options.gen.multi_sim = enable_p;
                    options.gen.default_model = arg + 1;
-                   if (! filter_is_member (options.model_filter, options.gen.default_model))
-                     error (NULL, "multi-sim model %s unknown\n", options.gen.default_model);
+                   if (!filter_is_member
+                       (options.model_filter, options.gen.default_model))
+                     error (NULL, "multi-sim model %s unknown\n",
+                            options.gen.default_model);
                    break;
                  case '\0':
                    options.gen.multi_sim = enable_p;
                    options.gen.default_model = NULL;
                    break;
                  default:
-                   error (NULL, "Expecting -Ggen-multi-sim or -Ggen-multi-sim=<MODEL>\n");
+                   error (NULL,
+                          "Expecting -Ggen-multi-sim or -Ggen-multi-sim=<MODEL>\n");
                    break;
                  }
              }
@@ -1458,7 +1485,8 @@ main (int argc,
            else if (strcmp (argp, "verify-slot") == 0)
              {
                options.gen.slot_verification = enable_p;
-               options.warning (NULL, "Option verify-slot replaced by gen-slot-verification\n");
+               options.warning (NULL,
+                                "Option verify-slot replaced by gen-slot-verification\n");
              }
            else if (strcmp (argp, "gen-nia-invalid") == 0)
              {
@@ -1467,7 +1495,8 @@ main (int argc,
            else if (strcmp (argp, "default-nia-minus-one") == 0)
              {
                options.gen.nia = nia_is_invalid;
-               options.warning (NULL, "Option default-nia-minus-one replaced by gen-nia-invalid\n");
+               options.warning (NULL,
+                                "Option default-nia-minus-one replaced by gen-nia-invalid\n");
              }
            else if (strcmp (argp, "gen-nia-void") == 0)
              {
@@ -1519,7 +1548,7 @@ main (int argc,
              }
            break;
          }
-       
+
        case 'i':
          isa = load_insn_table (optarg, cache_rules);
          if (isa->illegal_insn == NULL)
@@ -1541,13 +1570,13 @@ main (int argc,
          break;
 
        case 'n':
-         real_file_name = strdup(optarg);
+         real_file_name = strdup (optarg);
          break;
 
        case 'h':
          is_header = 1;
          break;
-         
+
        case 'c':
        case 'd':
        case 'e':
@@ -1557,15 +1586,16 @@ main (int argc,
        case 's':
        case 't':
          {
-           lf *file = lf_open(optarg, real_file_name, file_references,
-                              (is_header ? lf_is_h : lf_is_c),
-                              argv[0]);
+           lf *file = lf_open (optarg, real_file_name, file_references,
+                               (is_header ? lf_is_h : lf_is_c),
+                               argv[0]);
            if (gen == NULL && ch != 't' && ch != 'm' && ch != 'f')
              {
-               options.warning (NULL, "Explicitly generate tables with -x option\n");
+               options.warning (NULL,
+                                "Explicitly generate tables with -x option\n");
                gen = do_gen (isa, decode_rules);
              }
-           lf_print__file_start(file);
+           lf_print__file_start (file);
            switch (ch)
              {
              case 'm':
@@ -1593,7 +1623,7 @@ main (int argc,
                  gen_run_c (file, gen);
                break;
              case 's':
-               if(is_header)
+               if (is_header)
                  gen_semantics_h (file, gen->semantics, isa->max_nr_words);
                else
                  gen_semantics_c (file, gen->semantics, isa->caches);
@@ -1614,21 +1644,18 @@ main (int argc,
                if (is_header)
                  gen_icache_h (file,
                                gen->semantics,
-                               isa->functions,
-                               isa->max_nr_words);
+                               isa->functions, isa->max_nr_words);
                else
                  gen_icache_c (file,
-                               gen->semantics,
-                               isa->functions,
-                               cache_rules);
+                               gen->semantics, isa->functions, cache_rules);
                break;
              }
-           lf_print__file_finish(file);
-           lf_close(file);
+           lf_print__file_finish (file);
+           lf_close (file);
            is_header = 0;
          }
-       real_file_name = NULL;
-       break;
+         real_file_name = NULL;
+         break;
        default:
          ERROR ("Bad switch");
        }
index 6367f3bacc99e7e044c9b04f87cdb0d12f2f915c..1ca456e4a94552a299ebd7ff1df50628d2bd8256 100644 (file)
@@ -24,7 +24,8 @@
 
 /* code-generation options: */
 
-typedef enum {
+typedef enum
+{
 
   /* Transfer control to an instructions semantic code using the the
      standard call/return mechanism */
@@ -37,18 +38,22 @@ typedef enum {
 
   generate_jumps,
 
-} igen_code;
+}
+igen_code;
 
-typedef enum {
+typedef enum
+{
   nia_is_cia_plus_one,
   nia_is_void,
   nia_is_invalid,
-} igen_nia;
+}
+igen_nia;
 
 
 
 typedef struct _igen_gen_options igen_gen_options;
-struct _igen_gen_options {
+struct _igen_gen_options
+{
   int direct_access;
   int semantic_icache;
   int insn_in_icache;
@@ -87,7 +92,8 @@ struct _igen_gen_options {
 
 
 typedef struct _igen_trace_options igen_trace_options;
-struct _igen_trace_options {
+struct _igen_trace_options
+{
   int rule_selection;
   int rule_rejection;
   int insn_insertion;
@@ -96,16 +102,21 @@ struct _igen_trace_options {
   int combine;
 };
 
-typedef struct _igen_name {
+typedef struct _igen_name
+{
   char *u;
   char *l;
-} igen_name;
-typedef struct _igen_module {
+}
+igen_name;
+typedef struct _igen_module
+{
   igen_name prefix;
   igen_name suffix;
-} igen_module;
+}
+igen_module;
 
-typedef struct _igen_module_options {
+typedef struct _igen_module_options
+{
   igen_module global;
   igen_module engine;
   igen_module icache;
@@ -113,10 +124,12 @@ typedef struct _igen_module_options {
   igen_module itable;
   igen_module semantics;
   igen_module support;
-} igen_module_options;
+}
+igen_module_options;
 
-typedef struct _igen_decode_options igen_decode_options ;
-struct _igen_decode_options {
+typedef struct _igen_decode_options igen_decode_options;
+struct _igen_decode_options
+{
 
   /* Combine tables?  Should the generator make a second pass through
      each generated table looking for any sub-entries that contain the
@@ -143,7 +156,8 @@ struct _igen_decode_options {
 
 
 typedef struct _igen_warn_options igen_warn_options;
-struct _igen_warn_options {
+struct _igen_warn_options
+{
 
   /* Issue warning about discarded instructions */
   int discard;
@@ -159,7 +173,8 @@ struct _igen_warn_options {
 
 
 typedef struct _igen_options igen_options;
-struct _igen_options {
+struct _igen_options
+{
 
   /* What does the instruction look like - bit ordering, size, widths or
      offesets */
@@ -201,7 +216,7 @@ struct _igen_options {
 
 extern igen_options options;
 
-/* default options - hopefully backward compatible */ \
+/* default options - hopefully backward compatible */
 #define INIT_OPTIONS() \
 do { \
   memset (&options, 0, sizeof options); \
index 3fa75b709c5d007042956f7ccfdccf77a504fa5f..c46aa9a14638eb1dfa1f19580bc812104c4a6915 100644 (file)
@@ -37,7 +37,8 @@
 #endif
 
 
-enum {
+enum
+{
   ca_type,
   ca_field_name,
   ca_derived_name,
@@ -47,10 +48,10 @@ enum {
 };
 
 static const name_map cache_type_map[] = {
-  { "cache", cache_value },
-  { "compute", compute_value },
-  { "scratch", scratch_value },
-  { NULL, 0 },
+  {"cache", cache_value},
+  {"compute", compute_value},
+  {"scratch", scratch_value},
+  {NULL, 0},
 };
 
 
@@ -67,8 +68,7 @@ load_cache_table (char *file_name)
       new_rule->line = entry->line;
       new_rule->entry_type = name2i (entry->field[ca_type], cache_type_map);
       new_rule->name = entry->field[ca_derived_name];
-      filter_parse (&new_rule->original_fields,
-                   entry->field[ca_field_name]);
+      filter_parse (&new_rule->original_fields, entry->field[ca_field_name]);
       new_rule->type = entry->field[ca_type_def];
       /* expression is the concatenation of the remaining fields */
       if (entry->nr_fields > ca_expression)
@@ -101,7 +101,7 @@ load_cache_table (char *file_name)
 igen_options options;
 
 int
-main(int argc, char **argv)
+main (int argc, char **argv)
 {
   cache_entry *rules = NULL;
   lf *l;
index 168bf3b361c0954297df7dc0903ced7ffe42af23..2ad60ea123ed64c19e98e581ceb80456b831147a 100644 (file)
@@ -65,5 +65,4 @@
    new name had better be the same. */
 
 
-extern cache_entry *load_cache_table
-(char *file_name);
+extern cache_entry *load_cache_table (char *file_name);
index 62b794277fccfbae7398e4bf50a7122ccb6eea43..856b1ad92ad02b4baa2f413420537657a5c959d3 100644 (file)
 
 
 static const name_map decode_type_map[] = {
-  { "normal", normal_decode_rule },
-  { "boolean", boolean_rule },
-  { NULL, normal_decode_rule },
+  {"normal", normal_decode_rule},
+  {"boolean", boolean_rule},
+  {NULL, normal_decode_rule},
 };
 
 static const name_map decode_gen_map[] = {
-  { "array", array_gen },
-  { "switch", switch_gen },
-  { "padded-switch", padded_switch_gen },
-  { "goto-switch", goto_switch_gen },
-  { NULL, -1 },
+  {"array", array_gen},
+  {"switch", switch_gen},
+  {"padded-switch", padded_switch_gen},
+  {"goto-switch", goto_switch_gen},
+  {NULL, -1},
 };
 
 static const name_map decode_reserved_map[] = {
-  { "zero-reserved", 1 },
-  { NULL, 0 },
+  {"zero-reserved", 1},
+  {NULL, 0},
 };
 
 static const name_map decode_duplicates_map[] = {
-  { "duplicate", 1 },
-  { NULL, 0 },
+  {"duplicate", 1},
+  {NULL, 0},
 };
 
 static const name_map decode_combine_map[] = {
-  { "combine", 1 },
-  { NULL, 0 },
+  {"combine", 1},
+  {NULL, 0},
 };
 
 static const name_map decode_search_map[] = {
-  { "constants", decode_find_constants },
-  { "mixed", decode_find_mixed },
-  { "strings", decode_find_strings },
-  { NULL, decode_find_mixed },
+  {"constants", decode_find_constants},
+  {"mixed", decode_find_mixed},
+  {"strings", decode_find_strings},
+  {NULL, decode_find_mixed},
 };
 
 
 static void
-set_bits (int bit[max_insn_bit_size],
-         unsigned64 value)
+set_bits (int bit[max_insn_bit_size], unsigned64 value)
 {
   int bit_nr;
   for (bit_nr = 0; bit_nr < max_insn_bit_size; bit_nr++)
@@ -90,7 +89,7 @@ set_bits (int bit[max_insn_bit_size],
 }
 
 decode_table *
-load_decode_table(char *file_name)
+load_decode_table (char *file_name)
 {
   table *file = table_open (file_name);
   table_entry *entry;
@@ -107,20 +106,22 @@ load_decode_table(char *file_name)
       /* the options field */
       new_rule->type = name2i (decode_options, decode_type_map);
       if (options.decode.overriding_gen != NULL)
-       new_rule->gen = name2i (options.decode.overriding_gen, decode_gen_map);
+       new_rule->gen =
+         name2i (options.decode.overriding_gen, decode_gen_map);
       else
        new_rule->gen = name2i (decode_options, decode_gen_map);
-      if (new_rule->gen == padded_switch_gen
-         && options.decode.switch_as_goto)
+      if (new_rule->gen == padded_switch_gen && options.decode.switch_as_goto)
        new_rule->gen = goto_switch_gen;
       if (options.decode.zero_reserved)
        new_rule->with_zero_reserved = 1;
       else
-       new_rule->with_zero_reserved = name2i (decode_options, decode_reserved_map);
+       new_rule->with_zero_reserved =
+         name2i (decode_options, decode_reserved_map);
       if (options.decode.duplicate)
        new_rule->with_duplicates = 1;
       else
-       new_rule->with_duplicates = name2i (decode_options, decode_duplicates_map);
+       new_rule->with_duplicates =
+         name2i (decode_options, decode_duplicates_map);
       if (options.decode.combine)
        new_rule->with_combine = 1;
       else
@@ -169,7 +170,9 @@ load_decode_table(char *file_name)
          && strlen (entry->field[decode_force_first_field]) > 0)
        {
          new_rule->force_first = target_a2i (options.hi_bit_nr,
-                                             entry->field[decode_force_first_field]);
+                                             entry->
+                                             field
+                                             [decode_force_first_field]);
          if (new_rule->force_first < new_rule->first
              || new_rule->force_first > new_rule->last + 1)
            error (new_rule->line, "Force first out of range\n");
@@ -180,7 +183,8 @@ load_decode_table(char *file_name)
          && strlen (entry->field[decode_force_last_field]) > 0)
        {
          new_rule->force_last = target_a2i (options.hi_bit_nr,
-                                            entry->field[decode_force_last_field]);
+                                            entry->
+                                            field[decode_force_last_field]);
          if (new_rule->force_last > new_rule->last
              || new_rule->force_last < new_rule->first - 1)
            error (new_rule->line, "Force-last out of range\n");
@@ -217,7 +221,7 @@ load_decode_table(char *file_name)
            {
              (*last) = ZALLOC (decode_path_list);
              /* extra root/zero entry */
-             (*last)->path = ZALLOC (decode_path); 
+             (*last)->path = ZALLOC (decode_path);
              do
                {
                  decode_path *entry = ZALLOC (decode_path);
@@ -244,22 +248,32 @@ load_decode_table(char *file_name)
            decode_cond *cond = ZALLOC (decode_cond);
            decode_cond **last;
            if (entry->nr_fields > field_nr + decode_cond_mask_field)
-             set_bits (cond->mask, a2i (entry->field[field_nr + decode_cond_mask_field]));
+             set_bits (cond->mask,
+                       a2i (entry->
+                            field[field_nr + decode_cond_mask_field]));
            if (entry->nr_fields > field_nr + decode_cond_value_field)
-              {
-             if (entry->field[field_nr + decode_cond_value_field][0] == '!')
-               {
-                 cond->is_equal = 0;
-                 set_bits (cond->value, a2i (entry->field[field_nr + decode_cond_value_field] + 1));
-               }
-             else
-               {
-                 cond->is_equal = 1;
-                 set_bits (cond->value, a2i (entry->field[field_nr + decode_cond_value_field]));
-               }
-              }
+             {
+               if (entry->field[field_nr + decode_cond_value_field][0] ==
+                   '!')
+                 {
+                   cond->is_equal = 0;
+                   set_bits (cond->value,
+                             a2i (entry->
+                                  field[field_nr + decode_cond_value_field] +
+                                  1));
+                 }
+               else
+                 {
+                   cond->is_equal = 1;
+                   set_bits (cond->value,
+                             a2i (entry->
+                                  field[field_nr +
+                                        decode_cond_value_field]));
+                 }
+             }
            if (entry->nr_fields > field_nr + decode_cond_word_nr_field)
-             cond->word_nr = a2i (entry->field[field_nr + decode_cond_word_nr_field]);
+             cond->word_nr =
+               a2i (entry->field[field_nr + decode_cond_word_nr_field]);
            field_nr += nr_decode_cond_fields;
            /* insert it */
            last = &new_rule->conditions;
@@ -274,7 +288,7 @@ load_decode_table(char *file_name)
   return table;
 }
 
-  
+
 int
 decode_table_max_word_nr (decode_table *entry)
 {
@@ -297,10 +311,7 @@ decode_table_max_word_nr (decode_table *entry)
 
 
 static void
-dump_decode_cond (lf *file,
-                 char *prefix,
-                 decode_cond *cond,
-                 char *suffix)
+dump_decode_cond (lf *file, char *prefix, decode_cond *cond, char *suffix)
 {
   lf_printf (file, "%s(decode_cond *) 0x%lx", prefix, (long) cond);
   if (cond != NULL)
@@ -318,10 +329,7 @@ dump_decode_cond (lf *file,
 
 
 static void
-dump_decode_conds (lf *file,
-                  char *prefix,
-                  decode_cond *cond,
-                  char *suffix)
+dump_decode_conds (lf *file, char *prefix, decode_cond *cond, char *suffix)
 {
   lf_printf (file, "%s(decode_cond *) 0x%lx", prefix, (long) cond);
   while (cond != NULL)
@@ -334,23 +342,21 @@ dump_decode_conds (lf *file,
 
 
 void
-dump_decode_rule (lf *file,
-                 char *prefix,
-                 decode_table *rule,
-                 char *suffix)
+dump_decode_rule (lf *file, char *prefix, decode_table *rule, char *suffix)
 {
   lf_printf (file, "%s(decode_table *) 0x%lx", prefix, (long) rule);
   if (rule != NULL)
     {
       lf_indent (file, +1);
       dump_line_ref (file, "\n(line ", rule->line, ")");
-      lf_printf (file, "\n(type %s)", i2name(rule->type, decode_type_map));
-      lf_printf (file, "\n(gen %s)", i2name(rule->gen, decode_gen_map));
+      lf_printf (file, "\n(type %s)", i2name (rule->type, decode_type_map));
+      lf_printf (file, "\n(gen %s)", i2name (rule->gen, decode_gen_map));
       lf_printf (file, "\n(first %d)", rule->first);
       lf_printf (file, "\n(last %d)", rule->last);
       lf_printf (file, "\n(force_first %d)", rule->force_first);
       lf_printf (file, "\n(force_last %d)", rule->force_last);
-      dump_filter (file, "\n(constant_field_names \"", rule->constant_field_names, "\")");
+      dump_filter (file, "\n(constant_field_names \"",
+                  rule->constant_field_names, "\")");
       lf_printf (file, "\n(constant 0x%x)", rule->constant);
       lf_printf (file, "\n(word_nr %d)", rule->word_nr);
       lf_printf (file, "\n(with_zero_reserved %d)", rule->with_zero_reserved);
@@ -369,10 +375,7 @@ dump_decode_rule (lf *file,
 #ifdef MAIN
 
 static void
-dump_decode_rules (lf *file,
-                  char *prefix,
-                  decode_table *rule,
-                  char *suffix)
+dump_decode_rules (lf *file, char *prefix, decode_table *rule, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (rule != NULL)
@@ -388,7 +391,7 @@ dump_decode_rules (lf *file,
 igen_options options;
 
 int
-main(int argc, char **argv)
+main (int argc, char **argv)
 {
   lf *l;
   decode_table *rules;
index 1060f9c668ac500b31a9349faffa844749e4865b..329e80de5d5dbf2fa81fc5c318d0a4b07b2b93a8 100644 (file)
        */
 
 
-typedef enum {
+typedef enum
+{
   normal_decode_rule,
   boolean_rule,
-} decode_special_type;
+}
+decode_special_type;
 
 
-typedef enum {
+typedef enum
+{
   invalid_gen,
   array_gen,
   switch_gen,
   padded_switch_gen,
   goto_switch_gen,
-} decode_gen_type;
+}
+decode_gen_type;
 
 
-enum {
+enum
+{
   decode_cond_mask_field,
   decode_cond_value_field,
   decode_cond_word_nr_field,
@@ -156,20 +161,23 @@ enum {
 };
 
 typedef struct _decode_path decode_path;
-struct _decode_path {
+struct _decode_path
+{
   int opcode_nr;
   decode_path *parent;
 };
 
 typedef struct _decode_path_list decode_path_list;
-struct _decode_path_list {
+struct _decode_path_list
+{
   decode_path *path;
   decode_path_list *next;
 };
 
 
 typedef struct _decode_cond decode_cond;
-struct _decode_cond {
+struct _decode_cond
+{
   int word_nr;
   int mask[max_insn_bit_size];
   int value[max_insn_bit_size];
@@ -177,13 +185,16 @@ struct _decode_cond {
   decode_cond *next;
 };
 
-typedef enum {
+typedef enum
+{
   decode_find_mixed,
   decode_find_constants,
   decode_find_strings,
-} decode_search_type;
+}
+decode_search_type;
 
-enum {
+enum
+{
   decode_options_field,
   decode_first_field,
   decode_last_field,
@@ -200,7 +211,8 @@ enum {
 
 
 typedef struct _decode_table decode_table;
-struct _decode_table {
+struct _decode_table
+{
   line_ref *line;
   decode_special_type type;
   decode_gen_type gen;
@@ -226,14 +238,9 @@ struct _decode_table {
 };
 
 
-extern decode_table *load_decode_table
-(char *file_name);
+extern decode_table *load_decode_table (char *file_name);
 
-extern int decode_table_max_word_nr
-(decode_table *rule);
+extern int decode_table_max_word_nr (decode_table *rule);
 
 extern void dump_decode_rule
-(lf *file,
- char *prefix,
- decode_table *rule,
- char *suffix);
+  (lf *file, char *prefix, decode_table *rule, char *suffix);
index 01f1f5ab59f6daed5c35fdf2e6dbe4b8dbb717ce..d74ff5b5a3a3cacc86e04c670b68b427f6232e14 100644 (file)
@@ -30,9 +30,7 @@
 #include "ld-insn.h"
 
 static insn_word_entry *
-parse_insn_word (line_ref *line,
-                char *string,
-                int word_nr)
+parse_insn_word (line_ref *line, char *string, int word_nr)
 {
   char *chp;
   insn_word_entry *word = ZALLOC (insn_word_entry);
@@ -56,241 +54,244 @@ parse_insn_word (line_ref *line,
   /* now work through the formats */
   chp = skip_spaces (string);
 
-  while (*chp != '\0') {
-    char *start_pos;
-    int strlen_pos;
-    char *start_val;
-    int strlen_val;
-    insn_field_entry *new_field;
-
-    /* create / link in the new field */
-    new_field = ZALLOC (insn_field_entry);
-    new_field->next = word->last;
-    new_field->prev = word->last->prev;
-    new_field->next->prev = new_field;
-    new_field->prev->next = new_field;
-    new_field->word_nr = word_nr;
-
-    /* break out the first field (if present) */
-    start_pos = chp;
-    chp = skip_to_separator (chp, ".,!");
-    strlen_pos = back_spaces (start_pos, chp) - start_pos;
-
-    /* break out the second field (if present) */
-    if (*chp != '.')
-      {
-       /* assume what was specified was the value (and not the start
-           position).  Assume the value length implicitly specifies
-           the number of bits */
-       start_val = start_pos;
-       strlen_val = strlen_pos;
-       start_pos = "";
-       strlen_pos = 0;
-      }
-    else
-      {
-       chp++; /* skip `.' */
-       chp = skip_spaces (chp);
-       start_val = chp;
-       if (*chp == '/' || *chp == '*')
-         {
-           do
-             {
-               chp++;
-             }
-           while (*chp == '/' || *chp == '*');
-         }
-       else if (isalpha(*start_val))
-         {
-           do
-             {
-               chp++;
-             }
-           while (isalnum(*chp) || *chp == '_');
-         }
-       else if (isdigit(*start_val))
-         {
-           do {
-             chp++;
+  while (*chp != '\0')
+    {
+      char *start_pos;
+      int strlen_pos;
+      char *start_val;
+      int strlen_val;
+      insn_field_entry *new_field;
+
+      /* create / link in the new field */
+      new_field = ZALLOC (insn_field_entry);
+      new_field->next = word->last;
+      new_field->prev = word->last->prev;
+      new_field->next->prev = new_field;
+      new_field->prev->next = new_field;
+      new_field->word_nr = word_nr;
+
+      /* break out the first field (if present) */
+      start_pos = chp;
+      chp = skip_to_separator (chp, ".,!");
+      strlen_pos = back_spaces (start_pos, chp) - start_pos;
+
+      /* break out the second field (if present) */
+      if (*chp != '.')
+       {
+         /* assume what was specified was the value (and not the start
+            position).  Assume the value length implicitly specifies
+            the number of bits */
+         start_val = start_pos;
+         strlen_val = strlen_pos;
+         start_pos = "";
+         strlen_pos = 0;
+       }
+      else
+       {
+         chp++;                /* skip `.' */
+         chp = skip_spaces (chp);
+         start_val = chp;
+         if (*chp == '/' || *chp == '*')
+           {
+             do
+               {
+                 chp++;
+               }
+             while (*chp == '/' || *chp == '*');
            }
-           while (isalnum(*chp));
-         }
-       strlen_val = chp - start_val;
-       chp = skip_spaces (chp);
-      }
-    if (strlen_val == 0)
-      error (line, "Empty value field\n");
-    
-    /* break out any conditional fields - { [ "!" | "=" [ <value> | <field-name> } */
-    while (*chp == '!' || *chp == '=')
-      {
-       char *start;
-       char *end;
-       int len;
-       insn_field_cond *new_cond = ZALLOC (insn_field_cond);
-       
-       /* determine the conditional test */
-       switch (*chp)
-         {
-         case '=':
-           new_cond->test = insn_field_cond_eq;
-           break;
-         case '!':
-           new_cond->test = insn_field_cond_ne;
-           break;
-         default:
-           ASSERT (0);
-         }
-         
-       /* save the value */
-       chp++; 
-       chp = skip_spaces (chp);
-       start = chp;
-       chp = skip_to_separator (chp, "+,:!=");
-       end = back_spaces (start, chp);
-       len = end - start;
-       if (len == 0)
-         error (line, "Missing or invalid conditional value\n");
-       new_cond->string = NZALLOC (char, len + 1);
-       strncpy (new_cond->string, start, len);
-
-       /* determine the conditional type */
-       if (isdigit (*start))
-         {
-           /* [ "!" | "=" ] <value> */
-           new_cond->type = insn_field_cond_value;
-           new_cond->value = a2i (new_cond->string);
-         }
-       else
+         else if (isalpha (*start_val))
+           {
+             do
+               {
+                 chp++;
+               }
+             while (isalnum (*chp) || *chp == '_');
+           }
+         else if (isdigit (*start_val))
+           {
+             do
+               {
+                 chp++;
+               }
+             while (isalnum (*chp));
+           }
+         strlen_val = chp - start_val;
+         chp = skip_spaces (chp);
+       }
+      if (strlen_val == 0)
+       error (line, "Empty value field\n");
+
+      /* break out any conditional fields - { [ "!" | "=" [ <value> | <field-name> } */
+      while (*chp == '!' || *chp == '=')
+       {
+         char *start;
+         char *end;
+         int len;
+         insn_field_cond *new_cond = ZALLOC (insn_field_cond);
+
+         /* determine the conditional test */
+         switch (*chp)
+           {
+           case '=':
+             new_cond->test = insn_field_cond_eq;
+             break;
+           case '!':
+             new_cond->test = insn_field_cond_ne;
+             break;
+           default:
+             ASSERT (0);
+           }
+
+         /* save the value */
+         chp++;
+         chp = skip_spaces (chp);
+         start = chp;
+         chp = skip_to_separator (chp, "+,:!=");
+         end = back_spaces (start, chp);
+         len = end - start;
+         if (len == 0)
+           error (line, "Missing or invalid conditional value\n");
+         new_cond->string = NZALLOC (char, len + 1);
+         strncpy (new_cond->string, start, len);
+
+         /* determine the conditional type */
+         if (isdigit (*start))
+           {
+             /* [ "!" | "=" ] <value> */
+             new_cond->type = insn_field_cond_value;
+             new_cond->value = a2i (new_cond->string);
+           }
+         else
+           {
+             /* [ "!" | "=" ] <field>  - check field valid */
+             new_cond->type = insn_field_cond_field;
+             /* new_cond->field is determined in later */
+           }
+
+         /* Only a single `=' is permitted. */
+         if ((new_cond->test == insn_field_cond_eq
+              && new_field->conditions != NULL)
+             || (new_field->conditions != NULL
+                 && new_field->conditions->test == insn_field_cond_eq))
+           error (line, "Only single conditional when `=' allowed\n");
+
+         /* insert it */
          {
-           /* [ "!" | "=" ] <field>  - check field valid */
-           new_cond->type = insn_field_cond_field;
-           /* new_cond->field is determined in later */
+           insn_field_cond **last = &new_field->conditions;
+           while (*last != NULL)
+             last = &(*last)->next;
+           *last = new_cond;
          }
-         
-       /* Only a single `=' is permitted. */
-       if ((new_cond->test == insn_field_cond_eq
-            && new_field->conditions != NULL)
-           || (new_field->conditions != NULL
-               && new_field->conditions->test == insn_field_cond_eq))
-         error (line, "Only single conditional when `=' allowed\n");
-
-       /* insert it */
+       }
+
+      /* NOW verify that the field was finished */
+      if (*chp == ',')
        {
-         insn_field_cond **last = &new_field->conditions;
-         while (*last != NULL)
-           last = &(*last)->next;
-         *last = new_cond;
+         chp = skip_spaces (chp + 1);
+         if (*chp == '\0')
+           error (line, "empty field\n");
+       }
+      else if (*chp != '\0')
+       {
+         error (line, "Missing field separator\n");
        }
-      }
 
-    /* NOW verify that the field was finished */
-    if (*chp == ',')
-      {
-       chp = skip_spaces (chp + 1);
-       if (*chp == '\0')
-         error (line, "empty field\n");
-      }
-    else if (*chp != '\0')
-      {
-       error (line, "Missing field separator\n");
-      }
+      /* copy the value */
+      new_field->val_string = NZALLOC (char, strlen_val + 1);
+      strncpy (new_field->val_string, start_val, strlen_val);
+      if (isdigit (new_field->val_string[0]))
+       {
+         if (strlen_pos == 0)
+           {
+             /* when the length/pos field is omited, an integer field
+                is always binary */
+             unsigned64 val = 0;
+             int i;
+             for (i = 0; i < strlen_val; i++)
+               {
+                 if (new_field->val_string[i] != '0'
+                     && new_field->val_string[i] != '1')
+                   error (line, "invalid binary field %s\n",
+                          new_field->val_string);
+                 val = (val << 1) + (new_field->val_string[i] == '1');
+               }
+             new_field->val_int = val;
+             new_field->type = insn_field_int;
+           }
+         else
+           {
+             new_field->val_int = a2i (new_field->val_string);
+             new_field->type = insn_field_int;
+           }
+       }
+      else if (new_field->val_string[0] == '/')
+       {
+         new_field->type = insn_field_reserved;
+       }
+      else if (new_field->val_string[0] == '*')
+       {
+         new_field->type = insn_field_wild;
+       }
+      else
+       {
+         new_field->type = insn_field_string;
+         if (filter_is_member (word->field_names, new_field->val_string))
+           error (line, "Field name %s is duplicated\n",
+                  new_field->val_string);
+         filter_parse (&word->field_names, new_field->val_string);
+       }
+      if (new_field->type != insn_field_string
+         && new_field->conditions != NULL)
+       error (line, "Conditionals can only be applied to named fields\n");
 
-    /* copy the value */
-    new_field->val_string = NZALLOC (char, strlen_val+1);
-    strncpy (new_field->val_string, start_val, strlen_val);
-    if (isdigit (new_field->val_string[0]))
-      {
-       if (strlen_pos == 0)
-         {
-           /* when the length/pos field is omited, an integer field
-               is always binary */
-           unsigned64 val = 0;
-           int i;
-           for (i = 0; i < strlen_val; i++)
-             {
-               if (new_field->val_string[i] != '0'
-                   && new_field->val_string[i] != '1')
-                 error (line, "invalid binary field %s\n",
-                        new_field->val_string);
-               val = (val << 1) + (new_field->val_string[i] == '1');
-             }
-           new_field->val_int = val;
-           new_field->type = insn_field_int;
-         }
-       else
-         {
-           new_field->val_int = a2i (new_field->val_string);
-           new_field->type = insn_field_int;
-         }
-      }
-    else if (new_field->val_string[0] == '/')
-      {
-       new_field->type = insn_field_reserved;
-      }
-    else if (new_field->val_string[0] == '*')
-      {
-       new_field->type = insn_field_wild;
-      }
-    else
-      {
-       new_field->type = insn_field_string;
-       if (filter_is_member (word->field_names, new_field->val_string))
-         error (line, "Field name %s is duplicated\n", new_field->val_string);
-       filter_parse (&word->field_names, new_field->val_string);
-      }
-    if (new_field->type != insn_field_string
-       && new_field->conditions != NULL)
-      error (line, "Conditionals can only be applied to named fields\n");
-
-    /* the copy the position */
-    new_field->pos_string = NZALLOC (char, strlen_pos + 1);
-    strncpy (new_field->pos_string, start_pos, strlen_pos);
-    if (strlen_pos == 0)
-      {
-       new_field->first = new_field->prev->last + 1;
-       if (new_field->first == 0 /* first field */
-           && *chp == '\0' /* no further fields */
-           && new_field->type == insn_field_string)
-         {
-           /* A single string without any position, assume that it
-               represents the entire instruction word */
-           new_field->width = options.insn_bit_size;
-         }
-       else
-         {
-           /* No explicit width/position, assume value implicitly
-              supplies the width */
-           new_field->width = strlen_val;
-         }
-       new_field->last = new_field->first + new_field->width - 1;
-       if (new_field->last >= options.insn_bit_size)
-         error (line, "Bit position %d exceed instruction bit size (%d)\n",
-                new_field->last, options.insn_bit_size);
-      }
-    else if (options.insn_specifying_widths)
-      {
-       new_field->first = new_field->prev->last + 1;
-       new_field->width = a2i(new_field->pos_string);
-       new_field->last = new_field->first + new_field->width - 1;
-       if (new_field->last >= options.insn_bit_size)
-         error (line, "Bit position %d exceed instruction bit size (%d)\n",
-                new_field->last, options.insn_bit_size);
-      }
-    else
-      {
-       new_field->first = target_a2i(options.hi_bit_nr,
-                                     new_field->pos_string);
-       new_field->last = new_field->next->first - 1; /* guess */
-       new_field->width = new_field->last - new_field->first + 1; /* guess */
-       new_field->prev->last = new_field->first - 1; /*fix*/
-       new_field->prev->width = new_field->first - new_field->prev->first; /*fix*/
-      }
-  }
+      /* the copy the position */
+      new_field->pos_string = NZALLOC (char, strlen_pos + 1);
+      strncpy (new_field->pos_string, start_pos, strlen_pos);
+      if (strlen_pos == 0)
+       {
+         new_field->first = new_field->prev->last + 1;
+         if (new_field->first == 0     /* first field */
+             && *chp == '\0'   /* no further fields */
+             && new_field->type == insn_field_string)
+           {
+             /* A single string without any position, assume that it
+                represents the entire instruction word */
+             new_field->width = options.insn_bit_size;
+           }
+         else
+           {
+             /* No explicit width/position, assume value implicitly
+                supplies the width */
+             new_field->width = strlen_val;
+           }
+         new_field->last = new_field->first + new_field->width - 1;
+         if (new_field->last >= options.insn_bit_size)
+           error (line, "Bit position %d exceed instruction bit size (%d)\n",
+                  new_field->last, options.insn_bit_size);
+       }
+      else if (options.insn_specifying_widths)
+       {
+         new_field->first = new_field->prev->last + 1;
+         new_field->width = a2i (new_field->pos_string);
+         new_field->last = new_field->first + new_field->width - 1;
+         if (new_field->last >= options.insn_bit_size)
+           error (line, "Bit position %d exceed instruction bit size (%d)\n",
+                  new_field->last, options.insn_bit_size);
+       }
+      else
+       {
+         new_field->first = target_a2i (options.hi_bit_nr,
+                                        new_field->pos_string);
+         new_field->last = new_field->next->first - 1; /* guess */
+         new_field->width = new_field->last - new_field->first + 1;    /* guess */
+         new_field->prev->last = new_field->first - 1; /*fix */
+         new_field->prev->width = new_field->first - new_field->prev->first;   /*fix */
+       }
+    }
 
   /* fiddle first/last so that the sentinals disapear */
-  ASSERT(word->first->last < 0);
-  ASSERT(word->last->first >= options.insn_bit_size);
+  ASSERT (word->first->last < 0);
+  ASSERT (word->last->first >= options.insn_bit_size);
   word->first = word->first->next;
   word->last = word->last->prev;
 
@@ -308,8 +309,7 @@ parse_insn_word (line_ref *line,
   {
     insn_field_entry *field;
     for (field = word->first;
-        field->last < options.insn_bit_size;
-        field = field->next)
+        field->last < options.insn_bit_size; field = field->next)
       {
        int i;
        for (i = field->first; i <= field->last; i++)
@@ -324,21 +324,21 @@ parse_insn_word (line_ref *line,
              case insn_field_int:
                word->bit[i]->mask = 1;
                word->bit[i]->value = ((field->val_int
-                                       & ((insn_uint)1 << (field->last - i)))
-                                      != 0);
+                                       & ((insn_uint) 1 <<
+                                          (field->last - i))) != 0);
              case insn_field_reserved:
              case insn_field_wild:
              case insn_field_string:
                /* if we encounter a constant conditional, encode
-                   their bit value. */
+                  their bit value. */
                if (field->conditions != NULL
                    && field->conditions->test == insn_field_cond_eq
                    && field->conditions->type == insn_field_cond_value)
                  {
                    word->bit[i]->mask = 1;
                    word->bit[i]->value = ((field->conditions->value
-                                           & ((insn_uint)1 << (field->last - i)))
-                                          != 0);
+                                           & ((insn_uint) 1 <<
+                                              (field->last - i))) != 0);
                  }
                break;
              }
@@ -351,8 +351,7 @@ parse_insn_word (line_ref *line,
 
 
 static void
-parse_insn_words (insn_entry *insn,
-                 char *formats)
+parse_insn_words (insn_entry * insn, char *formats)
 {
   insn_word_entry **last_word = &insn->words;
   char *chp;
@@ -408,8 +407,7 @@ parse_insn_words (insn_entry *insn,
     insn_word_entry *word;
     insn->word = NZALLOC (insn_word_entry *, insn->nr_words + 1);
     for (i = 0, word = insn->words;
-        i < insn->nr_words;
-        i++, word = word->next)
+        i < insn->nr_words; i++, word = word->next)
       insn->word[i] = word;
   }
 
@@ -422,14 +420,10 @@ parse_insn_words (insn_entry *insn,
       {
        insn_word_entry *word = insn->word[i];
        insn_field_entry *f;
-       for (f = word->first;
-            f->last < options.insn_bit_size;
-            f = f->next)
+       for (f = word->first; f->last < options.insn_bit_size; f = f->next)
          {
            insn_field_cond *cond;
-           for (cond = f->conditions;
-                cond != NULL;
-                cond = cond->next)
+           for (cond = f->conditions; cond != NULL; cond = cond->next)
              {
                if (cond->type == insn_field_cond_field)
                  {
@@ -447,7 +441,8 @@ parse_insn_words (insn_entry *insn,
                             refered_field = refered_field->next)
                          {
                            if (refered_field->type == insn_field_string
-                               && strcmp (refered_field->val_string, cond->string) == 0)
+                               && strcmp (refered_field->val_string,
+                                          cond->string) == 0)
                              {
                                /* found field being refered to by conditonal */
                                cond->field = refered_field;
@@ -456,7 +451,8 @@ parse_insn_words (insn_entry *insn,
                                if (f->width != refered_field->width)
                                  error (insn->line,
                                         "Conditional `%s' of field `%s' should be of size %s\n",
-                                        cond->string, f->val_string, refered_field->width);
+                                        cond->string, f->val_string,
+                                        refered_field->width);
                              }
                          }
                      }
@@ -469,12 +465,13 @@ parse_insn_words (insn_entry *insn,
          }
       }
   }
-  
+
 }
 
-typedef enum {
+typedef enum
+{
   unknown_record = 0,
-  insn_record, /* default */
+  insn_record,                 /* default */
   code_record,
   cache_record,
   compute_record,
@@ -491,25 +488,26 @@ typedef enum {
   model_static_record,
   model_function_record,
   model_internal_record,
-} insn_record_type;
+}
+insn_record_type;
 
 static const name_map insn_type_map[] = {
-  { "option", option_record },
-  { "cache", cache_record },
-  { "compute", compute_record },
-  { "scratch", scratch_record },
-  { "define", define_record },
-  { "include", include_record },
-  { "%s", string_function_record },
-  { "function", function_record },
-  { "internal", internal_record },
-  { "model", model_processor_record },
-  { "model-macro", model_macro_record },
-  { "model-data", model_data_record },
-  { "model-static", model_static_record },
-  { "model-internal", model_internal_record },
-  { "model-function", model_function_record },
-  { NULL, insn_record },
+  {"option", option_record},
+  {"cache", cache_record},
+  {"compute", compute_record},
+  {"scratch", scratch_record},
+  {"define", define_record},
+  {"include", include_record},
+  {"%s", string_function_record},
+  {"function", function_record},
+  {"internal", internal_record},
+  {"model", model_processor_record},
+  {"model-macro", model_macro_record},
+  {"model-data", model_data_record},
+  {"model-static", model_static_record},
+  {"model-internal", model_internal_record},
+  {"model-function", model_function_record},
+  {NULL, insn_record},
 };
 
 
@@ -554,15 +552,13 @@ record_type (table_entry *entry)
          return i;
        }
       else
-       return insn_record; /* default */
+       return insn_record;     /* default */
     }
   return unknown_record;
 }
 
 static int
-record_prefix_is (table_entry *entry,
-                 char ch,
-                 int nr_fields)
+record_prefix_is (table_entry *entry, char ch, int nr_fields)
 {
   if (entry->type != table_colon_entry)
     return 0;
@@ -577,8 +573,7 @@ static table_entry *
 parse_model_data_record (insn_table *isa,
                         table *file,
                         table_entry *record,
-                        int nr_fields,
-                        model_data **list)
+                        int nr_fields, model_data **list)
 {
   table_entry *model_record = record;
   table_entry *code_record = NULL;
@@ -612,7 +607,8 @@ parse_model_data_record (insn_table *isa,
 }
 
 
-typedef enum {
+typedef enum
+{
   insn_bit_size_option = 1,
   insn_specifying_widths_option,
   hi_bit_nr_option,
@@ -622,23 +618,23 @@ typedef enum {
   format_names_option,
   gen_delayed_branch,
   unknown_option,
-} option_names;
+}
+option_names;
 
 static const name_map option_map[] = {
-  { "insn-bit-size", insn_bit_size_option },
-  { "insn-specifying-widths", insn_specifying_widths_option },
-  { "hi-bit-nr", hi_bit_nr_option },
-  { "flags-filter", flags_filter_option },
-  { "model-filter", model_filter_option },
-  { "multi-sim", multi_sim_option },
-  { "format-names", format_names_option },
-  { "gen-delayed-branch", gen_delayed_branch },
-  { NULL, unknown_option },
+  {"insn-bit-size", insn_bit_size_option},
+  {"insn-specifying-widths", insn_specifying_widths_option},
+  {"hi-bit-nr", hi_bit_nr_option},
+  {"flags-filter", flags_filter_option},
+  {"model-filter", model_filter_option},
+  {"multi-sim", multi_sim_option},
+  {"format-names", format_names_option},
+  {"gen-delayed-branch", gen_delayed_branch},
+  {NULL, unknown_option},
 };
 
 static table_entry *
-parse_include_record (table *file,
-                     table_entry *record)
+parse_include_record (table *file, table_entry *record)
 {
   /* parse the include record */
   if (record->nr_fields < nr_include_fields)
@@ -651,7 +647,7 @@ parse_include_record (table *file,
     {
       table_push (file, record->line, options.include,
                  record->field[include_filename_field]);
-    }  
+    }
   /* nb: can't read next record until after the file has been pushed */
   record = table_read (file);
   return record;
@@ -659,8 +655,7 @@ parse_include_record (table *file,
 
 
 static table_entry *
-parse_option_record (table *file,
-                    table_entry *record)
+parse_option_record (table *file, table_entry *record)
 {
   table_entry *option_record;
   /* parse the option record */
@@ -684,10 +679,12 @@ parse_option_record (table *file,
            options.insn_bit_size = a2i (value);
            if (options.insn_bit_size < 0
                || options.insn_bit_size > max_insn_bit_size)
-             error (option_record->line, "Instruction bit size out of range\n");
+             error (option_record->line,
+                    "Instruction bit size out of range\n");
            if (options.hi_bit_nr != options.insn_bit_size - 1
                && options.hi_bit_nr != 0)
-             error (option_record->line, "insn-bit-size / hi-bit-nr conflict\n");
+             error (option_record->line,
+                    "insn-bit-size / hi-bit-nr conflict\n");
            break;
          }
        case insn_specifying_widths_option:
@@ -700,7 +697,8 @@ parse_option_record (table *file,
            options.hi_bit_nr = a2i (value);
            if (options.hi_bit_nr != 0
                && options.hi_bit_nr != options.insn_bit_size - 1)
-             error (option_record->line, "hi-bit-nr / insn-bit-size conflict\n");
+             error (option_record->line,
+                    "hi-bit-nr / insn-bit-size conflict\n");
            break;
          }
        case flags_filter_option:
@@ -734,7 +732,7 @@ parse_option_record (table *file,
            break;
          }
        }
-    }  
+    }
   return record;
 }
 
@@ -742,10 +740,9 @@ parse_option_record (table *file,
 static table_entry *
 parse_function_record (table *file,
                       table_entry *record,
-                      function_entry **list,
-                      function_entry **list_entry,
-                      int is_internal,
-                      model_table *model)
+                      function_entry ** list,
+                      function_entry ** list_entry,
+                      int is_internal, model_table *model)
 {
   function_entry *new_function;
   new_function = ZALLOC (function_entry);
@@ -779,7 +776,7 @@ parse_function_record (table *file,
   while (record != NULL
         && record_prefix_is (record, '*', nr_function_model_fields))
     {
-      char *model_name = record->field[function_model_name_field] + 1; /*skip `*'*/
+      char *model_name = record->field[function_model_name_field] + 1; /*skip `*' */
       filter_parse (&new_function->models, model_name);
       if (!filter_is_subset (model->processors, new_function->models))
        {
@@ -804,7 +801,8 @@ parse_function_record (table *file,
           && !filter_is_common (options.model_filter, new_function->models))
     {
       if (options.warn.discard)
-       notify (new_function->line, "Discarding function %s - filter models\n",
+       notify (new_function->line,
+               "Discarding function %s - filter models\n",
                new_function->name);
     }
   else
@@ -822,8 +820,7 @@ parse_function_record (table *file,
 static void
 parse_insn_model_record (table *file,
                         table_entry *record,
-                        insn_entry *insn,
-                        model_table *model)
+                        insn_entry * insn, model_table *model)
 {
   insn_model_entry **last_insn_model;
   insn_model_entry *new_insn_model = ZALLOC (insn_model_entry);
@@ -835,11 +832,11 @@ parse_insn_model_record (table *file,
   /* parse the model names, verify that all were defined */
   new_insn_model->names = NULL;
   filter_parse (&new_insn_model->names,
-               record->field[insn_model_name_field] + 1 /*skip `*'*/);
+               record->field[insn_model_name_field] + 1 /*skip `*' */ );
   if (new_insn_model->names == NULL)
     {
       /* No processor names - a generic model entry, enter it into all
-        the non-empty fields */
+         the non-empty fields */
       int index;
       for (index = 0; index < model->nr_models; index++)
        if (insn->model[index] == 0)
@@ -858,7 +855,8 @@ parse_insn_model_record (table *file,
       while (1)
        {
          name = filter_next (new_insn_model->names, name);
-         if (name == NULL) break;
+         if (name == NULL)
+           break;
          index = filter_is_member (model->processors, name) - 1;
          if (index < 0)
            {
@@ -866,8 +864,7 @@ parse_insn_model_record (table *file,
                     "machine model `%s' undefined\n", name);
            }
          /* store it in the corresponding model array entry */
-         if (insn->model[index] != NULL
-             && insn->model[index]->names != NULL)
+         if (insn->model[index] != NULL && insn->model[index]->names != NULL)
            {
              warning (new_insn_model->line,
                       "machine model `%s' previously defined\n", name);
@@ -896,8 +893,7 @@ parse_insn_model_record (table *file,
 
 static void
 parse_insn_mnemonic_record (table *file,
-                           table_entry *record,
-                           insn_entry *insn)
+                           table_entry *record, insn_entry * insn)
 {
   insn_mnemonic_entry **last_insn_mnemonic;
   insn_mnemonic_entry *new_insn_mnemonic = ZALLOC (insn_mnemonic_entry);
@@ -906,10 +902,13 @@ parse_insn_mnemonic_record (table *file,
   ASSERT (record->nr_fields > insn_mnemonic_format_field);
   new_insn_mnemonic->format = record->field[insn_mnemonic_format_field];
   ASSERT (new_insn_mnemonic->format[0] == '"');
-  if (new_insn_mnemonic->format[strlen (new_insn_mnemonic->format) - 1] != '"')
-    error (new_insn_mnemonic->line, "Missing closing double quote in mnemonic field\n");
+  if (new_insn_mnemonic->format[strlen (new_insn_mnemonic->format) - 1] !=
+      '"')
+    error (new_insn_mnemonic->line,
+          "Missing closing double quote in mnemonic field\n");
   if (record->nr_fields > insn_mnemonic_condition_field)
-    new_insn_mnemonic->condition = record->field[insn_mnemonic_condition_field];
+    new_insn_mnemonic->condition =
+      record->field[insn_mnemonic_condition_field];
   new_insn_mnemonic->insn = insn;
   /* insert it */
   last_insn_mnemonic = &insn->mnemonics;
@@ -921,8 +920,7 @@ parse_insn_mnemonic_record (table *file,
 
 
 static table_entry *
-parse_macro_record (table *file,
-                   table_entry *record)
+parse_macro_record (table *file, table_entry *record)
 {
 #if 1
   error (record->line, "Macros are not implemented");
@@ -941,7 +939,7 @@ parse_macro_record (table *file,
                    record->field[macro_name_field],
                    record->field[macro_args_field],
                    record->field[macro_expr_field]);
-    }  
+    }
   record = table_read (file);
 #endif
   return record;
@@ -949,15 +947,14 @@ parse_macro_record (table *file,
 
 
 insn_table *
-load_insn_table (char *file_name,
-                cache_entry *cache)
+load_insn_table (char *file_name, cache_entry *cache)
 {
   table *file = table_open (file_name);
   table_entry *record = table_read (file);
 
   insn_table *isa = ZALLOC (insn_table);
   model_table *model = ZALLOC (model_table);
-  
+
   isa->model = model;
   isa->caches = cache;
 
@@ -980,22 +977,20 @@ load_insn_table (char *file_name,
            record = parse_option_record (file, record);
            break;
          }
-       
+
        case string_function_record:
          {
            function_entry *function = NULL;
            record = parse_function_record (file, record,
                                            &isa->functions,
-                                           &function,
-                                           0/*is-internal*/,
+                                           &function, 0 /*is-internal */ ,
                                            model);
            /* convert a string function record into an internal function */
            if (function != NULL)
              {
                char *name = NZALLOC (char,
                                      (strlen ("str_")
-                                      + strlen (function->name)
-                                      + 1));
+                                      + strlen (function->name) + 1));
                strcat (name, "str_");
                strcat (name, function->name);
                function->name = name;
@@ -1003,13 +998,12 @@ load_insn_table (char *file_name,
              }
            break;
          }
-       
-       case function_record: /* function record */
+
+       case function_record:   /* function record */
          {
            record = parse_function_record (file, record,
                                            &isa->functions,
-                                           NULL,
-                                           0/*is-internal*/,
+                                           NULL, 0 /*is-internal */ ,
                                            model);
            break;
          }
@@ -1020,11 +1014,10 @@ load_insn_table (char *file_name,
            function_entry *function = NULL;
            record = parse_function_record (file, record,
                                            &isa->functions,
-                                           &function,
-                                           1/*is-internal*/,
+                                           &function, 1 /*is-internal */ ,
                                            model);
            /* check what was inserted to see if a pseudo-instruction
-               entry also needs to be created */
+              entry also needs to be created */
            if (function != NULL)
              {
                insn_entry **insn = NULL;
@@ -1051,8 +1044,8 @@ load_insn_table (char *file_name,
              }
            break;
          }
-         
-       case scratch_record: /* cache macro records */
+
+       case scratch_record:    /* cache macro records */
        case cache_record:
        case compute_record:
          {
@@ -1076,13 +1069,16 @@ load_insn_table (char *file_name,
            /* insert it but only if not filtered out */
            if (!filter_is_subset (options.flags_filter, new_cache->flags))
              {
-               notify (new_cache->line, "Discarding cache entry %s - filter flags\n",
+               notify (new_cache->line,
+                       "Discarding cache entry %s - filter flags\n",
                        new_cache->name);
              }
            else if (is_filtered_out (options.model_filter,
-                                     record->field[record_filter_models_field]))
+                                     record->
+                                     field[record_filter_models_field]))
              {
-               notify (new_cache->line, "Discarding cache entry %s - filter models\n",
+               notify (new_cache->line,
+                       "Discarding cache entry %s - filter models\n",
                        new_cache->name);
              }
            else
@@ -1097,14 +1093,15 @@ load_insn_table (char *file_name,
            record = table_read (file);
            break;
          }
-       
-       /* model records */
+
+         /* model records */
        case model_processor_record:
          {
            model_entry *new_model;
            /* parse the model */
            if (record->nr_fields < nr_model_processor_fields)
-             error (record->line, "Incorrect nr of fields for model record\n");
+             error (record->line,
+                    "Incorrect nr of fields for model record\n");
            if (isa->insns != NULL)
              error (record->line, "Model appears after first instruction\n");
            new_model = ZALLOC (model_entry);
@@ -1117,13 +1114,16 @@ load_insn_table (char *file_name,
            /* only insert it if not filtered out */
            if (!filter_is_subset (options.flags_filter, new_model->flags))
              {
-               notify (new_model->line, "Discarding processor model %s - filter flags\n",
+               notify (new_model->line,
+                       "Discarding processor model %s - filter flags\n",
                        new_model->name);
              }
            else if (is_filtered_out (options.model_filter,
-                                     record->field[record_filter_models_field]))
+                                     record->
+                                     field[record_filter_models_field]))
              {
-               notify (new_model->line, "Discarding processor model %s - filter models\n",
+               notify (new_model->line,
+                       "Discarding processor model %s - filter models\n",
                        new_model->name);
              }
            else if (filter_is_member (model->processors, new_model->name))
@@ -1139,70 +1139,69 @@ load_insn_table (char *file_name,
                  last = &(*last)->next;
                *last = new_model;
                /* count it */
-               model->nr_models ++;
+               model->nr_models++;
                filter_parse (&model->processors, new_model->name);
              }
            /* advance things */
            record = table_read (file);
          }
          break;
-         
+
        case model_macro_record:
          record = parse_model_data_record (isa, file, record,
                                            nr_model_macro_fields,
                                            &model->macros);
          break;
-         
+
        case model_data_record:
          record = parse_model_data_record (isa, file, record,
                                            nr_model_data_fields,
                                            &model->data);
          break;
-         
+
        case model_static_record:
          record = parse_function_record (file, record,
                                          &model->statics,
-                                         NULL,
-                                         0/*is internal*/,
+                                         NULL, 0 /*is internal */ ,
                                          model);
          break;
-         
+
        case model_internal_record:
          record = parse_function_record (file, record,
                                          &model->internals,
-                                         NULL,
-                                         1/*is internal*/,
+                                         NULL, 1 /*is internal */ ,
                                          model);
          break;
-         
+
        case model_function_record:
          record = parse_function_record (file, record,
                                          &model->functions,
-                                         NULL,
-                                         0/*is internal*/,
+                                         NULL, 0 /*is internal */ ,
                                          model);
          break;
-         
-       case insn_record: /* instruction records */
+
+       case insn_record:       /* instruction records */
          {
            insn_entry *new_insn;
            char *format;
            /* parse the instruction */
            if (record->nr_fields < nr_insn_fields)
-             error (record->line, "Incorrect nr of fields for insn record\n");
+             error (record->line,
+                    "Incorrect nr of fields for insn record\n");
            new_insn = ZALLOC (insn_entry);
            new_insn->line = record->line;
            filter_parse (&new_insn->flags,
                          record->field[record_filter_flags_field]);
            /* save the format field.  Can't parse it until after the
-               filter-out checks.  Could be filtered out because the
-               format is invalid */
+              filter-out checks.  Could be filtered out because the
+              format is invalid */
            format = record->field[insn_word_field];
            new_insn->format_name = record->field[insn_format_name_field];
            if (options.format_name_filter != NULL
                && !filter_is_member (options.format_name_filter,
                                      new_insn->format_name))
-             error (new_insn->line, "Unreconized instruction format name `%s'\n",
+             error (new_insn->line,
+                    "Unreconized instruction format name `%s'\n",
                     new_insn->format_name);
            filter_parse (&new_insn->options,
                          record->field[insn_options_field]);
@@ -1210,12 +1209,14 @@ load_insn_table (char *file_name,
            record = table_read (file);
            /* Parse any model/assember records */
            new_insn->nr_models = model->nr_models;
-           new_insn->model = NZALLOC (insn_model_entry*, model->nr_models + 1);
+           new_insn->model =
+             NZALLOC (insn_model_entry *, model->nr_models + 1);
            while (record != NULL)
              {
                if (record_prefix_is (record, '*', nr_insn_model_fields))
                  parse_insn_model_record (file, record, new_insn, model);
-               else if (record_prefix_is (record, '"', nr_insn_mnemonic_fields))
+               else
+                 if (record_prefix_is (record, '"', nr_insn_mnemonic_fields))
                  parse_insn_mnemonic_record (file, record, new_insn);
                else
                  break;
@@ -1244,8 +1245,8 @@ load_insn_table (char *file_name,
                                           new_insn->processors))
              {
                /* only discard an instruction based in the processor
-                   model when both the instruction and the options are
-                   nonempty */
+                  model when both the instruction and the options are
+                  nonempty */
                if (options.warn.discard)
                  notify (new_insn->line,
                          "Discarding instruction %s (processor-model)\n",
@@ -1262,7 +1263,7 @@ load_insn_table (char *file_name,
                  last = &(*last)->next;
                *last = new_insn;
                /* update global isa counters */
-               isa->nr_insns ++;
+               isa->nr_insns++;
                if (isa->max_nr_words < new_insn->nr_words)
                  isa->max_nr_words = new_insn->nr_words;
                filter_add (&isa->flags, new_insn->flags);
@@ -1270,7 +1271,7 @@ load_insn_table (char *file_name,
              }
            break;
          }
-      
+
        case define_record:
          record = parse_macro_record (file, record);
          break;
@@ -1287,8 +1288,7 @@ load_insn_table (char *file_name,
 
 
 void
-print_insn_words (lf *file,
-                 insn_entry *insn)
+print_insn_words (lf *file, insn_entry * insn)
 {
   insn_word_entry *word = insn->words;
   if (word != NULL)
@@ -1301,7 +1301,8 @@ print_insn_words (lf *file,
              if (options.insn_specifying_widths)
                lf_printf (file, "%d.", field->width);
              else
-               lf_printf (file, "%d.", i2target (options.hi_bit_nr, field->first));
+               lf_printf (file, "%d.",
+                          i2target (options.hi_bit_nr, field->first));
              switch (field->type)
                {
                case insn_field_invalid:
@@ -1332,14 +1333,13 @@ print_insn_words (lf *file,
        }
     }
 }
+\f
 
 
-\f
 void
 function_entry_traverse (lf *file,
-                        function_entry *functions,
-                        function_entry_handler *handler,
-                        void *data)
+                        function_entry * functions,
+                        function_entry_handler * handler, void *data)
 {
   function_entry *function;
   for (function = functions; function != NULL; function = function->next)
@@ -1351,8 +1351,7 @@ function_entry_traverse (lf *file,
 void
 insn_table_traverse_insn (lf *file,
                          insn_table *isa,
-                         insn_entry_handler *handler,
-                         void *data)
+                         insn_entry_handler * handler, void *data)
 {
   insn_entry *insn;
   for (insn = isa->insns; insn != NULL; insn = insn->next)
@@ -1360,13 +1359,11 @@ insn_table_traverse_insn (lf *file,
       handler (file, isa, insn, data);
     }
 }
-
 \f
+
 static void
 dump_function_entry (lf *file,
-                    char *prefix,
-                    function_entry *entry,
-                    char *suffix)
+                    char *prefix, function_entry * entry, char *suffix)
 {
   lf_printf (file, "%s(function_entry *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1385,9 +1382,7 @@ dump_function_entry (lf *file,
 
 static void
 dump_function_entries (lf *file,
-                      char *prefix,
-                      function_entry *entry,
-                      char *suffix)
+                      char *prefix, function_entry * entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1405,26 +1400,27 @@ cache_entry_type_to_str (cache_entry_type type)
 {
   switch (type)
     {
-    case scratch_value: return "scratch";
-    case cache_value: return "cache";
-    case compute_value: return "compute";
+    case scratch_value:
+      return "scratch";
+    case cache_value:
+      return "cache";
+    case compute_value:
+      return "compute";
     }
   ERROR ("Bad switch");
   return 0;
 }
 
 static void
-dump_cache_entry (lf *file,
-                 char *prefix,
-                 cache_entry *entry,
-                 char *suffix)
+dump_cache_entry (lf *file, char *prefix, cache_entry *entry, char *suffix)
 {
   lf_printf (file, "%s(cache_entry *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
     {
       dump_line_ref (file, "\n(line ", entry->line, ")");
       dump_filter (file, "\n(flags ", entry->flags, ")");
-      lf_printf (file, "\n(entry_type \"%s\")", cache_entry_type_to_str (entry->entry_type));
+      lf_printf (file, "\n(entry_type \"%s\")",
+                cache_entry_type_to_str (entry->entry_type));
       lf_printf (file, "\n(name \"%s\")", entry->name);
       dump_filter (file, "\n(original_fields ", entry->original_fields, ")");
       lf_printf (file, "\n(type \"%s\")", entry->type);
@@ -1435,10 +1431,7 @@ dump_cache_entry (lf *file,
 }
 
 void
-dump_cache_entries (lf *file,
-                   char *prefix,
-                   cache_entry *entry,
-                   char *suffix)
+dump_cache_entries (lf *file, char *prefix, cache_entry *entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1452,10 +1445,7 @@ dump_cache_entries (lf *file,
 }
 
 static void
-dump_model_data (lf *file,
-                char *prefix,
-                model_data *entry,
-                char *suffix)
+dump_model_data (lf *file, char *prefix, model_data *entry, char *suffix)
 {
   lf_printf (file, "%s(model_data *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1472,10 +1462,7 @@ dump_model_data (lf *file,
 }
 
 static void
-dump_model_datas (lf *file,
-                 char *prefix,
-                 model_data *entry,
-                 char *suffix)
+dump_model_datas (lf *file, char *prefix, model_data *entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1489,10 +1476,7 @@ dump_model_datas (lf *file,
 }
 
 static void
-dump_model_entry (lf *file,
-                 char *prefix,
-                 model_entry *entry,
-                 char *suffix)
+dump_model_entry (lf *file, char *prefix, model_entry *entry, char *suffix)
 {
   lf_printf (file, "%s(model_entry *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1510,10 +1494,7 @@ dump_model_entry (lf *file,
 }
 
 static void
-dump_model_entries (lf *file,
-                   char *prefix,
-                   model_entry *entry,
-                   char *suffix)
+dump_model_entries (lf *file, char *prefix, model_entry *entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1528,10 +1509,7 @@ dump_model_entries (lf *file,
 
 
 static void
-dump_model_table (lf *file,
-                 char *prefix,
-                 model_table *entry,
-                 char *suffix)
+dump_model_table (lf *file, char *prefix, model_table *entry, char *suffix)
 {
   lf_printf (file, "%s(model_table *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1556,11 +1534,17 @@ insn_field_type_to_str (insn_field_type type)
 {
   switch (type)
     {
-    case insn_field_invalid: ASSERT (0); return "(invalid)";
-    case insn_field_int: return "int";
-    case insn_field_reserved: return "reserved";
-    case insn_field_wild: return "wild";
-    case insn_field_string: return "string";
+    case insn_field_invalid:
+      ASSERT (0);
+      return "(invalid)";
+    case insn_field_int:
+      return "int";
+    case insn_field_reserved:
+      return "reserved";
+    case insn_field_wild:
+      return "wild";
+    case insn_field_string:
+      return "string";
     }
   ERROR ("bad switch");
   return 0;
@@ -1568,9 +1552,7 @@ insn_field_type_to_str (insn_field_type type)
 
 void
 dump_insn_field (lf *file,
-                char *prefix,
-                insn_field_entry *field,
-                char *suffix)
+                char *prefix, insn_field_entry *field, char *suffix)
 {
   char *sep = " ";
   lf_printf (file, "%s(insn_field_entry *) 0x%lx", prefix, (long) field);
@@ -1580,7 +1562,8 @@ dump_insn_field (lf *file,
       lf_printf (file, "%s(first %d)", sep, field->first);
       lf_printf (file, "%s(last %d)", sep, field->last);
       lf_printf (file, "%s(width %d)", sep, field->width);
-      lf_printf (file, "%s(type %s)", sep, insn_field_type_to_str (field->type));
+      lf_printf (file, "%s(type %s)", sep,
+                insn_field_type_to_str (field->type));
       switch (field->type)
        {
        case insn_field_invalid:
@@ -1608,9 +1591,7 @@ dump_insn_field (lf *file,
 
 void
 dump_insn_word_entry (lf *file,
-                     char *prefix,
-                     insn_word_entry *word,
-                     char *suffix)
+                     char *prefix, insn_word_entry *word, char *suffix)
 {
   lf_printf (file, "%s(insn_word_entry *) 0x%lx", prefix, (long) word);
   if (word != NULL)
@@ -1623,7 +1604,8 @@ dump_insn_word_entry (lf *file,
       lf_printf (file, "\n(bit");
       for (i = 0; i < options.insn_bit_size; i++)
        lf_printf (file, "\n ((value %d) (mask %d) (field 0x%lx))",
-                  word->bit[i]->value, word->bit[i]->mask, (long) word->bit[i]->field);
+                  word->bit[i]->value, word->bit[i]->mask,
+                  (long) word->bit[i]->field);
       lf_printf (file, ")");
       for (field = word->first; field != NULL; field = field->next)
        dump_insn_field (file, "\n(", field, ")");
@@ -1636,9 +1618,7 @@ dump_insn_word_entry (lf *file,
 
 static void
 dump_insn_word_entries (lf *file,
-                       char *prefix,
-                       insn_word_entry *word,
-                       char *suffix)
+                       char *prefix, insn_word_entry *word, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (word != NULL)
@@ -1651,9 +1631,7 @@ dump_insn_word_entries (lf *file,
 
 static void
 dump_insn_model_entry (lf *file,
-                      char *prefix,
-                      insn_model_entry *model,
-                      char *suffix)
+                      char *prefix, insn_model_entry *model, char *suffix)
 {
   lf_printf (file, "%s(insn_model_entry *) 0x%lx", prefix, (long) model);
   if (model != NULL)
@@ -1673,9 +1651,7 @@ dump_insn_model_entry (lf *file,
 
 static void
 dump_insn_model_entries (lf *file,
-                        char *prefix,
-                        insn_model_entry *model,
-                        char *suffix)
+                        char *prefix, insn_model_entry *model, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (model != NULL)
@@ -1690,10 +1666,10 @@ dump_insn_model_entries (lf *file,
 static void
 dump_insn_mnemonic_entry (lf *file,
                          char *prefix,
-                         insn_mnemonic_entry *mnemonic,
-                         char *suffix)
+                         insn_mnemonic_entry *mnemonic, char *suffix)
 {
-  lf_printf (file, "%s(insn_mnemonic_entry *) 0x%lx", prefix, (long) mnemonic);
+  lf_printf (file, "%s(insn_mnemonic_entry *) 0x%lx", prefix,
+            (long) mnemonic);
   if (mnemonic != NULL)
     {
       lf_indent (file, +1);
@@ -1712,8 +1688,7 @@ dump_insn_mnemonic_entry (lf *file,
 static void
 dump_insn_mnemonic_entries (lf *file,
                            char *prefix,
-                           insn_mnemonic_entry *mnemonic,
-                           char *suffix)
+                           insn_mnemonic_entry *mnemonic, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   while (mnemonic != NULL)
@@ -1725,10 +1700,7 @@ dump_insn_mnemonic_entries (lf *file,
 }
 
 void
-dump_insn_entry (lf *file,
-                char *prefix,
-                insn_entry *entry,
-                char *suffix)
+dump_insn_entry (lf *file, char *prefix, insn_entry * entry, char *suffix)
 {
   lf_printf (file, "%s(insn_entry *) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -1754,19 +1726,17 @@ dump_insn_entry (lf *file,
        lf_printf (file, " 0x%lx", (long) entry->model[i]);
       lf_printf (file, ")");
       dump_filter (file, "\n(processors ", entry->processors, ")");
-      dump_insn_mnemonic_entries (file, "\n(mnemonics ", entry->mnemonics, ")");
+      dump_insn_mnemonic_entries (file, "\n(mnemonics ", entry->mnemonics,
+                                 ")");
       dump_table_entry (file, "\n(code ", entry->code, ")");
       lf_printf (file, "\n(next 0x%lx)", (long) entry->next);
       lf_indent (file, -1);
-  }
+    }
   lf_printf (file, "%s", suffix);
 }
 
 static void
-dump_insn_entries (lf *file,
-                  char *prefix,
-                  insn_entry *entry,
-                  char *suffix)
+dump_insn_entries (lf *file, char *prefix, insn_entry * entry, char *suffix)
 {
   lf_printf (file, "%s", prefix);
   lf_indent (file, +1);
@@ -1782,10 +1752,7 @@ dump_insn_entries (lf *file,
 
 
 void
-dump_insn_table (lf *file,
-                char *prefix,
-                insn_table *isa,
-                char *suffix)
+dump_insn_table (lf *file, char *prefix, insn_table *isa, char *suffix)
 {
   lf_printf (file, "%s(insn_table *) 0x%lx", prefix, (long) isa);
   if (isa != NULL)
index a8dd456612c42f541579325e79d72ffd4cc6dc6f..08a6bd09413744116eae021aed9f94f8ebaf6769 100644 (file)
@@ -38,7 +38,8 @@ typedef unsigned64 insn_uint;
    
  */
 
-enum {
+enum
+{
   record_type_field = 1,
   old_record_type_field = 2,
   record_filter_flags_field = 2,
@@ -60,7 +61,8 @@ enum {
 
    */
 
-enum {
+enum
+{
   include_filename_field = 4,
   nr_include_fields,
 };
@@ -99,10 +101,11 @@ enum {
        ;
 
 
-   These update the global options structure. */       
+   These update the global options structure. */
 
 
-enum {
+enum
+{
   option_name_field = 4,
   option_value_field,
   nr_option_fields,
@@ -129,7 +132,8 @@ enum {
    */
 
 
-enum {
+enum
+{
   macro_name_field = 4,
   macro_args_field,
   macro_expr_field,
@@ -177,29 +181,33 @@ enum {
 
    */
 
-enum {
+enum
+{
   function_typedef_field = 4,
   function_name_field,
   function_param_field,
   nr_function_fields,
 };
 
-enum {
+enum
+{
   function_model_name_field = 0,
   nr_function_model_fields = 1,
 };
 
-enum {
+enum
+{
   old_function_typedef_field = 0,
   old_function_type_field = 2,
   old_function_name_field = 4,
   old_function_param_field = 5,
-  nr_old_function_fields = 5, /* parameter-list is optional */
+  nr_old_function_fields = 5,  /* parameter-list is optional */
 };
 
 
 typedef struct _function_entry function_entry;
-struct _function_entry {
+struct _function_entry
+{
   line_ref *line;
   filter *flags;
   filter *models;
@@ -213,15 +221,11 @@ struct _function_entry {
 
 
 typedef void function_entry_handler
-(lf *file,
- function_entry *function,
- void *data);
+  (lf *file, function_entry * function, void *data);
 
 extern void function_entry_traverse
-(lf *file,
- function_entry *functions,
- function_entry_handler *handler,
- void *data);
+  (lf *file,
+   function_entry * functions, function_entry_handler * handler, void *data);
 
 
 /* cache-macro:
@@ -258,7 +262,8 @@ extern void function_entry_traverse
 
    */
 
-enum {
+enum
+{
   cache_typedef_field = 4,
   cache_name_field,
   cache_original_fields_field,
@@ -266,14 +271,17 @@ enum {
   nr_cache_fields,
 };
 
-typedef enum {
+typedef enum
+{
   scratch_value,
   cache_value,
   compute_value,
-} cache_entry_type;
+}
+cache_entry_type;
 
 typedef struct _cache_entry cache_entry;
-struct _cache_entry {
+struct _cache_entry
+{
   line_ref *line;
   filter *flags;
   filter *models;
@@ -332,7 +340,8 @@ struct _cache_entry {
 
  */
 
-enum {
+enum
+{
   nr_model_macro_fields = 4,
   nr_model_data_fields = 4,
   nr_model_static_fields = nr_function_fields,
@@ -341,7 +350,8 @@ enum {
 };
 
 typedef struct _model_data model_data;
-struct _model_data {
+struct _model_data
+{
   line_ref *line;
   filter *flags;
   table_entry *entry;
@@ -349,7 +359,8 @@ struct _model_data {
   model_data *next;
 };
 
-enum {
+enum
+{
   model_name_field = 4,
   model_full_name_field,
   model_unit_data_field,
@@ -357,7 +368,8 @@ enum {
 };
 
 typedef struct _model_entry model_entry;
-struct _model_entry {
+struct _model_entry
+{
   line_ref *line;
   filter *flags;
   char *name;
@@ -368,7 +380,8 @@ struct _model_entry {
 
 
 typedef struct _model_table model_table;
-struct _model_table {
+struct _model_table
+{
   filter *processors;
   int nr_models;
   model_entry *models;
@@ -410,16 +423,21 @@ struct _model_table {
 
 */
 
-typedef enum _insn_field_cond_type {
+typedef enum _insn_field_cond_type
+{
   insn_field_cond_value,
   insn_field_cond_field,
-} insn_field_cond_type;
-typedef enum _insn_field_cond_test {
+}
+insn_field_cond_type;
+typedef enum _insn_field_cond_test
+{
   insn_field_cond_eq,
   insn_field_cond_ne,
-} insn_field_cond_test;
+}
+insn_field_cond_test;
 typedef struct _insn_field_cond insn_field_cond;
-struct _insn_field_cond {
+struct _insn_field_cond
+{
   insn_field_cond_type type;
   insn_field_cond_test test;
   insn_uint value;
@@ -429,16 +447,19 @@ struct _insn_field_cond {
 };
 
 
-typedef enum _insn_field_type {
+typedef enum _insn_field_type
+{
   insn_field_invalid,
   insn_field_int,
   insn_field_reserved,
   insn_field_wild,
   insn_field_string,
-} insn_field_type;
+}
+insn_field_type;
 
 typedef struct _insn_field_entry insn_field_entry;
-struct _insn_field_entry {
+struct _insn_field_entry
+{
   int first;
   int last;
   int width;
@@ -453,7 +474,8 @@ struct _insn_field_entry {
 };
 
 typedef struct _insn_bit_entry insn_bit_entry;
-struct _insn_bit_entry {
+struct _insn_bit_entry
+{
   int value;
   int mask;
   insn_field_entry *field;
@@ -462,10 +484,11 @@ struct _insn_bit_entry {
 
 
 
-typedef struct _insn_entry insn_entry; /* forward */
+typedef struct _insn_entry insn_entry; /* forward */
 
 typedef struct _insn_word_entry insn_word_entry;
-struct _insn_word_entry {
+struct _insn_word_entry
+{
   /* list of sub-fields making up the instruction.  bit provides
      faster access to the field data for bit N.  */
   insn_field_entry *first;
@@ -499,14 +522,16 @@ struct _insn_word_entry {
 
    */
 
-enum {
+enum
+{
   insn_model_name_field = 0,
   insn_model_unit_data_field = 1,
   nr_insn_model_fields = 1,
 };
 
 typedef struct _insn_model_entry insn_model_entry;
-struct _insn_model_entry {
+struct _insn_model_entry
+{
   line_ref *line;
   insn_entry *insn;
   filter *names;
@@ -554,14 +579,16 @@ struct _insn_model_entry {
 
    */
 
-enum {
+enum
+{
   insn_mnemonic_format_field = 0,
   insn_mnemonic_condition_field = 1,
   nr_insn_mnemonic_fields = 1,
 };
 
 typedef struct _insn_mnemonic_entry insn_mnemonic_entry;
-struct _insn_mnemonic_entry {
+struct _insn_mnemonic_entry
+{
   line_ref *line;
   insn_entry *insn;
   char *format;
@@ -586,7 +613,8 @@ struct _insn_mnemonic_entry {
 
  */
 
-enum {
+enum
+{
   insn_word_field = 0,
   insn_format_name_field = 1,
   insn_filter_flags_field = 2,
@@ -597,9 +625,10 @@ enum {
 
 
 /* typedef struct _insn_entry insn_entry; */
-struct _insn_entry {
+struct _insn_entry
+{
   line_ref *line;
-  filter *flags; /* filtered by options.filters */
+  filter *flags;               /* filtered by options.filters */
   char *format_name;
   filter *options;
   char *name;
@@ -630,7 +659,8 @@ struct _insn_entry {
  */
 
 typedef struct _insn_table insn_table;
-struct _insn_table {
+struct _insn_table
+{
   cache_entry *caches;
   int max_nr_words;
   int nr_insns;
@@ -642,65 +672,37 @@ struct _insn_table {
   filter *flags;
 };
 
-extern insn_table *load_insn_table
-(char *file_name,
- cache_entry *cache);
+extern insn_table *load_insn_table (char *file_name, cache_entry *cache);
 
 typedef void insn_entry_handler
-(lf *file,
- insn_table *isa,
- insn_entry *insn,
- void *data);
+  (lf *file, insn_table *isa, insn_entry * insn, void *data);
 
 extern void insn_table_traverse_insn
-(lf *file,
- insn_table *isa,
- insn_entry_handler *handler,
- void *data);
+  (lf *file, insn_table *isa, insn_entry_handler * handler, void *data);
 
 
 
 /* Printing */
 
-extern void print_insn_words
-(lf *file,
- insn_entry *insn);
+extern void print_insn_words (lf *file, insn_entry * insn);
 
 
 
 /* Debugging */
 
 void
-dump_insn_field
-(lf *file,
- char *prefix,
- insn_field_entry *field,
- char *suffix);
+  dump_insn_field
+  (lf *file, char *prefix, insn_field_entry *field, char *suffix);
 
 void
-dump_insn_word_entry
-(lf *file,
- char *prefix,
- insn_word_entry *word,
- char *suffix);
+  dump_insn_word_entry
+  (lf *file, char *prefix, insn_word_entry *word, char *suffix);
 
 void
-dump_insn_entry
-(lf *file,
- char *prefix,
- insn_entry *insn,
- char *suffix);
+  dump_insn_entry (lf *file, char *prefix, insn_entry * insn, char *suffix);
 
 void
-dump_cache_entries
-(lf *file,
- char *prefix,
- cache_entry *entry,
- char *suffix);
+  dump_cache_entries
+  (lf *file, char *prefix, cache_entry *entry, char *suffix);
 
-void
-dump_insn_table
-(lf *file,
- char *prefix,
- insn_table *isa,
- char *suffix);
+void dump_insn_table (lf *file, char *prefix, insn_table *isa, char *suffix);
index 5364f41113c903765c96e37fe41ab55a37ca4d5e..42985f2a887f3dcb46307265a1b0abcaf3ba96d7 100644 (file)
 #endif
 #endif
 
-struct _lf {
+struct _lf
+{
   FILE *stream;
-  int line_nr; /* nr complete lines written, curr line is line_nr+1 */
+  int line_nr;                 /* nr complete lines written, curr line is line_nr+1 */
   int indent;
   int line_blank;
   const char *name;
@@ -59,70 +60,73 @@ lf *
 lf_open (char *name,
         char *real_name,
         lf_file_references references,
-        lf_file_type type,
-        const char *program)
+        lf_file_type type, const char *program)
 {
   /* create a file object */
-  lf *new_lf = ZALLOC(lf);
+  lf *new_lf = ZALLOC (lf);
   ASSERT (new_lf != NULL);
   new_lf->references = references;
   new_lf->type = type;
   new_lf->name = (real_name == NULL ? name : real_name);
   new_lf->program = program;
   /* attach to stdout if pipe */
-  if (!strcmp(name, "-")) {
-    new_lf->stream = stdout;
-  }
-  else {
-    /* create a new file */
-    new_lf->stream = fopen(name, "w");
-    if (new_lf->stream == NULL) {
-      perror(name);
-      exit(1);
+  if (!strcmp (name, "-"))
+    {
+      new_lf->stream = stdout;
+    }
+  else
+    {
+      /* create a new file */
+      new_lf->stream = fopen (name, "w");
+      if (new_lf->stream == NULL)
+       {
+         perror (name);
+         exit (1);
+       }
     }
-  }
   return new_lf;
 }
 
 
 void
-lf_close(lf *file)
+lf_close (lf *file)
 {
-  if (file->stream != stdout) {
-    if (fclose(file->stream)) {
-      perror("lf_close.fclose");
-      exit(1);
+  if (file->stream != stdout)
+    {
+      if (fclose (file->stream))
+       {
+         perror ("lf_close.fclose");
+         exit (1);
+       }
+      free (file);
     }
-    free(file);
-  }
 }
 
 
 int
-lf_putchr(lf *file,
-         const char chr)
+lf_putchr (lf *file, const char chr)
 {
   int nr = 0;
-  if (chr == '\n') {
-    file->line_nr += 1;
-    file->line_blank = 1;
-  }
-  else if (file->line_blank) {
-    int pad;
-    for (pad = file->indent; pad > 0; pad--)
-      putc(' ', file->stream);
-    nr += file->indent;
-    file->line_blank = 0;
-  }
-  putc(chr, file->stream);
+  if (chr == '\n')
+    {
+      file->line_nr += 1;
+      file->line_blank = 1;
+    }
+  else if (file->line_blank)
+    {
+      int pad;
+      for (pad = file->indent; pad > 0; pad--)
+       putc (' ', file->stream);
+      nr += file->indent;
+      file->line_blank = 0;
+    }
+  putc (chr, file->stream);
   nr += 1;
   return nr;
 }
 
 int
-lf_write (lf *file,
-         const char *string,
-         int strlen_string)
+lf_write (lf *file, const char *string, int strlen_string)
 {
   int nr = 0;
   int i;
@@ -133,63 +137,63 @@ lf_write (lf *file,
 
 
 void
-lf_indent_suppress(lf *file)
+lf_indent_suppress (lf *file)
 {
   file->line_blank = 0;
 }
 
 
 int
-lf_putstr(lf *file,
-         const char *string)
+lf_putstr (lf *file, const char *string)
 {
   int nr = 0;
   const char *chp;
-  if (string != NULL) {
-    for (chp = string; *chp != '\0'; chp++) {
-      nr += lf_putchr(file, *chp);
+  if (string != NULL)
+    {
+      for (chp = string; *chp != '\0'; chp++)
+       {
+         nr += lf_putchr (file, *chp);
+       }
     }
-  }
   return nr;
 }
 
 static int
-do_lf_putunsigned(lf *file,
-             unsigned u)
+do_lf_putunsigned (lf *file, unsigned u)
 {
   int nr = 0;
-  if (u > 0) {
-    nr += do_lf_putunsigned(file, u / 10);
-    nr += lf_putchr(file, (u % 10) + '0');
-  }
+  if (u > 0)
+    {
+      nr += do_lf_putunsigned (file, u / 10);
+      nr += lf_putchr (file, (u % 10) + '0');
+    }
   return nr;
 }
 
 
 int
-lf_putint(lf *file,
-         int decimal)
+lf_putint (lf *file, int decimal)
 {
   int nr = 0;
   if (decimal == 0)
-    nr += lf_putchr(file, '0');
-  else if (decimal < 0) {
-    nr += lf_putchr(file, '-');
-    nr += do_lf_putunsigned(file, -decimal);
-  }
-  else if (decimal > 0) {
-    nr += do_lf_putunsigned(file, decimal);
-  }
+    nr += lf_putchr (file, '0');
+  else if (decimal < 0)
+    {
+      nr += lf_putchr (file, '-');
+      nr += do_lf_putunsigned (file, -decimal);
+    }
+  else if (decimal > 0)
+    {
+      nr += do_lf_putunsigned (file, decimal);
+    }
   else
-    ASSERT(0);
+    ASSERT (0);
   return nr;
 }
 
 
 int
-lf_printf (lf *file,
-          const char *fmt,
-          ...)
+lf_printf (lf *file, const char *fmt, ...)
 {
   int nr = 0;
   char buf[1024];
@@ -200,28 +204,25 @@ lf_printf (lf *file,
   /* FIXME - this is really stuffed but so is vsprintf() on a sun! */
   ASSERT (strlen (buf) < sizeof (buf));
   nr += lf_putstr (file, buf);
-  va_end(ap);
+  va_end (ap);
   return nr;
 }
 
 
 int
-lf_print__line_ref (lf *file,
-                   line_ref *line)
+lf_print__line_ref (lf *file, line_ref *line)
 {
   return lf_print__external_ref (file, line->line_nr, line->file_name);
 }
 
 int
-lf_print__external_ref (lf *file,
-                       int line_nr,
-                       const char *file_name)
+lf_print__external_ref (lf *file, int line_nr, const char *file_name)
 {
   int nr = 0;
   switch (file->references)
     {
     case lf_include_references:
-      lf_indent_suppress(file);
+      lf_indent_suppress (file);
       nr += lf_putstr (file, "#line ");
       nr += lf_putint (file, line_nr);
       nr += lf_putstr (file, " \"");
@@ -243,7 +244,7 @@ int
 lf_print__internal_ref (lf *file)
 {
   int nr = 0;
-  nr += lf_print__external_ref (file, file->line_nr+2, file->name);
+  nr += lf_print__external_ref (file, file->line_nr + 2, file->name);
   /* line_nr == last_line, want to number from next */
   return nr;
 }
@@ -259,10 +260,11 @@ int
 lf_print__gnu_copyleft (lf *file)
 {
   int nr = 0;
-  switch (file->type) {
-  case lf_is_c:
-  case lf_is_h:
-    nr += lf_printf(file, "\
+  switch (file->type)
+    {
+    case lf_is_c:
+    case lf_is_h:
+      nr += lf_printf (file, "\
 /* This file is part of GDB.\n\
 \n\
    Copyright 2002 Free Software Foundation, Inc.\n\
@@ -285,110 +287,115 @@ lf_print__gnu_copyleft (lf *file)
    --\n\
 \n\
    This file was generated by the program %s */\n\
-", filter_filename(file->program));
-    break;
-  default:
-    ASSERT(0);
-    break;
-  }
+", filter_filename (file->program));
+      break;
+    default:
+      ASSERT (0);
+      break;
+    }
   return nr;
 }
 
 
 int
-lf_putbin(lf *file, int decimal, int width)
+lf_putbin (lf *file, int decimal, int width)
 {
   int nr = 0;
   int bit;
-  ASSERT(width > 0);
-  for (bit = 1 << (width-1); bit != 0; bit >>= 1) {
-    if (decimal & bit)
-      nr += lf_putchr(file, '1');
-    else
-      nr += lf_putchr(file, '0');
-  }
+  ASSERT (width > 0);
+  for (bit = 1 << (width - 1); bit != 0; bit >>= 1)
+    {
+      if (decimal & bit)
+       nr += lf_putchr (file, '1');
+      else
+       nr += lf_putchr (file, '0');
+    }
   return nr;
 }
 
 int
-lf_print__this_file_is_empty(lf *file,
-                            const char *reason)
+lf_print__this_file_is_empty (lf *file, const char *reason)
 {
   int nr = 0;
-  switch (file->type) {
-  case lf_is_c:
-  case lf_is_h:
-    nr += lf_printf (file,
-                   "/* This generated file (%s) is intentionally left blank",
-                   file->name);
-    if (reason != NULL)
-      nr += lf_printf (file, " - %s", reason);
-    nr += lf_printf (file, " */\n");
-    break;
-  default:
-    ERROR ("Bad switch");
-  }
+  switch (file->type)
+    {
+    case lf_is_c:
+    case lf_is_h:
+      nr += lf_printf (file,
+                      "/* This generated file (%s) is intentionally left blank",
+                      file->name);
+      if (reason != NULL)
+       nr += lf_printf (file, " - %s", reason);
+      nr += lf_printf (file, " */\n");
+      break;
+    default:
+      ERROR ("Bad switch");
+    }
   return nr;
 }
 
 int
-lf_print__ucase_filename(lf *file)
+lf_print__ucase_filename (lf *file)
 {
   int nr = 0;
   const char *chp = file->name;
-  while (*chp != '\0') {
-    char ch = *chp;
-    if (islower(ch)) {
-      nr += lf_putchr(file, toupper(ch));
+  while (*chp != '\0')
+    {
+      char ch = *chp;
+      if (islower (ch))
+       {
+         nr += lf_putchr (file, toupper (ch));
+       }
+      else if (ch == '.')
+       nr += lf_putchr (file, '_');
+      else
+       nr += lf_putchr (file, ch);
+      chp++;
     }
-    else if (ch == '.')
-      nr += lf_putchr(file, '_');
-    else
-      nr += lf_putchr(file, ch);
-    chp++;
-  }
   return nr;
 }
 
 int
-lf_print__file_start(lf *file)
+lf_print__file_start (lf *file)
 {
   int nr = 0;
-  switch (file->type) {
-  case lf_is_h:
-  case lf_is_c:
-    nr += lf_print__gnu_copyleft(file);
-    nr += lf_printf(file, "\n");
-    nr += lf_printf(file, "#ifndef ");
-    nr += lf_print__ucase_filename(file);
-    nr += lf_printf(file, "\n");
-    nr += lf_printf(file, "#define ");
-    nr += lf_print__ucase_filename(file);
-    nr += lf_printf(file, "\n");
-    nr += lf_printf(file, "\n");
-    break;
-  default:
-    ASSERT(0);
-  }
+  switch (file->type)
+    {
+    case lf_is_h:
+    case lf_is_c:
+      nr += lf_print__gnu_copyleft (file);
+      nr += lf_printf (file, "\n");
+      nr += lf_printf (file, "#ifndef ");
+      nr += lf_print__ucase_filename (file);
+      nr += lf_printf (file, "\n");
+      nr += lf_printf (file, "#define ");
+      nr += lf_print__ucase_filename (file);
+      nr += lf_printf (file, "\n");
+      nr += lf_printf (file, "\n");
+      break;
+    default:
+      ASSERT (0);
+    }
   return nr;
 }
 
 
 int
-lf_print__file_finish(lf *file)
+lf_print__file_finish (lf *file)
 {
   int nr = 0;
-  switch (file->type) {
-  case lf_is_h:
-  case lf_is_c:
-    nr += lf_printf(file, "\n");
-    nr += lf_printf(file, "#endif /* _");
-    nr += lf_print__ucase_filename(file);
-    nr += lf_printf(file, "_*/\n");
-    break;
-  default:
-    ASSERT(0);
-  }
+  switch (file->type)
+    {
+    case lf_is_h:
+    case lf_is_c:
+      nr += lf_printf (file, "\n");
+      nr += lf_printf (file, "#endif /* _");
+      nr += lf_print__ucase_filename (file);
+      nr += lf_printf (file, "_*/\n");
+      break;
+    default:
+      ASSERT (0);
+    }
   return nr;
 }
 
@@ -396,8 +403,7 @@ lf_print__file_finish(lf *file)
 int
 lf_print__function_type (lf *file,
                         const char *type,
-                        const char *prefix,
-                        const char *trailing_space)
+                        const char *prefix, const char *trailing_space)
 {
   int nr = 0;
   nr += lf_printf (file, "%s\\\n(%s)", prefix, type);
@@ -408,7 +414,7 @@ lf_print__function_type (lf *file,
 
 int
 lf_print__function_type_function (lf *file,
-                                 print_function *print_type,
+                                 print_function * print_type,
                                  const char *prefix,
                                  const char *trailing_space)
 {
@@ -420,4 +426,3 @@ lf_print__function_type_function (lf *file,
     nr += lf_printf (file, "%s", trailing_space);
   return nr;
 }
-
index ff79558a5871a58570f65e495448ffc1740e6327..7eb4ee4024ab8095dd73e01ff76a52c373e49047 100644 (file)
 
 typedef struct _lf lf;
 
-typedef enum {
+typedef enum
+{
   lf_is_h,
   lf_is_c,
   lf_is_text,
-} lf_file_type;
+}
+lf_file_type;
 
 
-typedef enum {
+typedef enum
+{
   lf_include_references,
   lf_omit_references,
-} lf_file_references;
+}
+lf_file_references;
 
 
 /* Open the file NAME for writing ("-" for stdout).  Use REAL_NAME
@@ -47,44 +51,28 @@ typedef enum {
    the print messages below. */
 
 extern lf *lf_open
-(char *name,
- char *real_name,
- lf_file_references file_references,
- lf_file_type type,
- const char *program);
+  (char *name,
+   char *real_name,
+   lf_file_references file_references,
+   lf_file_type type, const char *program);
 
-extern void lf_close
-(lf *file);
+extern void lf_close (lf *file);
 
 
 /* Basic output functions */
 
-extern int lf_write
-(lf *file,
- const char *string,
- int len);
+extern int lf_write (lf *file, const char *string, int len);
 
-extern int lf_putchr
-(lf *file,
- const char ch);
+extern int lf_putchr (lf *file, const char ch);
 
-extern int lf_putstr
-(lf *file,
- const char *string);
+extern int lf_putstr (lf *file, const char *string);
 
-extern int lf_putint
-(lf *file,
- int decimal);
+extern int lf_putint (lf *file, int decimal);
 
-extern int lf_putbin
-(lf *file,
- int decimal,
- int width);
+extern int lf_putbin (lf *file, int decimal, int width);
 
 extern int lf_printf
-(lf *file,
- const char *fmt,
- ...) __attribute__((format(printf, 2, 3)));
+  (lf *file, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
 
 
 /* Indentation control.
@@ -92,56 +80,38 @@ extern int lf_printf
    lf_indent_suppress suppresses indentation on the next line (current
    line if that has not yet been started) */
 
-extern void lf_indent_suppress
-(lf *file);
+extern void lf_indent_suppress (lf *file);
 
-extern void lf_indent
-(lf *file,
- int delta);
+extern void lf_indent (lf *file, int delta);
 
 
 /* Print generic text: */
 
 
-extern int lf_print__gnu_copyleft
-(lf *file);
+extern int lf_print__gnu_copyleft (lf *file);
 
-extern int lf_print__file_start
-(lf *file);
+extern int lf_print__file_start (lf *file);
 
-extern int lf_print__this_file_is_empty
-(lf *file,
- const char *reason);
+extern int lf_print__this_file_is_empty (lf *file, const char *reason);
 
-extern int lf_print__file_finish
-(lf *file);
+extern int lf_print__file_finish (lf *file);
 
-extern int lf_print__internal_ref
-(lf *file);
+extern int lf_print__internal_ref (lf *file);
 
 extern int lf_print__external_ref
-(lf *file,
- int line_nr,
- const char *file_name);
+  (lf *file, int line_nr, const char *file_name);
 
-extern int lf_print__line_ref
-(lf *file,
- line_ref *line);
+extern int lf_print__line_ref (lf *file, line_ref *line);
 
-extern int lf_print__ucase_filename
-(lf *file);
+extern int lf_print__ucase_filename (lf *file);
 
 extern int lf_print__function_type
-(lf *file,
- const char *type,
- const char *prefix,
- const char *trailing_space);
+  (lf *file,
+   const char *type, const char *prefix, const char *trailing_space);
 
-typedef int print_function(lf *file);
+typedef int print_function (lf *file);
 
 extern int lf_print__function_type_function
-(lf *file,
- print_function *print_type,
- const char *prefix,
- const char *trailing_space);
-
+  (lf *file,
+   print_function * print_type,
+   const char *prefix, const char *trailing_space);
index 6283482b0d625be6b401a76b17e4a35b02fed509..c5389268fe8005fa7448252fbb586f2506f6698a 100644 (file)
@@ -46,9 +46,7 @@
    trailing '\n' */
 
 void
-error (const line_ref *line,
-       char *msg,
-       ...)
+error (const line_ref *line, char *msg, ...)
 {
   va_list ap;
   if (line != NULL)
@@ -60,9 +58,7 @@ error (const line_ref *line,
 }
 
 void
-warning (const line_ref *line,
-        char *msg,
-        ...)
+warning (const line_ref *line, char *msg, ...)
 {
   va_list ap;
   if (line != NULL)
@@ -73,25 +69,23 @@ warning (const line_ref *line,
 }
 
 void
-notify (const line_ref *line,
-       char *msg,
-       ...)
+notify (const line_ref *line, char *msg, ...)
 {
   va_list ap;
   if (line != NULL)
     fprintf (stdout, "%s %d: info: ", line->file_name, line->line_nr);
-  va_start(ap, msg);
+  va_start (ap, msg);
   vfprintf (stdout, msg, ap);
-  va_end(ap);
+  va_end (ap);
 }
 
 void *
-zalloc(long size)
+zalloc (long size)
 {
-  void *memory = malloc(size);
+  void *memory = malloc (size);
   if (memory == NULL)
     ERROR ("zalloc failed");
-  memset(memory, 0, size);
+  memset (memory, 0, size);
   return memory;
 }
 
@@ -103,16 +97,14 @@ a2i (const char *a)
   int base = 10;
   unsigned long long num = 0;
   int looping;
-  
+
   while (isspace (*a))
     a++;
-  
-  if (strcmp (a, "true") == 0
-      || strcmp (a, "TRUE") == 0)
+
+  if (strcmp (a, "true") == 0 || strcmp (a, "TRUE") == 0)
     return 1;
 
-  if (strcmp (a, "false") == 0
-      || strcmp (a, "false") == 0)
+  if (strcmp (a, "false") == 0 || strcmp (a, "false") == 0)
     return 0;
 
   if (*a == '-')
@@ -120,7 +112,7 @@ a2i (const char *a)
       neg = 1;
       a++;
     }
-  
+
   if (*a == '0')
     {
       if (a[1] == 'x' || a[1] == 'X')
@@ -136,18 +128,18 @@ a2i (const char *a)
       else
        base = 8;
     }
-  
+
   looping = 1;
   while (looping)
     {
       int ch = *a++;
-      
+
       switch (base)
        {
        default:
          looping = 0;
          break;
-         
+
        case 2:
          if (ch >= '0' && ch <= '1')
            {
@@ -158,7 +150,7 @@ a2i (const char *a)
              looping = 0;
            }
          break;
-         
+
        case 10:
          if (ch >= '0' && ch <= '9')
            {
@@ -169,7 +161,7 @@ a2i (const char *a)
              looping = 0;
            }
          break;
-         
+
        case 8:
          if (ch >= '0' && ch <= '7')
            {
@@ -180,7 +172,7 @@ a2i (const char *a)
              looping = 0;
            }
          break;
-         
+
        case 16:
          if (ch >= '0' && ch <= '9')
            {
@@ -201,26 +193,24 @@ a2i (const char *a)
          break;
        }
     }
-  
+
   if (neg)
-    num = - num;
+    num = -num;
 
   return num;
 }
 
 unsigned
-target_a2i(int ms_bit_nr,
-          const char *a)
+target_a2i (int ms_bit_nr, const char *a)
 {
   if (ms_bit_nr)
-    return (ms_bit_nr - a2i(a));
+    return (ms_bit_nr - a2i (a));
   else
-    return a2i(a);
+    return a2i (a);
 }
 
 unsigned
-i2target(int ms_bit_nr,
-        unsigned bit)
+i2target (int ms_bit_nr, unsigned bit)
 {
   if (ms_bit_nr)
     return ms_bit_nr - bit;
@@ -230,20 +220,19 @@ i2target(int ms_bit_nr,
 
 
 int
-name2i (const char *names,
-        const name_map *map)
+name2i (const char *names, const name_map * map)
 {
   const name_map *curr;
   const char *name = names;
   while (*name != '\0')
     {
       /* find our name */
-      char *end = strchr(name, ',');
+      char *end = strchr (name, ',');
       char *next;
       unsigned len;
       if (end == NULL)
        {
-         end = strchr(name, '\0');
+         end = strchr (name, '\0');
          next = end;
        }
       else
@@ -274,8 +263,7 @@ name2i (const char *names,
 }
 
 const char *
-i2name (const int i,
-        const name_map *map)
+i2name (const int i, const name_map * map)
 {
   while (map->name != NULL)
     {
index 7efb37c34e1ecae7956a6ff55c47b7ff8e0dc406..54e6c9fb2a4db36e0efa4a9681ef176964e8a28c 100644 (file)
@@ -28,7 +28,8 @@
 #include "config.h"
 
 
-enum {
+enum
+{
   default_insn_bit_size = 32,
   max_insn_bit_size = 64,
 };
@@ -42,7 +43,7 @@ enum {
 typedef long long signed64;
 typedef unsigned long long unsigned64;
 
-#else  /* _WIN32 */
+#else /* _WIN32 */
 
 typedef __int64 signed64;
 typedef unsigned __int64 unsigned64;
@@ -77,16 +78,14 @@ typedef unsigned __int64 unsigned64;
 #include "filter_host.h"
 
 typedef struct _line_ref line_ref;
-struct _line_ref {
+struct _line_ref
+{
   const char *file_name;
   int line_nr;
 };
 
 /* Error appends a new line, warning and notify do not */
-typedef void error_func
-(const line_ref *line,
- char *msg,
- ...);
+typedef void error_func (const line_ref *line, char *msg, ...);
 
 extern error_func error;
 extern error_func warning;
@@ -118,19 +117,13 @@ do { \
 #define STRNDUP(STRING,LEN) (strncpy (zalloc ((LEN) + 1), (STRING), (LEN)))
 #endif
 
-extern void *zalloc
-(long size);
+extern void *zalloc (long size);
 
-extern unsigned target_a2i
-(int ms_bit_nr,
- const char *a);
+extern unsigned target_a2i (int ms_bit_nr, const char *a);
 
-extern unsigned i2target
-(int ms_bit_nr,
- unsigned bit);
+extern unsigned i2target (int ms_bit_nr, unsigned bit);
 
-extern unsigned long long a2i
-(const char *a);
+extern unsigned long long a2i (const char *a);
 
 
 /* Try looking for name in the map table (returning the corresponding
@@ -139,15 +132,13 @@ extern unsigned long long a2i
    If the the sentinal (NAME == NULL) its value if >= zero is returned
    as the default. */
 
-typedef struct _name_map {
+typedef struct _name_map
+{
   const char *name;
   int i;
-} name_map;
+}
+name_map;
 
-extern int name2i
-(const char *name,
- const name_map *map);
+extern int name2i (const char *name, const name_map * map);
 
-extern const char *i2name
-(const int i,
- const name_map *map);
+extern const char *i2name (const int i, const name_map * map);
index 05e4ecc2b38b6ed1d72188da8283dd865e7a822e..29f7188ea03a631bdf9b734ea8ea66e14e8d83ba 100644 (file)
@@ -43,7 +43,8 @@
 #endif
 
 typedef struct _open_table open_table;
-struct _open_table {
+struct _open_table
+{
   size_t size;
   char *buffer;
   char *pos;
@@ -52,13 +53,14 @@ struct _open_table {
   open_table *parent;
   table *root;
 };
-struct _table {
+struct _table
+{
   open_table *current;
 };
 
 
 static line_ref *
-current_line (open_table *file)
+current_line (open_table * file)
 {
   line_ref *entry = ZALLOC (line_ref);
   *entry = file->pseudo_line;
@@ -66,8 +68,7 @@ current_line (open_table *file)
 }
 
 static table_entry *
-new_table_entry (open_table *file,
-                table_entry_type type)
+new_table_entry (open_table * file, table_entry_type type)
 {
   table_entry *entry;
   entry = ZALLOC (table_entry);
@@ -78,19 +79,16 @@ new_table_entry (open_table *file,
 }
 
 static void
-set_nr_table_entry_fields (table_entry *entry,
-                          int nr_fields)
+set_nr_table_entry_fields (table_entry *entry, int nr_fields)
 {
-  entry->field = NZALLOC (char*, nr_fields + 1);
+  entry->field = NZALLOC (char *, nr_fields + 1);
   entry->nr_fields = nr_fields;
 }
 
 
 void
 table_push (table *root,
-           line_ref *line,
-           table_include *includes,
-           const char *file_name)
+           line_ref *line, table_include *includes, const char *file_name)
 {
   FILE *ff;
   open_table *file;
@@ -115,7 +113,8 @@ table_push (table *root,
   while (1)
     {
       /* save the file name */
-      char *dup_name = NZALLOC (char, strlen (include->dir) + strlen (file_name) + 2);
+      char *dup_name =
+       NZALLOC (char, strlen (include->dir) + strlen (file_name) + 2);
       if (dup_name == NULL)
        {
          perror (file_name);
@@ -143,7 +142,7 @@ table_push (table *root,
          exit (1);
        }
       include = include->next;
-  }
+    }
 
 
   /* determine the size */
@@ -152,7 +151,7 @@ table_push (table *root,
   fseek (ff, 0, SEEK_SET);
 
   /* allocate this much memory */
-  file->buffer = (char*) zalloc (file->size + 1);
+  file->buffer = (char *) zalloc (file->size + 1);
   if (file->buffer == NULL)
     {
       perror (file_name);
@@ -161,15 +160,16 @@ table_push (table *root,
   file->pos = file->buffer;
 
   /* read it all in */
-  if (fread (file->buffer, 1, file->size, ff) < file->size) {
-    perror (file_name);
-    exit (1);
-  }
+  if (fread (file->buffer, 1, file->size, ff) < file->size)
+    {
+      perror (file_name);
+      exit (1);
+    }
   file->buffer[file->size] = '\0';
 
   /* set the initial line numbering */
-  file->real_line.line_nr = 1; /* specifies current line */
-  file->pseudo_line.line_nr = 1; /* specifies current line */
+  file->real_line.line_nr = 1; /* specifies current line */
+  file->pseudo_line.line_nr = 1;       /* specifies current line */
 
   /* done */
   fclose (ff);
@@ -197,9 +197,7 @@ skip_spaces (char *chp)
 {
   while (1)
     {
-      if (*chp == '\0'
-         || *chp == '\n'
-         || !isspace (*chp))
+      if (*chp == '\0' || *chp == '\n' || !isspace (*chp))
        return chp;
       chp++;
     }
@@ -211,8 +209,7 @@ back_spaces (char *start, char *chp)
 {
   while (1)
     {
-      if (chp <= start
-         || !isspace (chp[-1]))
+      if (chp <= start || !isspace (chp[-1]))
        return chp;
       chp--;
     }
@@ -223,17 +220,14 @@ skip_digits (char *chp)
 {
   while (1)
     {
-      if (*chp == '\0'
-         || *chp == '\n'
-         || !isdigit (*chp))
+      if (*chp == '\0' || *chp == '\n' || !isdigit (*chp))
        return chp;
       chp++;
     }
 }
 
 char *
-skip_to_separator (char *chp,
-                  char *separators)
+skip_to_separator (char *chp, char *separators)
 {
   while (1)
     {
@@ -258,14 +252,14 @@ skip_to_null (char *chp)
 
 
 static char *
-skip_to_nl (char * chp)
+skip_to_nl (char *chp)
 {
   return skip_to_separator (chp, "\n");
 }
 
 
 static void
-next_line (open_table *file)
+next_line (open_table * file)
 {
   file->pos = skip_to_nl (file->pos);
   if (*file->pos == '0')
@@ -282,7 +276,7 @@ table_read (table *root)
 {
   open_table *file = root->current;
   table_entry *entry = NULL;
-  while(1)
+  while (1)
     {
 
       /* end-of-file? */
@@ -301,7 +295,7 @@ table_read (table *root)
       if (*file->pos == '{')
        {
          char *chp;
-         next_line (file); /* discard leading brace */
+         next_line (file);     /* discard leading brace */
          entry = new_table_entry (file, table_code_entry);
          chp = file->pos;
          /* determine how many lines are involved - look for <nl> "}" */
@@ -368,7 +362,7 @@ table_read (table *root)
                if (*chp == '\t')
                  entry->field[line_nr] = chp + 1;
                else
-                 entry->field[line_nr] = ""; /* blank */
+                 entry->field[line_nr] = "";   /* blank */
                chp = skip_to_null (chp) + 1;
              }
          }
@@ -389,27 +383,28 @@ table_read (table *root)
              char *file_name;
              file->pos = chp;
              /* parse the number */
-             line_nr = atoi(file->pos) - 1;
+             line_nr = atoi (file->pos) - 1;
              /* skip to the file name */
              while (file->pos[0] != '0'
-                    && file->pos[0] != '"'
-                    && file->pos[0] != '\0')
+                    && file->pos[0] != '"' && file->pos[0] != '\0')
                file->pos++;
              if (file->pos[0] != '"')
-               error (&file->real_line, "Missing opening quote in cpp directive\n");
+               error (&file->real_line,
+                      "Missing opening quote in cpp directive\n");
              /* parse the file name */
              file->pos++;
              file_name = file->pos;
-             while (file->pos[0] != '"'
-                    && file->pos[0] != '\0')
+             while (file->pos[0] != '"' && file->pos[0] != '\0')
                file->pos++;
              if (file->pos[0] != '"')
-               error (&file->real_line, "Missing closing quote in cpp directive\n");
+               error (&file->real_line,
+                      "Missing closing quote in cpp directive\n");
              file->pos[0] = '\0';
              file->pos++;
              file->pos = skip_to_nl (file->pos);
              if (file->pos[0] != '\n')
-               error (&file->real_line, "Missing newline in cpp directive\n");
+               error (&file->real_line,
+                      "Missing newline in cpp directive\n");
              file->pseudo_line.file_name = file_name;
              file->pseudo_line.line_nr = line_nr;
              next_line (file);
@@ -498,40 +493,35 @@ table_read (table *root)
 }
 
 extern void
-table_print_code (lf *file,
-                 table_entry *entry)
+table_print_code (lf *file, table_entry *entry)
 {
   int field_nr;
   int nr = 0;
-  for (field_nr = 0;
-       field_nr < entry->nr_fields;
-       field_nr++)
+  for (field_nr = 0; field_nr < entry->nr_fields; field_nr++)
     {
       char *chp = entry->field[field_nr];
       int in_bit_field = 0;
       if (*chp == '#')
-       lf_indent_suppress(file);
-      while (*chp != '\0') 
+       lf_indent_suppress (file);
+      while (*chp != '\0')
        {
-         if (chp[0] == '{'
-             && !isspace(chp[1])
-             && chp[1] != '\0')
+         if (chp[0] == '{' && !isspace (chp[1]) && chp[1] != '\0')
            {
              in_bit_field = 1;
-             nr += lf_putchr(file, '_');
+             nr += lf_putchr (file, '_');
            }
          else if (in_bit_field && chp[0] == ':')
            {
-             nr += lf_putchr(file, '_');
+             nr += lf_putchr (file, '_');
            }
          else if (in_bit_field && *chp == '}')
            {
-             nr += lf_putchr(file, '_');
+             nr += lf_putchr (file, '_');
              in_bit_field = 0;
            }
-         else 
+         else
            {
-             nr += lf_putchr(file, *chp);
+             nr += lf_putchr (file, *chp);
            }
          chp++;
        }
@@ -541,17 +531,14 @@ table_print_code (lf *file,
          line.line_nr += field_nr;
          error (&line, "Bit field brace miss match\n");
        }
-      nr += lf_putchr(file, '\n');
+      nr += lf_putchr (file, '\n');
     }
 }
 
 
 
 void
-dump_line_ref (lf *file,
-                char *prefix,
-                const line_ref *line,
-                char *suffix)
+dump_line_ref (lf *file, char *prefix, const line_ref *line, char *suffix)
 {
   lf_printf (file, "%s(line_ref*) 0x%lx", prefix, (long) line);
   if (line != NULL)
@@ -570,17 +557,17 @@ table_entry_type_to_str (table_entry_type type)
 {
   switch (type)
     {
-    case table_code_entry: return "code-entry";
-    case table_colon_entry: return "colon-entry";
+    case table_code_entry:
+      return "code-entry";
+    case table_colon_entry:
+      return "colon-entry";
     }
   return "*invalid*";
 }
 
 void
-dump_table_entry(lf *file,
-                char *prefix,
-                const table_entry *entry,
-                char *suffix)
+dump_table_entry (lf *file,
+                 char *prefix, const table_entry *entry, char *suffix)
 {
   lf_printf (file, "%s(table_entry*) 0x%lx", prefix, (long) entry);
   if (entry != NULL)
@@ -604,7 +591,7 @@ dump_table_entry(lf *file,
 
 #ifdef MAIN
 int
-main(int argc, char **argv)
+main (int argc, char **argv)
 {
   table *t;
   table_entry *entry;
@@ -613,7 +600,7 @@ main(int argc, char **argv)
 
   if (argc != 2)
     {
-      printf("Usage: table <file>\n");
+      printf ("Usage: table <file>\n");
       exit (1);
     }
 
@@ -625,7 +612,7 @@ main(int argc, char **argv)
     {
       char line[10];
       entry = table_read (t);
-      line_nr ++;
+      line_nr++;
       sprintf (line, "(%d ", line_nr);
       dump_table_entry (l, line, entry, ")\n");
     }
index 190127471c8c26ceb843a7fbededa6508ade6542..1a9e42c435a9401dc41480d079d9e017d1c74f8a 100644 (file)
 
 typedef struct _table table;
 
-typedef enum {
+typedef enum
+{
   table_colon_entry,
   table_code_entry,
-} table_entry_type;
+}
+table_entry_type;
 
 
 typedef struct _table_entry table_entry;
-struct _table_entry {
+struct _table_entry
+{
   table *file;
   line_ref *line;
   table_entry_type type;
@@ -82,7 +85,8 @@ struct _table_entry {
 /* List of directories to search when opening a pushed file.  Current
    directory is always searched first */
 typedef struct _table_include table_include;
-struct _table_include {
+struct _table_include
+{
   char *dir;
   table_include *next;
 };
@@ -91,68 +95,47 @@ struct _table_include {
 /* Open/read a table file.  Since the file is read once during open
    (and then closed immediatly) there is no close method. */
 
-extern table *table_open
-(const char *file_name);
+extern table *table_open (const char *file_name);
 
-extern table_entry *table_read
-(table *file);
+extern table_entry *table_read (table *file);
 
 
 /* Push the the state of the current file and open FILE_NAME.  When
    the end of FILE_NAME is reached, return to the pushed file */
 
 extern void table_push
-(table *file,
- line_ref *line,
- table_include *search,
- const char *file_name);
+  (table *file, line_ref *line, table_include *search, const char *file_name);
 
 
 /* Expand the specified field_nr using the internal expansion table.
    A field is only expanded when explicitly specified.  */
 
-extern void table_expand_field
-(table_entry *entry,
- int field_nr);
+extern void table_expand_field (table_entry *entry, int field_nr);
 
 
 /* Given a code entry, write the code to FILE.  Since any
    leading/trailing braces were striped as part of the read, they are
    not written. */
 
-extern void table_print_code
-(lf *file,
- table_entry *entry);
+extern void table_print_code (lf *file, table_entry *entry);
 
 
 /* Debugging */
 
 extern void dump_line_ref
-(lf *file,
- char *prefix,
- const line_ref *line,
- char *suffix);
+  (lf *file, char *prefix, const line_ref *line, char *suffix);
 
 extern void dump_table_entry
-(lf *file,
- char *prefix,
- const table_entry *entry,
- char *suffix);
+  (lf *file, char *prefix, const table_entry *entry, char *suffix);
 
 
 
 /* Utilities for skipping around text */
 
-extern char *skip_digits
-(char *chp);
+extern char *skip_digits (char *chp);
 
-extern char *skip_spaces
-(char *chp);
+extern char *skip_spaces (char *chp);
 
-extern char *skip_to_separator
-(char *chp,
- char *separators);
+extern char *skip_to_separator (char *chp, char *separators);
 
-extern char *back_spaces
-(char *start,
- char *chp);
+extern char *back_spaces (char *start, char *chp);