]>
Commit | Line | Data |
---|---|---|
dbe7ab63 | 1 | diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c |
6ef8d480 PZ |
2 | --- gcc/config/avr/avr-devices.c 2011-06-24 10:37:25.000000000 +0530 |
3 | +++ gcc/config/avr/avr-devices.c 2011-06-24 10:36:43.000000000 +0530 | |
dbe7ab63 | 4 | @@ -55,7 +55,7 @@ const struct base_arch_s avr_arch_types[ |
5 | - avr-libc. */ | |
6 | ||
7 | const struct mcu_type_s avr_mcu_types[] = { | |
8 | - /* Classic, <= 8K. */ | |
9 | + /* Classic, <= 8K, 2-byte PC. */ | |
10 | { "avr2", ARCH_AVR2, NULL, 0, 0x0060, "s8515" }, | |
11 | { "at90s2313", ARCH_AVR2, "__AVR_AT90S2313__", 1, 0x0060, "s2313" }, | |
12 | { "at90s2323", ARCH_AVR2, "__AVR_AT90S2323__", 1, 0x0060, "s2323" }, | |
13 | @@ -69,7 +69,7 @@ const struct mcu_type_s avr_mcu_types[] | |
14 | { "at90s8515", ARCH_AVR2, "__AVR_AT90S8515__", 0, 0x0060, "s8515" }, | |
15 | { "at90c8534", ARCH_AVR2, "__AVR_AT90C8534__", 0, 0x0060, "c8534" }, | |
16 | { "at90s8535", ARCH_AVR2, "__AVR_AT90S8535__", 0, 0x0060, "s8535" }, | |
17 | - /* Classic + MOVW, <= 8K. */ | |
18 | + /* Classic, <= 8K + 2-byte PC + { MOVW/LPMX }. */ | |
19 | { "avr25", ARCH_AVR25, NULL, 0, 0x0060, "tn85" }, | |
20 | { "ata6289", ARCH_AVR25, "__AVR_ATA6289__", 0, 0x0100, "a6289" }, | |
21 | { "attiny13", ARCH_AVR25, "__AVR_ATtiny13__", 1, 0x0060, "tn13" }, | |
22 | @@ -97,15 +97,15 @@ const struct mcu_type_s avr_mcu_types[] | |
23 | { "attiny48", ARCH_AVR25, "__AVR_ATtiny48__", 0, 0x0100, "tn48" }, | |
24 | { "attiny88", ARCH_AVR25, "__AVR_ATtiny88__", 0, 0x0100, "tn88" }, | |
25 | { "at86rf401", ARCH_AVR25, "__AVR_AT86RF401__", 1, 0x0060, "86401" }, | |
26 | - /* Classic, > 8K, <= 64K. */ | |
27 | + /* Classic, > 8K, <= 64K +2-byte PC + { JMP/CALL }. */ | |
28 | { "avr3", ARCH_AVR3, NULL, 0, 0x0060, "43355" }, | |
29 | { "at43usb355", ARCH_AVR3, "__AVR_AT43USB355__", 0, 0x0060, "43355" }, | |
30 | { "at76c711", ARCH_AVR3, "__AVR_AT76C711__", 0, 0x0060, "76711" }, | |
31 | - /* Classic, == 128K. */ | |
32 | + /* Classic, == 128K + 2-byte PC + { JMP/CALL, ELPM }. */ | |
33 | { "avr31", ARCH_AVR31, NULL, 0, 0x0060, "m103" }, | |
34 | { "atmega103", ARCH_AVR31, "__AVR_ATmega103__", 0, 0x0060, "m103" }, | |
35 | { "at43usb320", ARCH_AVR31, "__AVR_AT43USB320__", 0, 0x0060, "43320" }, | |
36 | - /* Classic + MOVW + JMP/CALL. */ | |
37 | + /* Classic, >=16K, <=64K + 2-byte PC + { MOVW/LPMX + JMP/CALL }. */ | |
38 | { "avr35", ARCH_AVR35, NULL, 0, 0x0100, "usb162" }, | |
39 | { "at90usb82", ARCH_AVR35, "__AVR_AT90USB82__", 0, 0x0100, "usb82" }, | |
40 | { "at90usb162", ARCH_AVR35, "__AVR_AT90USB162__", 0, 0x0100, "usb162" }, | |
41 | @@ -114,7 +114,7 @@ const struct mcu_type_s avr_mcu_types[] | |
42 | { "atmega32u2", ARCH_AVR35, "__AVR_ATmega32U2__", 0, 0x0100, "m32u2" }, | |
43 | { "attiny167", ARCH_AVR35, "__AVR_ATtiny167__", 0, 0x0100, "tn167" }, | |
44 | { "attiny1634", ARCH_AVR35, "__AVR_ATtiny1634__", 0, 0x0100, "tn1634" }, | |
45 | - /* Enhanced, <= 8K. */ | |
46 | + /* Enhanced, <= 8K + 2-byte PC + { MOVW/LPMX, MUL }. */ | |
47 | { "avr4", ARCH_AVR4, NULL, 0, 0x0060, "m8" }, | |
48 | { "atmega8", ARCH_AVR4, "__AVR_ATmega8__", 0, 0x0060, "m8" }, | |
49 | { "atmega48", ARCH_AVR4, "__AVR_ATmega48__", 0, 0x0100, "m48" }, | |
50 | @@ -134,7 +134,8 @@ const struct mcu_type_s avr_mcu_types[] | |
51 | { "at90pwm3", ARCH_AVR4, "__AVR_AT90PWM3__", 0, 0x0100, "90pwm3" }, | |
52 | { "at90pwm3b", ARCH_AVR4, "__AVR_AT90PWM3B__", 0, 0x0100, "90pwm3b" }, | |
53 | { "at90pwm81", ARCH_AVR4, "__AVR_AT90PWM81__", 0, 0x0100, "90pwm81" }, | |
54 | - /* Enhanced, > 8K, <= 64K. */ | |
55 | + /* Enhanced, > 8K, <= 64K + 2-byte PC + | |
56 | + { MOVW/LPMX, JMP/CALL, MUL }. */ | |
57 | { "avr5", ARCH_AVR5, NULL, 0, 0x0060, "m16" }, | |
6ef8d480 PZ |
58 | { "at90pwm161", ARCH_AVR5, "__AVR_AT90PWM161__", 1, 0x0100, "90pwm161" }, |
59 | ||
dbe7ab63 | 60 | @@ -229,7 +230,8 @@ const struct mcu_type_s avr_mcu_types[] |
61 | { "at90usb647", ARCH_AVR5, "__AVR_AT90USB647__", 0, 0x0100, "usb647" }, | |
62 | { "at94k", ARCH_AVR5, "__AVR_AT94K__", 0, 0x0060, "at94k" }, | |
63 | { "m3000", ARCH_AVR5, "__AVR_M3000__", 0, 0x1000, "m3000" }, | |
64 | - /* Enhanced, == 128K. */ | |
65 | + /* Enhanced, == 128K + 2-byte PC + | |
66 | + { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX }. */ | |
67 | { "avr51", ARCH_AVR51, NULL, 0, 0x0100, "m128" }, | |
68 | { "atmega128", ARCH_AVR51, "__AVR_ATmega128__", 0, 0x0100, "m128" }, | |
69 | { "atmega1280", ARCH_AVR51, "__AVR_ATmega1280__", 0, 0x0200, "m1280" }, | |
6ef8d480 | 70 | @@ -239,7 +241,8 @@ const struct mcu_type_s avr_mcu_types[] |
dbe7ab63 | 71 | { "at90can128", ARCH_AVR51, "__AVR_AT90CAN128__", 0, 0x0100, "can128" }, |
72 | { "at90usb1286", ARCH_AVR51, "__AVR_AT90USB1286__", 0, 0x0100, "usb1286" }, | |
73 | { "at90usb1287", ARCH_AVR51, "__AVR_AT90USB1287__", 0, 0x0100, "usb1286" }, | |
74 | - /* 3-Byte PC. */ | |
6ef8d480 PZ |
75 | +/* Enhanced, ==256K + 3-Byte PC + |
76 | + { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX }. */ | |
dbe7ab63 | 77 | { "avr6", ARCH_AVR6, NULL, 0, 0x0200, "m2561" }, |
6ef8d480 | 78 | { "atmega2560", ARCH_AVR6, "__AVR_ATmega2560__", 0, 0x0200, "m2560" }, |
dbe7ab63 | 79 | { "atmega2561", ARCH_AVR6, "__AVR_ATmega2561__", 0, 0x0200, "m2561" }, |
6ef8d480 PZ |
80 | @@ -248,8 +251,10 @@ const struct mcu_type_s avr_mcu_types[] |
81 | /* Xmega, > 8K, <= 64K FLASH, <= 64K RAM. */ | |
dbe7ab63 | 82 | { "avrxmega2", ARCH_AVRXMEGA2, NULL, 0, 0x2000, "x32a4" }, |
83 | { "atxmega16a4", ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__", 0, 0x2000, "x16a4" }, | |
84 | + { "atxmega16a4u", ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__", 0, 0x2000, "x16a4u" }, | |
85 | { "atxmega16d4", ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__", 0, 0x2000, "x16d4" }, | |
dbe7ab63 | 86 | { "atxmega32a4", ARCH_AVRXMEGA2, "__AVR_ATxmega32A4__", 0, 0x2000, "x32a4" }, |
6ef8d480 | 87 | + { "atxmega32a4u", ARCH_AVRXMEGA2, "__AVR_ATxmega32A4U__", 0, 0x2000, "x32a4u" }, |
dbe7ab63 | 88 | { "atxmega32d4", ARCH_AVRXMEGA2, "__AVR_ATxmega32D4__", 0, 0x2000, "x32d4" }, |
6ef8d480 | 89 | { "atxmega32x1", ARCH_AVRXMEGA2, "__AVR_ATxmega32X1__", 0, 0x2000, "x32x1" }, |
dbe7ab63 | 90 | /* Xmega, > 8K, <= 64K FLASH, > 64K RAM. */ |
dbe7ab63 | 91 | @@ -273,7 +278,7 @@ const struct mcu_type_s avr_mcu_types[] |
92 | { "atxmega256a3b",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3B__", 0, 0x2000, "x256a3b" }, | |
93 | { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__", 0, 0x2000, "x256a3bu" }, | |
94 | { "atxmega256d3", ARCH_AVRXMEGA6, "__AVR_ATxmega256D3__", 0, 0x2000, "x256d3" }, | |
95 | - /* Xmega, > 128K, <= 256K FLASH, > 64K RAM. */ | |
96 | + /* Xmega, >= 128K, <= 256K FLASH, > 64K RAM. */ | |
97 | { "avrxmega7", ARCH_AVRXMEGA7, NULL, 0, 0x2000, "x128a1" }, | |
98 | { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__", 0, 0x2000, "x128a1" }, | |
99 | { "atxmega128a1u", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1U__", 0, 0x2000, "x128a1u" }, | |
100 | diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr | |
6ef8d480 PZ |
101 | --- gcc/config/avr/t-avr 2011-06-24 10:37:25.000000000 +0530 |
102 | +++ gcc/config/avr/t-avr 2011-06-24 10:36:43.000000000 +0530 | |
103 | @@ -265,9 +265,11 @@ MULTILIB_MATCHES = \ | |
dbe7ab63 | 104 | mmcu?avr6=mmcu?atmega2560 \ |
105 | mmcu?avr6=mmcu?atmega2561 \ | |
106 | mmcu?avrxmega2=mmcu?atxmega16a4 \ | |
107 | + mmcu?avrxmega2=mmcu?atxmega16a4u \ | |
108 | mmcu?avrxmega2=mmcu?atxmega16d4 \ | |
dbe7ab63 | 109 | mmcu?avrxmega2=mmcu?atxmega32d4 \ |
110 | mmcu?avrxmega2=mmcu?atxmega32a4 \ | |
111 | + mmcu?avrxmega2=mmcu?atxmega32a4u \ | |
6ef8d480 | 112 | mmcu?avrxmega2=mmcu?atxmega32x1 \ |
dbe7ab63 | 113 | mmcu?avrxmega4=mmcu?atxmega64a3 \ |
114 | mmcu?avrxmega4=mmcu?atxmega64d3 \ |