aboutsummaryrefslogtreecommitdiff
path: root/sim/igen/gen.c
diff options
context:
space:
mode:
Diffstat (limited to 'sim/igen/gen.c')
-rw-r--r--sim/igen/gen.c49
1 files changed, 27 insertions, 22 deletions
diff --git a/sim/igen/gen.c b/sim/igen/gen.c
index 3882b5b..9f48e5c 100644
--- a/sim/igen/gen.c
+++ b/sim/igen/gen.c
@@ -38,7 +38,7 @@ sub_val (insn_uint val, int val_last_pos, int first_pos, int last_pos)
}
static void
-update_depth (lf *file, gen_entry *entry, int depth, void *data)
+update_depth (lf *file, const gen_entry *entry, int depth, void *data)
{
int *max_depth = (int *) data;
if (*max_depth < depth)
@@ -47,7 +47,7 @@ update_depth (lf *file, gen_entry *entry, int depth, void *data)
int
-gen_entry_depth (gen_entry *table)
+gen_entry_depth (const gen_entry *table)
{
int depth = 0;
gen_entry_traverse_tree (NULL, table, 1, NULL, /*start */
@@ -58,7 +58,9 @@ gen_entry_depth (gen_entry *table)
static void
-print_gen_entry_path (line_ref *line, gen_entry *table, error_func *print)
+print_gen_entry_path (const line_ref *line,
+ const gen_entry *table,
+ error_func *print)
{
if (table->parent == NULL)
{
@@ -75,12 +77,13 @@ print_gen_entry_path (line_ref *line, gen_entry *table, error_func *print)
}
static void
-print_gen_entry_insns (gen_entry *table,
+print_gen_entry_insns (const gen_entry *table,
error_func *print,
- char *first_message, char *next_message)
+ const char *first_message,
+ const char *next_message)
{
insn_list *i;
- char *message;
+ const char *message;
message = first_message;
for (i = table->insns; i != NULL; i = i->next)
{
@@ -94,7 +97,7 @@ print_gen_entry_insns (gen_entry *table,
/* same as strcmp */
static int
-insn_field_cmp (insn_word_entry *l, insn_word_entry *r)
+insn_field_cmp (const insn_word_entry *l, const insn_word_entry *r)
{
while (1)
{
@@ -170,7 +173,7 @@ insn_field_cmp (insn_word_entry *l, insn_word_entry *r)
/* same as strcmp */
static int
-insn_word_cmp (insn_word_entry *l, insn_word_entry *r)
+insn_word_cmp (const insn_word_entry *l, const insn_word_entry *r)
{
while (1)
{
@@ -199,7 +202,7 @@ insn_word_cmp (insn_word_entry *l, insn_word_entry *r)
/* same as strcmp */
static int
-opcode_bit_cmp (opcode_bits *l, opcode_bits *r)
+opcode_bit_cmp (const opcode_bits *l, const opcode_bits *r)
{
if (l == NULL && r == NULL)
return 0; /* all previous bits the same */
@@ -233,7 +236,7 @@ opcode_bit_cmp (opcode_bits *l, opcode_bits *r)
/* same as strcmp */
static int
-opcode_bits_cmp (opcode_bits *l, opcode_bits *r)
+opcode_bits_cmp (const opcode_bits *l, const opcode_bits *r)
{
while (1)
{
@@ -452,7 +455,7 @@ insn_list_insert (insn_list **cur_insn_ptr,
extern void
gen_entry_traverse_tree (lf *file,
- gen_entry *table,
+ const gen_entry *table,
int depth,
gen_entry_handler * start,
gen_entry_handler * leaf,
@@ -498,7 +501,9 @@ gen_entry_traverse_tree (lf *file,
/* create a list element containing a single gen_table entry */
static gen_list *
-make_table (insn_table *isa, decode_table *rules, model_entry *model)
+make_table (const insn_table *isa,
+ const decode_table *rules,
+ const model_entry *model)
{
insn_entry *insn;
gen_list *entry = ZALLOC (gen_list);
@@ -524,7 +529,7 @@ make_table (insn_table *isa, decode_table *rules, model_entry *model)
gen_table *
-make_gen_tables (insn_table *isa, decode_table *rules)
+make_gen_tables (const insn_table *isa, const decode_table *rules)
{
gen_table *gen = ZALLOC (gen_table);
gen->isa = isa;
@@ -560,9 +565,9 @@ make_gen_tables (insn_table *isa, decode_table *rules)
/* Is the bit, according to the decode rule, identical across all the
instructions? */
static int
-insns_bit_useless (insn_list *insns, decode_table *rule, int bit_nr)
+insns_bit_useless (const insn_list *insns, const decode_table *rule, int bit_nr)
{
- insn_list *entry;
+ const insn_list *entry;
int value = -1;
int is_useless = 1; /* cleared if something actually found */
@@ -710,7 +715,7 @@ insns_bit_useless (insn_list *insns, decode_table *rule, int bit_nr)
static opcode_field *
gen_entry_find_opcode_field (insn_list *insns,
- decode_table *rule, int string_only)
+ const decode_table *rule, int string_only)
{
opcode_field curr_opcode;
ASSERT (rule != NULL);
@@ -1118,9 +1123,9 @@ insns_match_conditions (insn_list *insns, decode_cond *conditions)
}
static int
-insns_match_nr_words (insn_list *insns, int nr_words)
+insns_match_nr_words (const insn_list *insns, int nr_words)
{
- insn_list *i;
+ const insn_list *i;
for (i = insns; i != NULL; i = i->next)
{
if (i->insn->nr_words < nr_words)
@@ -1130,11 +1135,11 @@ insns_match_nr_words (insn_list *insns, int nr_words)
}
static int
-insn_list_cmp (insn_list *l, insn_list *r)
+insn_list_cmp (const insn_list *l, const insn_list *r)
{
while (1)
{
- insn_entry *insn;
+ const insn_entry *insn;
if (l == NULL && r == NULL)
return 0;
if (l == NULL)
@@ -1157,7 +1162,7 @@ insn_list_cmp (insn_list *l, insn_list *r)
static void
gen_entry_expand_insns (gen_entry *table)
{
- decode_table *opcode_rule;
+ const decode_table *opcode_rule;
ASSERT (table->nr_insns >= 1);
@@ -1456,7 +1461,7 @@ gen_tables_expand_insns (gen_table *gen)
worked. */
static void
-make_gen_semantics_list (lf *file, gen_entry *entry, int depth, void *data)
+make_gen_semantics_list (lf *file, const gen_entry *entry, int depth, void *data)
{
gen_table *gen = (gen_table *) data;
insn_list *insn;