diff options
author | Andrew Cagney <cagney@redhat.com> | 1997-10-14 02:54:08 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1997-10-14 02:54:08 +0000 |
commit | d5cecca93cccbd347346d68d8bce8371b675a806 (patch) | |
tree | 2456c269c20847816289269e44d45e376d6c118f /sim/igen/ld-insn.c | |
parent | c7eece073ab27cfe0fb9e72f0559cd8dbad8ee49 (diff) | |
download | gdb-d5cecca93cccbd347346d68d8bce8371b675a806.zip gdb-d5cecca93cccbd347346d68d8bce8371b675a806.tar.gz gdb-d5cecca93cccbd347346d68d8bce8371b675a806.tar.bz2 |
Output line-ref to original igen source file when generating trace
statements.
Define NIA macro (dependant on gen-delayed-branch).
Verify opening/closing quote in input assembler strings.
Diffstat (limited to 'sim/igen/ld-insn.c')
-rw-r--r-- | sim/igen/ld-insn.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/sim/igen/ld-insn.c b/sim/igen/ld-insn.c index 8d33a3e..eaa7eca 100644 --- a/sim/igen/ld-insn.c +++ b/sim/igen/ld-insn.c @@ -116,7 +116,7 @@ parse_insn_word (line_ref *line, chp = skip_spaces (chp); } if (strlen_val == 0) - error (line, "Empty value field"); + error (line, "Empty value field\n"); /* break out any conditional fields - { "!" <value> } */ while (*chp == '!') @@ -502,6 +502,7 @@ typedef enum { model_filter_option, multi_sim_option, format_names_option, + gen_delayed_branch, unknown_option, } option_names; @@ -513,6 +514,7 @@ static const name_map option_map[] = { { "model-filter", model_filter_option }, { "multi-sim", multi_sim_option }, { "format-names", format_names_option }, + { "gen-delayed-branch", gen_delayed_branch }, { NULL, unknown_option }, }; @@ -579,6 +581,11 @@ parse_option_record (table *file, filter_parse (&options.format_name_filter, value); break; } + case gen_delayed_branch: + { + options.gen.delayed_branch = a2i (value); + break; + } case unknown_option: { error (option_record->line, "Unknown option - %s\n", name); @@ -701,8 +708,11 @@ parse_insn_mnemonic_record (table *file, insn_mnemonic_entry *new_insn_mnemonic = ZALLOC (insn_mnemonic_entry); /* parse it */ new_insn_mnemonic->line = record->line; - if (record->nr_fields > insn_mnemonic_format_field) - new_insn_mnemonic->format = record->field[insn_mnemonic_format_field]; + 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 (record->nr_fields > insn_mnemonic_condition_field) new_insn_mnemonic->condition = record->field[insn_mnemonic_condition_field]; new_insn_mnemonic->insn = insn; |