summaryrefslogtreecommitdiffstats
path: root/sim/ppc/table.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/table.h
parent3abd2e019d61de733dc82d1a2cab72d843d04b73 (diff)
downloadppe42-binutils-43c4bab0554541b32ec8c32dc58e2022e627dae5.tar.gz
ppe42-binutils-43c4bab0554541b32ec8c32dc58e2022e627dae5.zip
* 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/table.h')
-rw-r--r--sim/ppc/table.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/sim/ppc/table.h b/sim/ppc/table.h
index 509fb22870..863c925856 100644
--- a/sim/ppc/table.h
+++ b/sim/ppc/table.h
@@ -42,6 +42,13 @@ struct _table_entry {
char *fields[0]; /* User defined */
};
+/* List of directories to search when opening a pushed file. Current
+ directory is always searched first */
+typedef struct _table_include table_include;
+struct _table_include {
+ char *dir;
+ table_include *next;
+};
extern table *table_open
(const char *file_name,
@@ -51,6 +58,16 @@ extern table *table_open
extern table_entry *table_entry_read
(table *file);
+/* Push the the state of the current file and open FILE_NAME. When
+ the end of FILE_NAME is reached, return to the pushed file */
+
+extern void table_push
+(table *file,
+ table_include *search,
+ const char *file_name,
+ int nr_fields,
+ int nr_model_fields);
+
extern void dump_table_entry
(table_entry *entry,
int indent);
OpenPOWER on IntegriCloud