gas d30v_insn plus other non-const pointers
d30v has a bunch of casts that are only needed due to various types
missing a const. Fix that.
diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c
index 4b4e73d..bfa4adf 100644
--- a/gas/config/tc-d30v.c
+++ b/gas/config/tc-d30v.c
@@ -306,11 +306,11 @@
void
md_begin (void)
{
- struct d30v_opcode *opcode;
+ const struct d30v_opcode *opcode;
d30v_hash = str_htab_create ();
/* Insert opcode names into a hash table. */
- for (opcode = (struct d30v_opcode *) d30v_opcode_table; opcode->name; opcode++)
+ for (opcode = d30v_opcode_table; opcode->name; opcode++)
str_hash_insert (d30v_hash, opcode->name, opcode, 0);
fixups = &FixUps[0];
@@ -484,8 +484,8 @@
int i, bits, shift, flags;
unsigned long number, id = 0;
long long insn;
- struct d30v_opcode *op = opcode->op;
- struct d30v_format *form = opcode->form;
+ const struct d30v_opcode *op = opcode->op;
+ const struct d30v_format *form = opcode->form;
insn =
opcode->ecc << 28 | op->op1 << 25 | op->op2 << 20 | form->modifier << 18;
@@ -682,8 +682,8 @@
int i, j, shift, regno, bits, ecc;
unsigned long flags, mask, flags_set1, flags_set2, flags_used1, flags_used2;
unsigned long ins, mod_reg[2][3], used_reg[2][3], flag_reg[2];
- struct d30v_format *f;
- struct d30v_opcode *op;
+ const struct d30v_format *f;
+ const struct d30v_opcode *op;
/* Section 4.3: Both instructions must not be IU or MU only. */
if ((op1->op->unit == IU && op2->op->unit == IU)
@@ -1122,14 +1122,14 @@
It must look at all formats for an opcode and use the operands
to choose the correct one. Return NULL on error. */
-static struct d30v_format *
-find_format (struct d30v_opcode *opcode,
+static const struct d30v_format *
+find_format (const struct d30v_opcode *opcode,
expressionS myops[],
int fsize,
int cmp_hack)
{
int match, opcode_index, i = 0, j, k;
- struct d30v_format *fm;
+ const struct d30v_format *fm;
if (opcode == NULL)
return NULL;
@@ -1145,7 +1145,7 @@
if (fsize == FORCE_LONG && opcode_index < LONG)
continue;
- fm = (struct d30v_format *) &d30v_format_table[opcode_index];
+ fm = &d30v_format_table[opcode_index];
k = opcode_index;
while (fm->form == opcode_index)
{
@@ -1266,7 +1266,7 @@
return fm;
}
- fm = (struct d30v_format *) &d30v_format_table[++k];
+ fm = &d30v_format_table[++k];
}
}
return NULL;
@@ -1339,7 +1339,7 @@
if (startswith (name, "cmp"))
{
int p, i;
- char **d30v_str = (char **) d30v_cc_names;
+ const char **d30v_str = d30v_cc_names;
if (name[3] == 'u')
p = 4;
diff --git a/include/opcode/d30v.h b/include/opcode/d30v.h
index 82b7612..a8db13e 100644
--- a/include/opcode/d30v.h
+++ b/include/opcode/d30v.h
@@ -279,8 +279,8 @@
/* formats, 2 SHORT_A forms and a LONG form. */
struct d30v_insn
{
- struct d30v_opcode *op; /* pointer to an entry in the opcode table */
- struct d30v_format *form; /* pointer to an entry in the format table */
+ const struct d30v_opcode *op; /* pointer to an entry in the opcode table */
+ const struct d30v_format *form; /* pointer to an entry in the format table */
int ecc; /* execution condition code */
};