diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 26 |
2 files changed, 21 insertions, 11 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 7c1608a..eb5346d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2002-02-13 Chris Demetriou <cgd@broadcom.com> + + * config/tc-mips.c (mips_need_elf_addend_fixup): Restructure into + a sequence of indpendent 'if' statements for easier debugging + and future modification. + 2002-02-13 Matt Fredette <fredette@netbsd.org> * config/tc-m68k.c (md_show_usage): No longer display a diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index d64d4eb..ec0bf25 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -10404,17 +10404,21 @@ static int mips_need_elf_addend_fixup (fixP) fixS *fixP; { - return (S_GET_OTHER (fixP->fx_addsy) == STO_MIPS16 - || ((S_IS_WEAK (fixP->fx_addsy) - || S_IS_EXTERN (fixP->fx_addsy)) - && !S_IS_COMMON (fixP->fx_addsy)) - || (symbol_used_in_reloc_p (fixP->fx_addsy) - && (((bfd_get_section_flags (stdoutput, - S_GET_SEGMENT (fixP->fx_addsy)) - & SEC_LINK_ONCE) != 0) - || !strncmp (segment_name (S_GET_SEGMENT (fixP->fx_addsy)), - ".gnu.linkonce", - sizeof (".gnu.linkonce") - 1)))); + if (S_GET_OTHER (fixP->fx_addsy) == STO_MIPS16) + return 1; + if ((S_IS_WEAK (fixP->fx_addsy) + || S_IS_EXTERN (fixP->fx_addsy)) + && !S_IS_COMMON (fixP->fx_addsy)) + return 1; + if (symbol_used_in_reloc_p (fixP->fx_addsy) + && (((bfd_get_section_flags (stdoutput, + S_GET_SEGMENT (fixP->fx_addsy)) + & SEC_LINK_ONCE) != 0) + || !strncmp (segment_name (S_GET_SEGMENT (fixP->fx_addsy)), + ".gnu.linkonce", + sizeof (".gnu.linkonce") - 1))) + return 1; + return 0; } #endif |