/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright 2002-2015 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
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
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
*/
-enum {
+enum
+{
record_type_field = 1,
old_record_type_field = 2,
record_filter_flags_field = 2,
*/
-enum {
+enum
+{
include_filename_field = 4,
nr_include_fields,
};
;
- These update the global options structure. */
+ These update the global options structure. */
-enum {
+enum
+{
option_name_field = 4,
option_value_field,
nr_option_fields,
*/
-enum {
+enum
+{
macro_name_field = 4,
macro_args_field,
macro_expr_field,
*/
-enum {
+enum
+{
function_typedef_field = 4,
function_name_field,
function_param_field,
nr_function_fields,
};
-enum {
+enum
+{
function_model_name_field = 0,
nr_function_model_fields = 1,
};
-enum {
+enum
+{
old_function_typedef_field = 0,
old_function_type_field = 2,
old_function_name_field = 4,
old_function_param_field = 5,
- nr_old_function_fields = 5, /* parameter-list is optional */
+ nr_old_function_fields = 5, /* parameter-list is optional */
};
typedef struct _function_entry function_entry;
-struct _function_entry {
+struct _function_entry
+{
line_ref *line;
filter *flags;
filter *models;
typedef void function_entry_handler
-(lf *file,
- function_entry *function,
- void *data);
+ (lf *file, function_entry * function, void *data);
extern void function_entry_traverse
-(lf *file,
- function_entry *functions,
- function_entry_handler *handler,
- void *data);
+ (lf *file,
+ function_entry * functions, function_entry_handler * handler, void *data);
/* cache-macro:
*/
-enum {
+enum
+{
cache_typedef_field = 4,
cache_name_field,
cache_original_fields_field,
nr_cache_fields,
};
-typedef enum {
+typedef enum
+{
scratch_value,
cache_value,
compute_value,
-} cache_entry_type;
+}
+cache_entry_type;
typedef struct _cache_entry cache_entry;
-struct _cache_entry {
+struct _cache_entry
+{
line_ref *line;
filter *flags;
filter *models;
*/
-enum {
+enum
+{
nr_model_macro_fields = 4,
nr_model_data_fields = 4,
nr_model_static_fields = nr_function_fields,
};
typedef struct _model_data model_data;
-struct _model_data {
+struct _model_data
+{
line_ref *line;
filter *flags;
table_entry *entry;
model_data *next;
};
-enum {
+enum
+{
model_name_field = 4,
model_full_name_field,
model_unit_data_field,
};
typedef struct _model_entry model_entry;
-struct _model_entry {
+struct _model_entry
+{
line_ref *line;
filter *flags;
char *name;
typedef struct _model_table model_table;
-struct _model_table {
+struct _model_table
+{
filter *processors;
int nr_models;
model_entry *models;
*/
-typedef enum _insn_field_cond_type {
+typedef enum _insn_field_cond_type
+{
insn_field_cond_value,
insn_field_cond_field,
-} insn_field_cond_type;
-typedef enum _insn_field_cond_test {
+}
+insn_field_cond_type;
+typedef enum _insn_field_cond_test
+{
insn_field_cond_eq,
insn_field_cond_ne,
-} insn_field_cond_test;
+}
+insn_field_cond_test;
typedef struct _insn_field_cond insn_field_cond;
-struct _insn_field_cond {
+struct _insn_field_cond
+{
insn_field_cond_type type;
insn_field_cond_test test;
insn_uint value;
};
-typedef enum _insn_field_type {
+typedef enum _insn_field_type
+{
insn_field_invalid,
insn_field_int,
insn_field_reserved,
insn_field_wild,
insn_field_string,
-} insn_field_type;
+}
+insn_field_type;
typedef struct _insn_field_entry insn_field_entry;
-struct _insn_field_entry {
+struct _insn_field_entry
+{
int first;
int last;
int width;
};
typedef struct _insn_bit_entry insn_bit_entry;
-struct _insn_bit_entry {
+struct _insn_bit_entry
+{
int value;
int mask;
insn_field_entry *field;
-typedef struct _insn_entry insn_entry; /* forward */
+typedef struct _insn_entry insn_entry; /* forward */
typedef struct _insn_word_entry insn_word_entry;
-struct _insn_word_entry {
+struct _insn_word_entry
+{
/* list of sub-fields making up the instruction. bit provides
faster access to the field data for bit N. */
insn_field_entry *first;
*/
-enum {
+enum
+{
insn_model_name_field = 0,
insn_model_unit_data_field = 1,
nr_insn_model_fields = 1,
};
typedef struct _insn_model_entry insn_model_entry;
-struct _insn_model_entry {
+struct _insn_model_entry
+{
line_ref *line;
insn_entry *insn;
filter *names;
*/
-enum {
+enum
+{
insn_mnemonic_format_field = 0,
insn_mnemonic_condition_field = 1,
nr_insn_mnemonic_fields = 1,
};
typedef struct _insn_mnemonic_entry insn_mnemonic_entry;
-struct _insn_mnemonic_entry {
+struct _insn_mnemonic_entry
+{
line_ref *line;
insn_entry *insn;
char *format;
*/
-enum {
+enum
+{
insn_word_field = 0,
insn_format_name_field = 1,
insn_filter_flags_field = 2,
/* typedef struct _insn_entry insn_entry; */
-struct _insn_entry {
+struct _insn_entry
+{
line_ref *line;
- filter *flags; /* filtered by options.filters */
+ filter *flags; /* filtered by options.filters */
char *format_name;
filter *options;
char *name;
*/
typedef struct _insn_table insn_table;
-struct _insn_table {
+struct _insn_table
+{
cache_entry *caches;
int max_nr_words;
int nr_insns;
filter *flags;
};
-extern insn_table *load_insn_table
-(char *file_name,
- cache_entry *cache);
+extern insn_table *load_insn_table (char *file_name, cache_entry *cache);
typedef void insn_entry_handler
-(lf *file,
- insn_table *isa,
- insn_entry *insn,
- void *data);
+ (lf *file, insn_table *isa, insn_entry * insn, void *data);
extern void insn_table_traverse_insn
-(lf *file,
- insn_table *isa,
- insn_entry_handler *handler,
- void *data);
+ (lf *file, insn_table *isa, insn_entry_handler * handler, void *data);
/* Printing */
-extern void print_insn_words
-(lf *file,
- insn_entry *insn);
+extern void print_insn_words (lf *file, insn_entry * insn);
/* Debugging */
void
-dump_insn_field
-(lf *file,
- char *prefix,
- insn_field_entry *field,
- char *suffix);
+ dump_insn_field
+ (lf *file, char *prefix, insn_field_entry *field, char *suffix);
void
-dump_insn_word_entry
-(lf *file,
- char *prefix,
- insn_word_entry *word,
- char *suffix);
+ dump_insn_word_entry
+ (lf *file, char *prefix, insn_word_entry *word, char *suffix);
void
-dump_insn_entry
-(lf *file,
- char *prefix,
- insn_entry *insn,
- char *suffix);
+ dump_insn_entry (lf *file, char *prefix, insn_entry * insn, char *suffix);
void
-dump_cache_entries
-(lf *file,
- char *prefix,
- cache_entry *entry,
- char *suffix);
+ dump_cache_entries
+ (lf *file, char *prefix, cache_entry *entry, char *suffix);
-void
-dump_insn_table
-(lf *file,
- char *prefix,
- insn_table *isa,
- char *suffix);
+void dump_insn_table (lf *file, char *prefix, insn_table *isa, char *suffix);