summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2002-10-19 00:37:50 +0000
committerAlexandre Oliva <aoliva@redhat.com>2002-10-19 00:37:50 +0000
commit6fd23dcb040d040a8129016adec94b6ef8f32178 (patch)
tree450ed2d73c76a9f6fc1750d53be38c4868465640
parent147de71d79a2ba77e07845bc0c8d6e73582a2b12 (diff)
downloadbinutils-redhat-6fd23dcb040d040a8129016adec94b6ef8f32178.tar.gz
* config/tc-mips.c (md_begin): Add $fcc registers to the symbol
table as register names.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-mips.c14
2 files changed, 19 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f3cb90de6b..1c9ee5bab1 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2002-10-18 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/tc-mips.c (md_begin): Add $fcc registers to the symbol
+ table as register names.
+
2002-10-18 Ulrich Weigand <uweigand@de.ibm.com>
* config/tc-s390.c (md_parse_option): Set s390_arch_size to 32
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 5a30e51ab1..de49657b3f 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -1223,6 +1223,20 @@ md_begin ()
symbol_table_insert (symbol_new ("$pc", reg_section, -1,
&zero_address_frag));
+ /* If we don't add these register names to the symbol table, they
+ may end up being added as regular symbols by operand(), and then
+ make it to the object file as undefined in case they're not
+ regarded as local symbols. They're local in o32, since `$' is a
+ local symbol prefix, but not in n32 or n64. */
+ for (i = 0; i < 8; i++)
+ {
+ char buf[6];
+
+ sprintf (buf, "$fcc%i", i);
+ symbol_table_insert (symbol_new (buf, reg_section, -1,
+ &zero_address_frag));
+ }
+
mips_no_prev_insn (false);
mips_gprmask = 0;