X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gas%2Fliteral.c;h=6cbbe7e54ac2d3594ffbff8094f1bf6663d83a1c;hb=2dec564e9127282478f922bc9946248745c5b140;hp=ada59e73630cabc38e34cb99d6c815475d3a00f4;hpb=e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a;p=binutils-gdb.git diff --git a/gas/literal.c b/gas/literal.c index ada59e73630..6cbbe7e54ac 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 1994, 2000, 2005, 2007 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,7 +40,7 @@ #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) @@ -60,13 +61,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 +89,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