diff options
author | Andrew Cagney <cagney@redhat.com> | 1998-02-23 08:55:41 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1998-02-23 08:55:41 +0000 |
commit | 3c1e924307e976ac89f5870b1604c1f0a9ed2cd0 (patch) | |
tree | 2cb11f9d56661e5a6b86e255ed4104769d17a956 /sim/igen/ld-insn.h | |
parent | bdd5e0232a29873aa5deacf7b4221a3f701d245a (diff) | |
download | gdb-3c1e924307e976ac89f5870b1604c1f0a9ed2cd0.zip gdb-3c1e924307e976ac89f5870b1604c1f0a9ed2cd0.tar.gz gdb-3c1e924307e976ac89f5870b1604c1f0a9ed2cd0.tar.bz2 |
* ld-insn.c (parse_function_record): When -Wnodiscard, suppress
discarded function warning.
* igen.c (main): Clarify -Wnodiscard.
* ld-insn.c (parse_function_record): For functions, allow use of
instruction style function model records
Diffstat (limited to 'sim/igen/ld-insn.h')
-rw-r--r-- | sim/igen/ld-insn.h | 65 |
1 files changed, 55 insertions, 10 deletions
diff --git a/sim/igen/ld-insn.h b/sim/igen/ld-insn.h index e5bec1d..ab361ff 100644 --- a/sim/igen/ld-insn.h +++ b/sim/igen/ld-insn.h @@ -1,6 +1,6 @@ /* This file is part of the program psim. - Copyright (C) 1994,1995,1996,1997 Andrew Cagney <cagney@highland.com.au> + 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 @@ -123,6 +123,9 @@ enum { /* Functions and internal routins: + NB: <filter-models> and <function-models> are the equivalent. + + <function> ::= ":" "function" <function-spec> @@ -138,6 +141,12 @@ enum { <function-spec> ; + <function-model> ::= + "*" [ <processor-list> ] + ":" + <nl> + ; + <function-spec> ::= ":" <filter-flags> ":" <filter-models> @@ -145,6 +154,7 @@ enum { ":" <name> [ ":" <parameter-list> ] <nl> + [ <function-model> ] <code-block> ; @@ -158,6 +168,11 @@ enum { }; enum { + function_model_name_field = 0, + nr_function_model_fields = 1, +}; + +enum { old_function_typedef_field = 0, old_function_type_field = 2, old_function_name_field = 4, @@ -262,7 +277,7 @@ struct _cache_entry { ":" <filter-flags> ":" <filter-models> ":" <processor> - ":" <long-processor> + ":" <BFD-processor> ":" <function-unit-data> <nl> ; @@ -368,8 +383,8 @@ struct _model_table { ; <field> ::= - "*" + - | "/" + + { "*" }+ + | { "/" }+ | <field-name> | "0x" <hex-value> | "0b" <binary-value> @@ -436,16 +451,21 @@ struct _insn_word_entry { /* Instruction model: - Provides scheduling data for the code modeling the instruction unit. + Provides scheduling and other data for the code modeling the + instruction unit. <insn-model> ::= - "*" [ <processor> ] - ":" <function-unit-data> + "*" [ <processor-list> ] + ":" [ <function-unit-data> ] <nl> ; - If <processor> is NULL, the model is made the default for this - instruction. + <processor-list> ::= + <processor> { "," <processor>" } + ; + + If the <processor-list> is empty, the model is made the default for + this instruction. */ @@ -459,7 +479,7 @@ typedef struct _insn_model_entry insn_model_entry; struct _insn_model_entry { line_ref *line; insn_entry *insn; - char *name; + filter *names; char *full_name; char *unit_data; insn_model_entry *next; @@ -477,6 +497,31 @@ struct _insn_model_entry { <nl> ; + An assembler mnemonic string has the syntax: + + <assembler-mnemonic> ::= + ( [ "%" <format-spec> ] "<" <func> [ "#" <param-list> ] ">" + | "%%" + | <other-letter> + )+ + + Where, for instance, the text is translated into a printf format + and argument pair: + + "<FUNC>" : "%ld", (long) FUNC + "%<FUNC>..." : "%...", FUNC + "%s<FUNC>" : "%s", <%s>FUNC (SD_, FUNC) + "%s<FUNC#P1,P2>" : "%s", <%s>FUNC (SD_, P1,P2) + "%lx<FUNC>" : "%lx", (unsigned long) FUNC + "%08lx<FUNC>" : "%08lx", (unsigned long) FUNC + + And "<%s>FUNC" denotes a function declared using the "%s" record + specifier. + + + + ; + */ enum { |