OSDN Git Service

* config/tc-avr.c (md_apply_fix3): Reinstate code handling pcrel
authorAlan Modra <amodra@bigpond.net.au>
Fri, 27 Sep 2002 04:38:47 +0000 (04:38 +0000)
committerAlan Modra <amodra@bigpond.net.au>
Fri, 27 Sep 2002 04:38:47 +0000 (04:38 +0000)
fixups to current or absolute section.

gas/ChangeLog
gas/config/tc-avr.c

index b1b96d4..48b179e 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/tc-avr.c (md_apply_fix3): Reinstate code handling pcrel
+       fixups to current or absolute section.
+
 2002-09-26  Jim Wilson  <wilson@redhat.com>
 
        * config/tc-v850.c (v850_offset): Use frag_var instead of frag_now_fix
index 573fa38..c951646 100644 (file)
@@ -838,6 +838,17 @@ md_apply_fix3 (fixP, valP, seg)
   if (fixP->fx_addsy == (symbolS *) NULL)
     fixP->fx_done = 1;
 
+  else if (fixP->fx_pcrel)
+    {
+      segT s = S_GET_SEGMENT (fixP->fx_addsy);
+
+      if (s == seg || s == absolute_section)
+       {
+         value += S_GET_VALUE (fixP->fx_addsy);
+         fixP->fx_done = 1;
+       }
+    }
+
   /* We don't actually support subtracting a symbol.  */
   if (fixP->fx_subsy != (symbolS *) NULL)
     as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex"));