diff options
author | Tristan Gingold <gingold@adacore.com> | 2008-12-09 09:51:08 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2008-12-09 09:51:08 +0000 |
commit | 4eb168a67c205bcb006206828e37a13625e866a3 (patch) | |
tree | b7d1a8117797b56804ac8d7e050299d67aa16e48 /bfd/cpu-avr.c | |
parent | f0f04fb56dee659371d0cdb56cbc13e5feb3da2d (diff) | |
download | binutils-redhat-4eb168a67c205bcb006206828e37a13625e866a3.tar.gz |
2008-12-09 Tristan Gingold <gingold@adacore.com>
* cpu-avr.c (compatible): Makes avr-6 compatible only with itself.
Diffstat (limited to 'bfd/cpu-avr.c')
-rw-r--r-- | bfd/cpu-avr.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bfd/cpu-avr.c b/bfd/cpu-avr.c index 364f64ea2e..ddc410beed 100644 --- a/bfd/cpu-avr.c +++ b/bfd/cpu-avr.c @@ -38,7 +38,13 @@ compatible (const bfd_arch_info_type * a, if (a->mach == b->mach) return a; - if (a->mach <= bfd_mach_avr6 && b->mach <= bfd_mach_avr6) + /* avr-6 is compatible only with itself as its call convention is not + compatible with other avr (the mcu saves the return address on 3 bytes + instead of 2). */ + if (a->mach == bfd_mach_avr6 || b->mach == bfd_mach_avr6) + return NULL; + + if (a->mach < bfd_mach_avr6 && b->mach < bfd_mach_avr6) { /* Special case for ATmega[16]03 (avr:3) and ATmega83 (avr:4). */ if ((a->mach == bfd_mach_avr3 && b->mach == bfd_mach_avr4) |