diff options
author | Andrew Cagney <cagney@redhat.com> | 1997-10-28 07:10:36 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1997-10-28 07:10:36 +0000 |
commit | 89d0973831b0930f621b6a5e666760dc1b684ed6 (patch) | |
tree | aeaf421b01cede9545fd16def02fbb43791cfbbe /sim/igen | |
parent | 336ffb472ff4360cb127149e9517abf51b123e04 (diff) | |
download | gdb-89d0973831b0930f621b6a5e666760dc1b684ed6.zip gdb-89d0973831b0930f621b6a5e666760dc1b684ed6.tar.gz gdb-89d0973831b0930f621b6a5e666760dc1b684ed6.tar.bz2 |
Add support for 16 byte quantities to sim-endian macro H2T.
Add model-filter field to option, include, model anf function igen records
Diffstat (limited to 'sim/igen')
-rw-r--r-- | sim/igen/ChangeLog | 28 | ||||
-rw-r--r-- | sim/igen/ld-insn.h | 77 |
2 files changed, 78 insertions, 27 deletions
diff --git a/sim/igen/ChangeLog b/sim/igen/ChangeLog index b535133..200e1e0 100644 --- a/sim/igen/ChangeLog +++ b/sim/igen/ChangeLog @@ -1,3 +1,31 @@ +Tue Oct 28 10:50:35 1997 Andrew Cagney <cagney@b1.cygnus.com> + + * gen-icache.c (print_icache_extraction): Force result of atol to + unsigned. + + * ld-insn.c (parse_function_record): Separate handling of old and + ney fynction records. + (load_insn_table): For %s record, hack function name & type after + it has been parsed. + + * filter.h (filter_is_subset): Reverse argument names, wrong + order. + + * ld-insn.c (load_insn_table): Move include code to. + (parse_include_record): New function. Check for filtering of + include statement by both flags and models. + (load_insn_table): Check for model filtering of cache and model + records. + (parse_model_data_record): Check for model & flag filtering of + model data records. + (parse_function_record): Check for model & flag filtering of + function records. + + * ld-insn.h: Define record_filter_models_field. Add filter-models + field to all but instruction records. + (struct _function_entry, struct _cache_entry): Add models field. + (nr_function_fields): Make parm field mandatory. + Mon Oct 27 15:14:26 1997 Andrew Cagney <cagney@b1.cygnus.com> * igen.c (main): Change -I option to -I<directory>. Add optional diff --git a/sim/igen/ld-insn.h b/sim/igen/ld-insn.h index be6f4be..e5bec1d 100644 --- a/sim/igen/ld-insn.h +++ b/sim/igen/ld-insn.h @@ -25,12 +25,21 @@ typedef unsigned64 insn_uint; /* Common among most entries: + All non instruction records have the format: + + <...> ::= + ":" <record-name> + ":" <filter-flags> + ":" <filter-models> + ":" ... + */ enum { record_type_field = 1, old_record_type_field = 2, record_filter_flags_field = 2, + record_filter_models_field = 3, }; @@ -41,6 +50,7 @@ enum { <include> ::= ":" "include" ":" <filter-flags> + ":" <filter-models> ":" <filename> <nl> ; @@ -48,8 +58,8 @@ enum { */ enum { - include_record_filename_field = 3, - nr_include_record_fields = 4, + include_filename_field = 4, + nr_include_fields, }; @@ -62,6 +72,7 @@ enum { <option> ::= ":" "option" ":" <filter-flags> + ":" <filter-models> ":" <option-name> ":" <option-value> <nl> @@ -89,9 +100,9 @@ enum { enum { - option_name_field = 3, - option_value_field = 4, - nr_option_fields = 5, + option_name_field = 4, + option_value_field, + nr_option_fields, }; @@ -100,9 +111,9 @@ enum { <insn-macro> ::= <expression> - ":" "define" + ":" ( "define" | "undef" ) ":" <filter-flags> - ":" + ":" <filter-models> ":" <name> <nl> ; @@ -122,8 +133,14 @@ enum { <function-spec> ; + <format> ::= + ":" ( "%s" | ... ) + <function-spec> + ; + <function-spec> ::= ":" <filter-flags> + ":" <filter-models> ":" <typedef> ":" <name> [ ":" <parameter-list> ] @@ -134,10 +151,10 @@ enum { */ enum { - function_typedef_field = 3, - function_name_field = 4, - function_param_field = 5, - nr_function_fields = 5, + function_typedef_field = 4, + function_name_field, + function_param_field, + nr_function_fields, }; enum { @@ -145,7 +162,7 @@ enum { old_function_type_field = 2, old_function_name_field = 4, old_function_param_field = 5, - nr_old_function_fields = 6, + nr_old_function_fields = 5, /* parameter-list is optional */ }; @@ -153,6 +170,7 @@ typedef struct _function_entry function_entry; struct _function_entry { line_ref *line; filter *flags; + filter *models; char *type; char *name; char *param; @@ -179,7 +197,8 @@ extern void function_entry_traverse <cache-macro> ::= ":" <macro-type> ":" <filter-flags> - ":" <type> + ":" <filter-models> + ":" <typedef> ":" <name> ":" <field-name> { "," <field-name> } ":" <expression> @@ -208,11 +227,11 @@ extern void function_entry_traverse */ enum { - cache_type_field = 3, - cache_name_field = 4, - cache_original_fields_field = 5, - cache_expression_field = 6, - nr_cache_fields = 7, + cache_typedef_field = 4, + cache_name_field, + cache_original_fields_field, + cache_expression_field, + nr_cache_fields, }; typedef enum { @@ -225,6 +244,7 @@ typedef struct _cache_entry cache_entry; struct _cache_entry { line_ref *line; filter *flags; + filter *models; cache_entry_type entry_type; char *name; filter *original_fields; @@ -240,6 +260,7 @@ struct _cache_entry { <model-processor> ::= ":" "model" ":" <filter-flags> + ":" <filter-models> ":" <processor> ":" <long-processor> ":" <function-unit-data> @@ -249,6 +270,7 @@ struct _cache_entry { <model-macro> ::= ":" "model-macro" ":" <filter-flags> + ":" <filter-models> <nl> <code-block> ; @@ -256,6 +278,7 @@ struct _cache_entry { <model-data> ::= ":" "model-data" ":" <filter-flags> + ":" <filter-models> <nl> <code-block> ; @@ -278,11 +301,11 @@ struct _cache_entry { */ enum { - nr_model_macro_fields = 3, - nr_model_data_fields = 3, - nr_model_static_fields = 6, - nr_model_internal_fields = 6, - nr_model_function_fields = 6, + nr_model_macro_fields = 4, + nr_model_data_fields = 4, + nr_model_static_fields = nr_function_fields, + nr_model_internal_fields = nr_function_fields, + nr_model_function_fields = nr_function_fields, }; typedef struct _model_data model_data; @@ -295,10 +318,10 @@ struct _model_data { }; enum { - model_name_field = 3, - model_full_name_field = 4, - model_unit_data_field = 5, - nr_model_processor_fields = 6, + model_name_field = 4, + model_full_name_field, + model_unit_data_field, + nr_model_processor_fields, }; typedef struct _model_entry model_entry; |