/* 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,
};
<include> ::=
":" "include"
":" <filter-flags>
+ ":" <filter-models>
":" <filename>
<nl>
;
*/
enum {
- include_record_filename_field = 3,
- nr_include_record_fields = 4,
+ include_filename_field = 4,
+ nr_include_fields,
};
<option> ::=
":" "option"
":" <filter-flags>
+ ":" <filter-models>
":" <option-name>
":" <option-value>
<nl>
enum {
- option_name_field = 3,
- option_value_field = 4,
- nr_option_fields = 5,
+ option_name_field = 4,
+ option_value_field,
+ nr_option_fields,
};
<insn-macro> ::=
<expression>
- ":" "define"
+ ":" ( "define" | "undef" )
":" <filter-flags>
- ":"
+ ":" <filter-models>
":" <name>
<nl>
;
<function-spec>
;
+ <format> ::=
+ ":" ( "%s" | ... )
+ <function-spec>
+ ;
+
<function-spec> ::=
":" <filter-flags>
+ ":" <filter-models>
":" <typedef>
":" <name>
[ ":" <parameter-list> ]
*/
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 {
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 */
};
struct _function_entry {
line_ref *line;
filter *flags;
+ filter *models;
char *type;
char *name;
char *param;
<cache-macro> ::=
":" <macro-type>
":" <filter-flags>
- ":" <type>
+ ":" <filter-models>
+ ":" <typedef>
":" <name>
":" <field-name> { "," <field-name> }
":" <expression>
*/
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 {
struct _cache_entry {
line_ref *line;
filter *flags;
+ filter *models;
cache_entry_type entry_type;
char *name;
filter *original_fields;
<model-processor> ::=
":" "model"
":" <filter-flags>
+ ":" <filter-models>
":" <processor>
":" <long-processor>
":" <function-unit-data>
<model-macro> ::=
":" "model-macro"
":" <filter-flags>
+ ":" <filter-models>
<nl>
<code-block>
;
<model-data> ::=
":" "model-data"
":" <filter-flags>
+ ":" <filter-models>
<nl>
<code-block>
;
*/
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;
};
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;