1 |
/* BFD library support routines for the AVR architecture. |
/* BFD library support routines for the AVR architecture. |
2 |
Copyright 1999, 2000 Free Software Foundation, Inc. |
Copyright 1999, 2000, 2002 Free Software Foundation, Inc. |
3 |
Contributed by Denis Chertykov <denisc@overta.ru> |
Contributed by Denis Chertykov <denisc@overta.ru> |
4 |
|
|
5 |
This file is part of BFD, the Binary File Descriptor library. |
This file is part of BFD, the Binary File Descriptor library. |
44 |
static const bfd_arch_info_type arch_info_struct[] = |
static const bfd_arch_info_type arch_info_struct[] = |
45 |
{ |
{ |
46 |
/* AT90S1200, ATtiny1x, ATtiny28 */ |
/* AT90S1200, ATtiny1x, ATtiny28 */ |
47 |
N (16, bfd_mach_avr1, "avr:1", false, & arch_info_struct[1]), |
N (16, bfd_mach_avr1, "avr:1", FALSE, & arch_info_struct[1]), |
48 |
|
|
49 |
/* AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22 */ |
/* AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22 */ |
50 |
N (16, bfd_mach_avr2, "avr:2", false, & arch_info_struct[2]), |
N (16, bfd_mach_avr2, "avr:2", FALSE, & arch_info_struct[2]), |
51 |
|
|
52 |
/* ATmega103, ATmega603 */ |
/* ATmega103, ATmega603 */ |
53 |
N (22, bfd_mach_avr3, "avr:3", false, & arch_info_struct[3]), |
N (22, bfd_mach_avr3, "avr:3", FALSE, & arch_info_struct[3]), |
54 |
|
|
55 |
/* ATmega83, ATmega85 */ |
/* ATmega83, ATmega85 */ |
56 |
N (16, bfd_mach_avr4, "avr:4", false, & arch_info_struct[4]), |
N (16, bfd_mach_avr4, "avr:4", FALSE, & arch_info_struct[4]), |
57 |
|
|
58 |
/* ATmega161, ATmega163, ATmega32, AT94K */ |
/* ATmega161, ATmega163, ATmega32, AT94K */ |
59 |
N (22, bfd_mach_avr5, "avr:5", false, NULL) |
N (22, bfd_mach_avr5, "avr:5", FALSE, NULL) |
60 |
}; |
}; |
61 |
|
|
62 |
const bfd_arch_info_type bfd_avr_arch = |
const bfd_arch_info_type bfd_avr_arch = |
63 |
N (16, bfd_mach_avr2, "avr", true, & arch_info_struct[0]); |
N (16, bfd_mach_avr2, "avr", TRUE, & arch_info_struct[0]); |
64 |
|
|
65 |
/* This routine is provided two arch_infos and works out which AVR |
/* This routine is provided two arch_infos and works out which AVR |
66 |
machine which would be compatible with both and returns a pointer |
machine which would be compatible with both and returns a pointer |
76 |
return NULL; |
return NULL; |
77 |
|
|
78 |
/* Special case for ATmega[16]03 (avr:3) and ATmega83 (avr:4). */ |
/* Special case for ATmega[16]03 (avr:3) and ATmega83 (avr:4). */ |
79 |
if ((a->mach == 3 && b->mach == 4) |
if ((a->mach == bfd_mach_avr3 && b->mach == bfd_mach_avr4) |
80 |
|| (a->mach == 4 && b->mach == 3)) |
|| (a->mach == bfd_mach_avr4 && b->mach == bfd_mach_avr3)) |
81 |
return NULL; |
return NULL; |
82 |
|
|
83 |
/* So far all newer AVR architecture cores are supersets of previous |
/* So far all newer AVR architecture cores are supersets of previous |