From 9ddac092a831d9eb4a53959764c2d13b12964a0c Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 1 Jan 2024 17:34:01 -0500 Subject: sim: ppc: rework igen error to match common 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 | 2 +- sim/ppc/gen-model.c | 4 ++-- sim/ppc/igen.c | 4 ++-- sim/ppc/ld-cache.c | 2 +- sim/ppc/ld-decode.c | 2 +- sim/ppc/ld-insn.c | 14 +++++++------- sim/ppc/lf.c | 2 +- sim/ppc/misc.c | 8 ++++---- sim/ppc/misc.h | 7 +++++-- sim/ppc/table.c | 2 +- 10 files changed, 25 insertions(+), 22 deletions(-) (limited to 'sim') diff --git a/sim/ppc/gen-idecode.c b/sim/ppc/gen-idecode.c index 256ba75..5d22535 100644 --- a/sim/ppc/gen-idecode.c +++ b/sim/ppc/gen-idecode.c @@ -1543,6 +1543,6 @@ gen_idecode_c(lf *file, } else { - error("Something is wrong!\n"); + ERROR("Something is wrong!\n"); } } diff --git a/sim/ppc/gen-model.c b/sim/ppc/gen-model.c index a8bcc66..11a533b 100644 --- a/sim/ppc/gen-model.c +++ b/sim/ppc/gen-model.c @@ -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"); diff --git a/sim/ppc/igen.c b/sim/ppc/igen.c index 61afa49..264d808 100644 --- a/sim/ppc/igen.c +++ b/sim/ppc/igen.c @@ -450,7 +450,7 @@ main(int argc, code &= ~generate_with_icache; break; default: - error ("Expecting -Ggen-icache or -Ggen-icache=\n"); + ERROR ("Expecting -Ggen-icache or -Ggen-icache=\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; diff --git a/sim/ppc/ld-cache.c b/sim/ppc/ld-cache.c index 9a78f90..a5d101d 100644 --- a/sim/ppc/ld-cache.c +++ b/sim/ppc/ld-cache.c @@ -115,7 +115,7 @@ main(int argc, char **argv) { cache_table *rules; if (argc != 3) - error("Usage: cache \n"); + ERROR("Usage: cache \n"); rules = load_cache_table(argv[1], a2i(argv[2])); dump_cache_rules(rules, 0); return 0; diff --git a/sim/ppc/ld-decode.c b/sim/ppc/ld-decode.c index 63c2c2e..a631645 100644 --- a/sim/ppc/ld-decode.c +++ b/sim/ppc/ld-decode.c @@ -143,7 +143,7 @@ main(int argc, char **argv) { decode_table *rules; if (argc != 3) - error("Usage: decode \n"); + ERROR("Usage: decode \n"); rules = load_decode_table(argv[1], a2i(argv[2])); dump_decode_rules(rules, 0); return 0; diff --git a/sim/ppc/ld-insn.c b/sim/ppc/ld-insn.c index 5cb72b2..c11b449 100644 --- a/sim/ppc/ld-insn.c +++ b/sim/ppc/ld-insn.c @@ -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 \n"); + ERROR("Usage: insn \n"); filters = new_filter(argv[1], filters); hi_bit_nr = a2i(argv[2]); diff --git a/sim/ppc/lf.c b/sim/ppc/lf.c index 9a9d615..9deb2d2 100644 --- a/sim/ppc/lf.c +++ b/sim/ppc/lf.c @@ -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++; diff --git a/sim/ppc/misc.c b/sim/ppc/misc.c index a281d62..9499101 100644 --- a/sim/ppc/misc.c +++ b/sim/ppc/misc.c @@ -28,7 +28,7 @@ #include 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; } diff --git a/sim/ppc/misc.h b/sim/ppc/misc.h index 0073467..243d5c9 100644 --- a/sim/ppc/misc.h +++ b/sim/ppc/misc.h @@ -28,8 +28,11 @@ #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 { \ diff --git a/sim/ppc/table.c b/sim/ppc/table.c index cb9a73a..0c5b6fc 100644 --- a/sim/ppc/table.c +++ b/sim/ppc/table.c @@ -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); } -- cgit v1.1