* config/tc-mips.c (s_cpload): Call mips_mark_labels and set
authorMaciej W. Rozycki <macro@linux-mips.org>
Mon, 18 Feb 2013 23:27:23 +0000 (23:27 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Mon, 18 Feb 2013 23:27:23 +0000 (23:27 +0000)
mips_assembling_insn appropriately.
(s_cpsetup, s_cprestore, s_cpreturn, s_cpadd): Likewise.

gas/ChangeLog
gas/config/tc-mips.c

index f825a90b95cbbdcfeb3cf685aca5951e08d0cbc1..1a3ec069c2332e77835f3351656ec736c88ccfee 100644 (file)
@@ -1,3 +1,9 @@
+2013-02-18  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * config/tc-mips.c (s_cpload): Call mips_mark_labels and set
+       mips_assembling_insn appropriately.
+       (s_cpsetup, s_cprestore, s_cpreturn, s_cpadd): Likewise.
+
 2013-02-18  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * config/tc-mips.c (append_insn): Correct indentation, remove
index 3d472f90cbb830407e68c4ab43777932fa7024f2..a9b46e971d94fc57ca48253bf05eb32dde40daa5 100644 (file)
@@ -16621,6 +16621,9 @@ s_cpload (int ignore ATTRIBUTE_UNUSED)
   /* In ELF, this symbol is implicitly an STT_OBJECT symbol.  */
   symbol_get_bfdsym (ex.X_add_symbol)->flags |= BSF_OBJECT;
 
+  mips_mark_labels ();
+  mips_assembling_insn = TRUE;
+
   macro_start ();
   macro_build_lui (&ex, mips_gp_register);
   macro_build (&ex, "addiu", "t,r,j", mips_gp_register,
@@ -16630,6 +16633,7 @@ s_cpload (int ignore ATTRIBUTE_UNUSED)
                 mips_gp_register, reg);
   macro_end ();
 
+  mips_assembling_insn = FALSE;
   demand_empty_rest_of_line ();
 }
 
@@ -16706,6 +16710,9 @@ s_cpsetup (int ignore ATTRIBUTE_UNUSED)
   SKIP_WHITESPACE ();
   expression (&ex_sym);
 
+  mips_mark_labels ();
+  mips_assembling_insn = TRUE;
+
   macro_start ();
   if (mips_cpreturn_register == -1)
     {
@@ -16753,6 +16760,7 @@ s_cpsetup (int ignore ATTRIBUTE_UNUSED)
 
   macro_end ();
 
+  mips_assembling_insn = FALSE;
   demand_empty_rest_of_line ();
 }
 
@@ -16810,11 +16818,15 @@ s_cprestore (int ignore ATTRIBUTE_UNUSED)
   ex.X_op_symbol = NULL;
   ex.X_add_number = mips_cprestore_offset;
 
+  mips_mark_labels ();
+  mips_assembling_insn = TRUE;
+
   macro_start ();
   macro_build_ldst_constoffset (&ex, ADDRESS_STORE_INSN, mips_gp_register,
                                SP, HAVE_64BIT_ADDRESSES);
   macro_end ();
 
+  mips_assembling_insn = FALSE;
   demand_empty_rest_of_line ();
 }
 
@@ -16845,6 +16857,9 @@ s_cpreturn (int ignore ATTRIBUTE_UNUSED)
       return;
     }
 
+  mips_mark_labels ();
+  mips_assembling_insn = TRUE;
+
   macro_start ();
   if (mips_cpreturn_register == -1)
     {
@@ -16860,6 +16875,7 @@ s_cpreturn (int ignore ATTRIBUTE_UNUSED)
                 mips_cpreturn_register, 0);
   macro_end ();
 
+  mips_assembling_insn = FALSE;
   demand_empty_rest_of_line ();
 }
 
@@ -17039,12 +17055,16 @@ s_cpadd (int ignore ATTRIBUTE_UNUSED)
       return;
     }
 
+  mips_mark_labels ();
+  mips_assembling_insn = TRUE;
+
   /* Add $gp to the register named as an argument.  */
   macro_start ();
   reg = tc_get_register (0);
   macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", reg, reg, mips_gp_register);
   macro_end ();
 
+  mips_assembling_insn = FALSE;
   demand_empty_rest_of_line ();
 }