From 877335413869679f06ce9404a47f5ecc6c836427 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 27 Sep 2002 04:38:47 +0000 Subject: [PATCH] * config/tc-avr.c (md_apply_fix3): Reinstate code handling pcrel fixups to current or absolute section. --- gas/ChangeLog | 5 +++++ gas/config/tc-avr.c | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index b1b96d4..48b179e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-09-27 Alan Modra + + * config/tc-avr.c (md_apply_fix3): Reinstate code handling pcrel + fixups to current or absolute section. + 2002-09-26 Jim Wilson * config/tc-v850.c (v850_offset): Use frag_var instead of frag_now_fix diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c index 573fa38..c951646 100644 --- a/gas/config/tc-avr.c +++ b/gas/config/tc-avr.c @@ -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")); -- 2.7.4