From 6047c971a24f05be2c5ff6b45cfd56e9ca0fc020 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Sat, 19 Oct 2002 00:37:50 +0000 Subject: [PATCH] * config/tc-mips.c (md_begin): Add $fcc registers to the symbol table as register names. --- gas/ChangeLog | 5 +++++ gas/config/tc-mips.c | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index f3cb90d..1c9ee5b 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 5a30e51..de49657 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; -- 2.7.4