aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2021-06-27 01:55:50 -0400
committerMike Frysinger <vapier@gentoo.org>2021-07-01 17:55:26 -0400
commit52b8387412e32380013a46dd00959e65ecef71fb (patch)
tree58c187ee90d65e0ab2b3e055dec6f02cca0ae114 /opcodes
parent6c2ede018c51895a3ce7902c86698b90a086e6e0 (diff)
downloadfsf-binutils-gdb-52b8387412e32380013a46dd00959e65ecef71fb.zip
fsf-binutils-gdb-52b8387412e32380013a46dd00959e65ecef71fb.tar.gz
fsf-binutils-gdb-52b8387412e32380013a46dd00959e65ecef71fb.tar.bz2
opcodes: constify & scope microblaze opcodes
This is exporting the variable "opcodes" as a large writable blob. This is not a namespace friendly name, so add a "microblaze" prefix, and then sprinkle const over its definition & use.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog12
-rw-r--r--opcodes/microblaze-dis.c18
-rw-r--r--opcodes/microblaze-opc.h4
3 files changed, 23 insertions, 11 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index de90ac5..2b70221 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,17 @@
2021-07-01 Mike Frysinger <vapier@gentoo.org>
+ * microblaze-dis.c (get_field_special): Make op const.
+ (read_insn_microblaze): Make opr & op const. Rename opcodes to
+ microblaze_opcodes.
+ (print_insn_microblaze): Make op & pop const.
+ (get_insn_microblaze): Make op const. Rename opcodes to
+ microblaze_opcodes.
+ (microblaze_get_target_address): Likewise.
+ * microblaze-opc.h (struct op_code_struct): Make const.
+ Rename opcodes to microblaze_opcodes.
+
+2021-07-01 Mike Frysinger <vapier@gentoo.org>
+
* aarch64-gen.c (aarch64_opcode_table): Add const.
* aarch64-tbl.h (aarch64_opcode_table): Likewise.
diff --git a/opcodes/microblaze-dis.c b/opcodes/microblaze-dis.c
index aa75c4c..1696f55 100644
--- a/opcodes/microblaze-dis.c
+++ b/opcodes/microblaze-dis.c
@@ -111,7 +111,7 @@ get_field_imm15 (struct string_buf *buf, long instr)
static char *
get_field_special (struct string_buf *buf, long instr,
- struct op_code_struct *op)
+ const struct op_code_struct *op)
{
char *p = strbuf (buf);
char *spr;
@@ -184,11 +184,11 @@ get_field_special (struct string_buf *buf, long instr,
static unsigned long
read_insn_microblaze (bfd_vma memaddr,
struct disassemble_info *info,
- struct op_code_struct **opr)
+ const struct op_code_struct **opr)
{
unsigned char ibytes[4];
int status;
- struct op_code_struct * op;
+ const struct op_code_struct *op;
unsigned long inst;
status = info->read_memory_func (memaddr, ibytes, 4, info);
@@ -209,7 +209,7 @@ read_insn_microblaze (bfd_vma memaddr,
abort ();
/* Just a linear search of the table. */
- for (op = opcodes; op->name != 0; op ++)
+ for (op = microblaze_opcodes; op->name != 0; op ++)
if (op->bit_sequence == (inst & op->opcode_mask))
break;
@@ -224,7 +224,7 @@ print_insn_microblaze (bfd_vma memaddr, struct disassemble_info * info)
fprintf_ftype print_func = info->fprintf_func;
void *stream = info->stream;
unsigned long inst, prev_inst;
- struct op_code_struct *op, *pop;
+ const struct op_code_struct *op, *pop;
int immval = 0;
bool immfound = false;
static bfd_vma prev_insn_addr = -1; /* Init the prev insn addr. */
@@ -452,11 +452,11 @@ get_insn_microblaze (long inst,
enum microblaze_instr_type *insn_type,
short *delay_slots)
{
- struct op_code_struct * op;
+ const struct op_code_struct *op;
*isunsignedimm = false;
/* Just a linear search of the table. */
- for (op = opcodes; op->name != 0; op ++)
+ for (op = microblaze_opcodes; op->name != 0; op ++)
if (op->bit_sequence == (inst & op->opcode_mask))
break;
@@ -494,12 +494,12 @@ microblaze_get_target_address (long inst, bool immfound, int immval,
bool *targetvalid,
bool *unconditionalbranch)
{
- struct op_code_struct * op;
+ const struct op_code_struct *op;
long targetaddr = 0;
*unconditionalbranch = false;
/* Just a linear search of the table. */
- for (op = opcodes; op->name != 0; op ++)
+ for (op = microblaze_opcodes; op->name != 0; op ++)
if (op->bit_sequence == (inst & op->opcode_mask))
break;
diff --git a/opcodes/microblaze-opc.h b/opcodes/microblaze-opc.h
index 3182d94..080d238 100644
--- a/opcodes/microblaze-opc.h
+++ b/opcodes/microblaze-opc.h
@@ -103,7 +103,7 @@
#define MAX_OPCODES 289
-struct op_code_struct
+const struct op_code_struct
{
const char * name;
short inst_type; /* Registers and immediate values involved. */
@@ -117,7 +117,7 @@ struct op_code_struct
enum microblaze_instr instr;
enum microblaze_instr_type instr_type;
/* More info about output format here. */
-} opcodes[MAX_OPCODES] =
+} microblaze_opcodes[MAX_OPCODES] =
{
{"add", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x00000000, OPCODE_MASK_H4, add, arithmetic_inst },
{"rsub", INST_TYPE_RD_R1_R2, INST_NO_OFFSET, NO_DELAY_SLOT, IMMVAL_MASK_NON_SPECIAL, 0x04000000, OPCODE_MASK_H4, rsub, arithmetic_inst },