include/opcode/
authorRichard Sandiford <rdsandiford@googlemail.com>
Mon, 19 Aug 2013 19:56:44 +0000 (19:56 +0000)
committerRichard Sandiford <rdsandiford@googlemail.com>
Mon, 19 Aug 2013 19:56:44 +0000 (19:56 +0000)
* mips.h: Remove references to "+I" and imm2_expr.

gas/
* config/tc-mips.c (imm2_expr): Delete.
(md_assemble, match_insn, imm2_expr.X_op, mips_ip): Update accordingly.

gas/ChangeLog
gas/config/tc-mips.c
include/opcode/ChangeLog
include/opcode/mips.h

index e5e34a6..87c4013 100644 (file)
@@ -1,5 +1,10 @@
 2013-08-19  Richard Sandiford  <rdsandiford@googlemail.com>
 
+       * config/tc-mips.c (imm2_expr): Delete.
+       (md_assemble, match_insn, imm2_expr.X_op, mips_ip): Update accordingly.
+
+2013-08-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
        * config/tc-mips.c (report_bad_range, report_bad_field): Delete.
        (macro): Remove M_DEXT and M_DINS handling.
 
index f2c6768..a98e443 100644 (file)
@@ -1762,11 +1762,10 @@ mips_mark_labels (void)
 \f
 static char *expr_end;
 
-/* Expressions which appear in macro instructions.  These are set by
-   mips_ip and read by macro.  */
+/* An expression in a macro instruction.  This is set by mips_ip and
+   mips16_ip.  */
 
 static expressionS imm_expr;
-static expressionS imm2_expr;
 
 /* The relocatable field in an instruction and the relocs associated
    with it.  These variables are used for instructions like LUI and
@@ -3584,7 +3583,6 @@ md_assemble (char *str)
     = {BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED};
 
   imm_expr.X_op = O_absent;
-  imm2_expr.X_op = O_absent;
   offset_expr.X_op = O_absent;
   offset_reloc[0] = BFD_RELOC_UNUSED;
   offset_reloc[1] = BFD_RELOC_UNUSED;
@@ -7024,7 +7022,6 @@ match_insn (struct mips_cl_insn *insn, const struct mips_opcode *opcode,
   char c;
 
   imm_expr.X_op = O_absent;
-  imm2_expr.X_op = O_absent;
   offset_expr.X_op = O_absent;
   offset_reloc[0] = BFD_RELOC_UNUSED;
   offset_reloc[1] = BFD_RELOC_UNUSED;
@@ -7129,16 +7126,6 @@ match_insn (struct mips_cl_insn *insn, const struct mips_opcode *opcode,
        case '+':
          switch (args[1])
            {
-           case 'I':
-             /* "+I" is like "I", except that imm2_expr is used.  */
-             if (!match_const_int (&arg, &imm2_expr.X_add_number))
-               return FALSE;
-             imm2_expr.X_op = O_constant;
-             if (HAVE_32BIT_GPRS)
-               normalize_constant_expr (&imm2_expr);
-             ++args;
-             continue;
-
            case 'i':
              *offset_reloc = BFD_RELOC_MIPS_JMP;
              break;
@@ -7260,7 +7247,6 @@ match_mips16_insn (struct mips_cl_insn *insn, const struct mips_opcode *opcode,
 
   create_insn (insn, opcode);
   imm_expr.X_op = O_absent;
-  imm2_expr.X_op = O_absent;
   offset_expr.X_op = O_absent;
   offset_reloc[0] = BFD_RELOC_UNUSED;
   offset_reloc[1] = BFD_RELOC_UNUSED;
@@ -12933,11 +12919,10 @@ mips_lookup_insn (struct hash_control *hash, const char *start,
 }
 
 /* Assemble an instruction into its binary format.  If the instruction
-   is a macro, set imm_expr, imm2_expr and offset_expr to the values
-   associated with "I", "+I" and "A" operands respectively.  Otherwise
-   store the value of the relocatable field (if any) in offset_expr.
-   In both cases set offset_reloc to the relocation operators applied
-   to offset_expr.  */
+   is a macro, set imm_expr and offset_expr to the values associated
+   with "I" and "A" operands respectively.  Otherwise store the value
+   of the relocatable field (if any) in offset_expr.  In both cases
+   set offset_reloc to the relocation operators applied to offset_expr.  */
 
 static void
 mips_ip (char *str, struct mips_cl_insn *insn)
index bacadb0..e842f5d 100644 (file)
@@ -1,5 +1,9 @@
 2013-08-19  Richard Sandiford  <rdsandiford@googlemail.com>
 
+       * mips.h: Remove references to "+I" and imm2_expr.
+
+2013-08-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
        * mips.h (M_DEXT, M_DINS): Delete.
 
 2013-08-19  Richard Sandiford  <rdsandiford@googlemail.com>
index c768cf2..f21697e 100644 (file)
@@ -799,7 +799,6 @@ struct mips_opcode
    Macro instructions:
    "A" General 32 bit expression
    "I" 32 bit immediate (value placed in imm_expr).
-   "+I" 32 bit immediate (value placed in imm2_expr).
    "F" 64 bit floating point constant in .rdata
    "L" 64 bit floating point constant in .lit8
    "f" 32 bit floating point constant
@@ -906,7 +905,7 @@ struct mips_opcode
    Extension character sequences used so far ("+" followed by the
    following), for quick reference when adding more:
    "1234567890"
-   "ABCEFGHIJKLMNPQSXZ"
+   "ABCEFGHJKLMNPQSXZ"
    "abcfgijmpqrstxyz"
 */
 
@@ -2025,7 +2024,6 @@ extern const int bfd_mips16_num_opcodes;
    Macro instructions:
    "A" general 32 bit expression
    "I" 32-bit immediate (value placed in imm_expr).
-   "+I" 32-bit immediate (value placed in imm2_expr).
    "F" 64-bit floating point constant in .rdata
    "L" 64-bit floating point constant in .lit8
    "f" 32-bit floating point constant
@@ -2062,7 +2060,7 @@ extern const int bfd_mips16_num_opcodes;
    following), for quick reference when adding more:
    ""
    ""
-   "ABCEFGHI"
+   "ABCEFGH"
    "ij"
 
    Extension character sequences used so far ("m" followed by the