X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=gas%2Fliteral.c;h=957223ccf905747f1f141a3b89b7eeaad0919240;hb=c6412eeea9de28f1a7c69c1ea2dc5d736642648f;hp=ada59e73630cabc38e34cb99d6c815475d3a00f4;hpb=e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/literal.c b/gas/literal.c index ada59e7363..957223ccf9 100644 --- a/gas/literal.c +++ b/gas/literal.c @@ -1,12 +1,12 @@ -/* as.c - GAS literal pool management. - Copyright (C) 1994 Free Software Foundation, Inc. +/* literal.c - GAS literal pool management. + Copyright (C) 1994-2020 Free Software Foundation, Inc. Written by Ken Raeburn (raeburn@cygnus.com). This file is part of GAS, the GNU Assembler. GAS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GAS is distributed in the hope that it will be useful, @@ -16,7 +16,8 @@ You should have received a copy of the GNU General Public License along with GAS; see the file COPYING. If not, write to - the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + the Free Software Foundation, 51 Franklin Street - Fifth Floor, + Boston, MA 02110-1301, USA. */ /* This isn't quite a "constant" pool. Some of the values may get adjusted at run time, e.g., for symbolic relocations when shared @@ -39,14 +40,10 @@ #include "as.h" #include "subsegs.h" -#if defined (BFD_ASSEMBLER) && defined (NEED_LITERAL_POOL) +#ifdef NEED_LITERAL_POOL valueT -add_to_literal_pool (sym, addend, sec, size) - symbolS *sym; - valueT addend; - segT sec; - int size; +add_to_literal_pool (symbolS *sym, valueT addend, segT sec, int size) { segT current_section = now_seg; int current_subsec = now_subseg; @@ -60,13 +57,14 @@ add_to_literal_pool (sym, addend, sec, size) /* @@ This assumes all entries in a given section will be of the same size... Probably correct, but unwise to rely on. */ /* This must always be called with the same subsegment. */ - for (fixp = frchain_now->fix_root; - fixp != (fixS *) NULL; - fixp = fixp->fx_next, offset += size) - { - if (fixp->fx_addsy == sym && fixp->fx_offset == addend) - return offset; - } + if (seginfo->frchainP) + for (fixp = seginfo->frchainP->fix_root; + fixp != (fixS *) NULL; + fixp = fixp->fx_next, offset += size) + { + if (fixp->fx_addsy == sym && fixp->fx_offset == addend) + return offset; + } subseg_set (sec, 0); p = frag_more (size); @@ -87,10 +85,8 @@ add_to_literal_pool (sym, addend, sec, size) reloc_type); subseg_set (current_section, current_subsec); - offset = seginfo->literal_pool_size; seginfo->literal_pool_size += size; - return offset; } -#endif /* BFD_ASSEMBLER */ +#endif