opcodes: constify & scope microblaze opcodes
authorMike Frysinger <vapier@gentoo.org>
Sun, 27 Jun 2021 05:55:50 +0000 (01:55 -0400)
committerMike Frysinger <vapier@gentoo.org>
Thu, 1 Jul 2021 21:55:26 +0000 (17:55 -0400)
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.

gas/ChangeLog
gas/config/tc-microblaze.c
opcodes/ChangeLog
opcodes/microblaze-dis.c
opcodes/microblaze-opc.h

index 9ad388e5a52e8defc72ad2c186ee6ae6c8dfa8a5..0d830d62b520be62e5e6aaa750e6751925cab7b4 100644 (file)
@@ -1,3 +1,8 @@
+2021-07-01  Mike Frysinger  <vapier@gentoo.org>
+
+       * config/tc-microblaze.c (md_begin): Make opcode const.  Rename
+       opcodes to microblaze_opcodes.
+
 2021-07-01  Mike Frysinger  <vapier@gentoo.org>
 
        * config/tc-aarch64.c (struct templates): Make opcode const.
index 9893bc47cfd7732c0196027f6929351cbcd68e68..881172d52748fbcc573eeb91913b3450afcd0bff 100644 (file)
@@ -411,12 +411,12 @@ const pseudo_typeS md_pseudo_table[] =
 void
 md_begin (void)
 {
-  struct op_code_struct * opcode;
+  const struct op_code_struct * opcode;
 
   opcode_hash_control = str_htab_create ();
 
   /* Insert unique names into hash table.  */
-  for (opcode = opcodes; opcode->name; opcode ++)
+  for (opcode = microblaze_opcodes; opcode->name; opcode ++)
     str_hash_insert (opcode_hash_control, opcode->name, opcode, 0);
 }
 
index de90ac57ef78d2a33fb59268752ca0b4a29818f2..2b7022138102771f1a8fd4a74f7f5a46d0a2926c 100644 (file)
@@ -1,3 +1,15 @@
+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.
index aa75c4cc1fd12e01e8078e30f037ac2a4b8e47e3..1696f559a0b79ef25ef1d3a9678584da0a6ce201 100644 (file)
@@ -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;
 
index 3182d948956852b79bc760a4de2b66798e283515..080d238bd2b7382bcb8f90525700fb3f47152775 100644 (file)
 
 #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 },