2004-02-20 Andrew Cagney <cagney@redhat.com>
[deliverable/binutils-gdb.git] / sim / igen / gen-idecode.c
index a670e3d289bd571e77b95d587b1b09454d85e8f2..639b5631dddf2512ddc8b57941e74eb06347c749 100644 (file)
@@ -1,22 +1,26 @@
-/*  This file is part of the program psim.
-
-    Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-    */
+/* The IGEN simulator generator for GDB, the GNU Debugger.
+
+   Copyright 2002 Free Software Foundation, Inc.
+
+   Contributed by Andrew Cagney.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
 
 #include "misc.h"
 #include "lf.h"
 
 
 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;
        }
@@ -64,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);
-      
+
     }
 }
 
@@ -79,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);
@@ -89,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 = ");
@@ -102,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");
@@ -125,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)
@@ -137,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");
@@ -154,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 */
@@ -171,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);
@@ -234,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, ");
@@ -247,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)
@@ -279,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);
@@ -303,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);
@@ -313,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)
@@ -389,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);
@@ -407,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");
@@ -471,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");
@@ -508,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
       {
@@ -521,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);
@@ -531,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);
@@ -542,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");
@@ -555,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");
        }
@@ -574,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
@@ -593,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);
 }
 
 
@@ -653,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);
@@ -707,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
@@ -764,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");
@@ -783,7 +728,7 @@ print_jump (lf *file,
       lf_putstr (file, "  }\n");
       lf_putstr (file, "}\n");
     }
-  
+
   if (options.generate_smp)
     {
       if (is_tail)
@@ -805,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");
@@ -823,7 +768,7 @@ print_jump (lf *file,
     {
       lf_printf (file, "goto idecode;\n");
     }
-  
+
 }
 #endif
 
@@ -832,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)
     {
@@ -849,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);
@@ -896,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");
@@ -917,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,
@@ -930,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");
 }
@@ -943,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
@@ -961,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
@@ -980,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)
     {
@@ -1012,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);
@@ -1023,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");
@@ -1054,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");
 }
@@ -1116,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
 
@@ -1150,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
@@ -1184,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)
          {
@@ -1201,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);
@@ -1229,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 */
@@ -1245,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);
@@ -1273,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
@@ -1293,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);
@@ -1303,7 +1221,7 @@ print_idecode_validate (lf *file,
        lf_printf (file, "#endif\n");
       }
   }
-  
+
 }
 
 
@@ -1322,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);
@@ -1339,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:
This page took 0.036727 seconds and 4 git commands to generate.