X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fliteral.c;h=e2287c1cf624e6ff2e24b99feb07983a292faff9;hb=293f5f65435c4d309cbf463e941a8bd5ae50c02d;hp=ada59e73630cabc38e34cb99d6c815475d3a00f4;hpb=e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/literal.c b/gas/literal.c index ada59e7363..e2287c1cf6 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-2016 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