From 8a75745d3114db2057e6f9b94a74939ac4768419 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Mon, 18 Feb 2013 23:27:23 +0000 Subject: [PATCH] * 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. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index f825a90b95c..1a3ec069c23 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2013-02-18 Maciej W. Rozycki + + * 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 * config/tc-mips.c (append_insn): Correct indentation, remove diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 3d472f90cbb..a9b46e971d9 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -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 (); } -- 2.30.2