sim: ppc: rework igen error to match common
authorMike Frysinger <vapier@gentoo.org>
Mon, 1 Jan 2024 22:34:01 +0000 (17:34 -0500)
committerMike Frysinger <vapier@gentoo.org>
Mon, 1 Jan 2024 22:39:09 +0000 (17:39 -0500)
Switch to an ERROR macro and tweak the error signature to match the
common igen version in preparation for merging the two implementations.

sim/ppc/gen-idecode.c
sim/ppc/gen-model.c
sim/ppc/igen.c
sim/ppc/ld-cache.c
sim/ppc/ld-decode.c
sim/ppc/ld-insn.c
sim/ppc/lf.c
sim/ppc/misc.c
sim/ppc/misc.h
sim/ppc/table.c

index 256ba75..5d22535 100644 (file)
@@ -1543,6 +1543,6 @@ gen_idecode_c(lf *file,
 
   }
   else {
-    error("Something is wrong!\n");
+    ERROR("Something is wrong!\n");
   }
 }
index a8bcc66..11a533b 100644 (file)
@@ -52,7 +52,7 @@ model_c_or_h_function(insn_table *entry,
 {
   if (function->fields[function_type] == NULL
       || function->fields[function_type][0] == '\0') {
-    error("Model function type not specified for %s", function->fields[function_name]);
+    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, " ");
@@ -203,7 +203,7 @@ model_c_function(insn_table *table,
 {
   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");
index 61afa49..264d808 100644 (file)
@@ -450,7 +450,7 @@ main(int argc,
                  code &= ~generate_with_icache;
                 break;
               default:
-               error ("Expecting -Ggen-icache or -Ggen-icache=<N>\n");
+               ERROR ("Expecting -Ggen-icache or -Ggen-icache=<N>\n");
               }
           }
          break;
@@ -568,7 +568,7 @@ main(int argc,
       real_file_name = NULL;
       break;
     default:
-      error("unknown option\n");
+      ERROR("unknown option\n");
     }
   }
   return 0;
index 9a78f90..a5d101d 100644 (file)
@@ -115,7 +115,7 @@ main(int argc, char **argv)
 {
   cache_table *rules;
   if (argc != 3)
-    error("Usage: cache <cache-file> <hi-bit-nr>\n");
+    ERROR("Usage: cache <cache-file> <hi-bit-nr>\n");
   rules = load_cache_table(argv[1], a2i(argv[2]));
   dump_cache_rules(rules, 0);
   return 0;
index 63c2c2e..a631645 100644 (file)
@@ -143,7 +143,7 @@ main(int argc, char **argv)
 {
   decode_table *rules;
   if (argc != 3)
-    error("Usage: decode <decode-file> <hi-bit-nr>\n");
+    ERROR("Usage: decode <decode-file> <hi-bit-nr>\n");
   rules = load_decode_table(argv[1], a2i(argv[2]));
   dump_decode_rules(rules, 0);
   return 0;
index 5cb72b2..c11b449 100644 (file)
@@ -110,7 +110,7 @@ parse_insn_format(table_entry *entry,
 
     /* sanity check */
     if (!isdigit(*chp)) {
-      error("%s:%d: missing position field at `%s'\n",
+      ERROR("%s:%d: missing position field at `%s'\n",
            entry->file_name, entry->line_nr, chp);
     }
 
@@ -122,7 +122,7 @@ parse_insn_format(table_entry *entry,
     if (*chp == '.' && strlen_pos > 0)
       chp++;
     else {
-      error("%s:%d: missing field value at %s\n",
+      ERROR("%s:%d: missing field value at %s\n",
            entry->file_name, entry->line_nr, chp);
       break;
     }
@@ -137,7 +137,7 @@ parse_insn_format(table_entry *entry,
     if (*chp == ',')
       chp++;
     else if (*chp != '\0' || strlen_val == 0) {
-      error("%s:%d: missing field terminator at %s\n",
+      ERROR("%s:%d: missing field terminator at %s\n",
            entry->file_name, entry->line_nr, chp);
       break;
     }
@@ -216,7 +216,7 @@ parse_include_entry (table *file,
 {
   /* parse the include file_entry */
   if (file_entry->nr_fields < 4)
-    error ("Incorrect nr fields for include record\n");
+    ERROR ("Incorrect nr fields for include record\n");
   /* process it */
   if (!is_filtered_out(file_entry->fields[include_flags], filters))
     {
@@ -326,7 +326,7 @@ insn_table_insert_insn(insn_table *table,
     }
 
     if (!model_ptr)
-      error("%s:%d: machine model `%s' was not known about\n",
+      ERROR("%s:%d: machine model `%s' was not known about\n",
            file_entry->file_name, file_entry->line_nr, name);
   }
 
@@ -663,7 +663,7 @@ insn_table_find_opcode_field(insn *insns,
     curr_opcode->boolean_constant = rule->special_constant;
     break;
   default:
-    error("Something is going wrong\n");
+    ERROR("Something is going wrong\n");
   }
 
   return curr_opcode;
@@ -979,7 +979,7 @@ main(int argc, char **argv)
   cache_table *cache_rules = NULL;
 
   if (argc != 5)
-    error("Usage: insn <filter> <hi-bit-nr> <decode-table> <insn-table>\n");
+    ERROR("Usage: insn <filter> <hi-bit-nr> <decode-table> <insn-table>\n");
 
   filters = new_filter(argv[1], filters);
   hi_bit_nr = a2i(argv[2]);
index 9a9d615..9deb2d2 100644 (file)
@@ -274,7 +274,7 @@ lf_print__c_code(lf *file,
       chp++;
     }
     if (in_bit_field)
-      error("bit field paren miss match some where\n");
+      ERROR("bit field paren miss match some where\n");
     if (*chp == '\n') {
       nr += lf_putchr(file, '\n');
       chp++;
index a281d62..9499101 100644 (file)
@@ -28,7 +28,7 @@
 #include <string.h>
 
 void
-error (const char *msg, ...)
+error (const void *line, const char *msg, ...)
 {
   va_list ap;
   va_start(ap, msg);
@@ -42,7 +42,7 @@ zalloc(long size)
 {
   void *memory = malloc(size);
   if (memory == NULL)
-    error("zalloc failed\n");
+    ERROR("zalloc failed\n");
   memset(memory, 0, size);
   return memory;
 }
@@ -186,7 +186,7 @@ name2i(const char *names,
   if (curr->i >= 0)
     return curr->i;
   else
-    error("%s contains no valid names\n", names);
+    ERROR("%s contains no valid names\n", names);
   return 0;
 }
 
@@ -199,6 +199,6 @@ i2name(const int i,
       return map->name;
     map++;
   }
-  error("map lookup failed for %d\n", i);
+  ERROR("map lookup failed for %d\n", i);
   return NULL;
 }
index 0073467..243d5c9 100644 (file)
 #include "ansidecl.h"
 #include "filter_host.h"
 
-extern void error (const char *msg, ...)
-  ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
+extern void error (const void *line, const char *msg, ...)
+  ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3);
+
+#define ERROR(EXPRESSION, args...) \
+  error (NULL, EXPRESSION, ## args)
 
 #define ASSERT(EXPRESSION) \
 do { \
index cb9a73a..0c5b6fc 100644 (file)
@@ -98,7 +98,7 @@ table_push (table *root,
       /* free (dup_name); */
       if (include->next == NULL)
        {
-         error ("Problem opening file `%s'\n", file_name);
+         ERROR ("Problem opening file `%s'\n", file_name);
          perror (file_name);
          exit (1);
        }