summaryrefslogtreecommitdiff
path: root/gas/config/tc-avr.h
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2006-05-24 07:36:12 +0000
committerNick Clifton <nickc@redhat.com>2006-05-24 07:36:12 +0000
commita40184dc9a53617c118bfffea026f0d9db93315a (patch)
treeb4d195ae2f224e0090b9edbef39950d50d379883 /gas/config/tc-avr.h
parent5f19a1e4fb11207c6992c0bd24b9ecdb9c6b40f6 (diff)
downloadbinutils-redhat-a40184dc9a53617c118bfffea026f0d9db93315a.tar.gz
Add support for AVR6 family
Diffstat (limited to 'gas/config/tc-avr.h')
-rw-r--r--gas/config/tc-avr.h29
1 files changed, 17 insertions, 12 deletions
diff --git a/gas/config/tc-avr.h b/gas/config/tc-avr.h
index b79fc051ae..07235199ab 100644
--- a/gas/config/tc-avr.h
+++ b/gas/config/tc-avr.h
@@ -125,16 +125,21 @@ extern long md_pcrel_from_section (struct fix *, segT);
We will need them in case that we want to do linker relaxation.
We could in principle keep these fixups in gas when not relaxing.
However, there is no serious performance penilty when making the linker
- make the fixup work. */
-#define TC_VALIDATE_FIX(FIXP,SEG,SKIP) \
- if ( (FIXP->fx_r_type == BFD_RELOC_AVR_7_PCREL \
- || FIXP->fx_r_type == BFD_RELOC_AVR_13_PCREL \
- || FIXP->fx_r_type == BFD_RELOC_AVR_LO8_LDI_PM \
- || FIXP->fx_r_type == BFD_RELOC_AVR_HI8_LDI_PM \
- || FIXP->fx_r_type == BFD_RELOC_AVR_HH8_LDI_PM \
- || FIXP->fx_r_type == BFD_RELOC_AVR_16_PM) \
- && (FIXP->fx_addsy)) \
- { \
- goto SKIP; \
+ make the fixup work. Check also that fx_addsy is not NULL, in order to make
+ sure that the fixup refers to some sort of lable. */
+#define TC_VALIDATE_FIX(FIXP,SEG,SKIP) \
+ if ( (FIXP->fx_r_type == BFD_RELOC_AVR_7_PCREL \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_13_PCREL \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_LO8_LDI_PM \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_LO8_LDI_GS \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_HI8_LDI_PM \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_HI8_LDI_GS \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_HH8_LDI_PM \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_LO8_LDI_PM_NEG \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_HI8_LDI_PM_NEG \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_HH8_LDI_PM_NEG \
+ || FIXP->fx_r_type == BFD_RELOC_AVR_16_PM) \
+ && (FIXP->fx_addsy)) \
+ { \
+ goto SKIP; \
}
-