]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/literal.c
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / literal.c
index ada59e73630cabc38e34cb99d6c815475d3a00f4..dffc85acab410d269e11895d499e657888015353 100644 (file)
@@ -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-2021 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
 #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