aboutsummaryrefslogtreecommitdiff
path: root/sim/ppc/ld-insn.h
diff options
context:
space:
mode:
authorMatthew Green <mrg@redhat.com>2002-01-12 10:21:12 +0000
committerMatthew Green <mrg@redhat.com>2002-01-12 10:21:12 +0000
commit43c4bab0554541b32ec8c32dc58e2022e627dae5 (patch)
treeafabd0c0757b91cf8c5650db95135ef7ebe6e109 /sim/ppc/ld-insn.h
parent3abd2e019d61de733dc82d1a2cab72d843d04b73 (diff)
downloadgdb-43c4bab0554541b32ec8c32dc58e2022e627dae5.zip
gdb-43c4bab0554541b32ec8c32dc58e2022e627dae5.tar.gz
gdb-43c4bab0554541b32ec8c32dc58e2022e627dae5.tar.bz2
* Makefile.in (tmp-igen): Pass -I $(srcdir) to igen.
* igen.c (main): Change -I to add include paths for :include: files. Implement -G as per sim/igen, with just gen-icache=N support. Call load_insn_table() with the built include path. * ld-insn.c (parse_include_entry): New. Load an :include: file. (load_insn_table): New `includes' argument. Look for :include: entries and call parse_include_entry() for them. (main): Adjust load_insn_table() call. * ld-insn.h (model_include_fields): New enum. (load_insn_table): Update prototype. * table.c (struct _open_table, struct _table): Rework structures to handle included files. (table_push): Move the guts of table_open() here. * table.c (struct _open table, struct table): Make table object an indirect ptr to the current table file. (current_line, new_table_entry, next_line): Make file arg type open_table. (table_open): Use table_push. (table_entry_read): Point variable file at current table, at eof, pop last open table. * misc.h (NZALLOC): New macro. From sim/igen. * table.h, table.c (table_push): New function.
Diffstat (limited to 'sim/ppc/ld-insn.h')
-rw-r--r--sim/ppc/ld-insn.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/sim/ppc/ld-insn.h b/sim/ppc/ld-insn.h
index e800f0d..06bf838 100644
--- a/sim/ppc/ld-insn.h
+++ b/sim/ppc/ld-insn.h
@@ -134,6 +134,11 @@ typedef enum {
model_default = insn_comment,
} model_table_fields;
+typedef enum {
+ include_flags = insn_flags,
+ include_path = insn_name,
+} model_include_fields;
+
typedef struct _insn insn;
struct _insn {
table_entry *file_entry;
@@ -183,7 +188,8 @@ typedef enum {
extern insn_table *load_insn_table
(const char *file_name,
decode_table *decode_rules,
- filter *filters);
+ filter *filters,
+ table_include *includes);
model *models;
model *last_model;