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)