aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2013-02-18 23:27:23 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2013-02-18 23:27:23 +0000
commit8a75745d3114db2057e6f9b94a74939ac4768419 (patch)
tree586248e64b24f15c6e2d959fdb0b424484adebe8 /gas/config
parent5b175e562bea1d0899b2d870715784d09c087f5b (diff)
downloadgdb-8a75745d3114db2057e6f9b94a74939ac4768419.zip
gdb-8a75745d3114db2057e6f9b94a74939ac4768419.tar.gz
gdb-8a75745d3114db2057e6f9b94a74939ac4768419.tar.bz2
* 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.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-mips.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 3d472f9..a9b46e9 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 ();
}