From: Alexandre Oliva Date: Sat, 19 Oct 2002 00:37:50 +0000 (+0000) Subject: * config/tc-mips.c (md_begin): Add $fcc registers to the symbol X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6047c971a24f05be2c5ff6b45cfd56e9ca0fc020;p=binutils-gdb.git * config/tc-mips.c (md_begin): Add $fcc registers to the symbol table as register names. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index f3cb90de6bb..1c9ee5bab1c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-10-18 Alexandre Oliva + + * config/tc-mips.c (md_begin): Add $fcc registers to the symbol + table as register names. + 2002-10-18 Ulrich Weigand * 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 5a30e51ab1a..de49657b3f6 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;