diff options
author | synergydev <synergye@codefi.re> | 2013-10-17 18:16:42 -0700 |
---|---|---|
committer | synergydev <synergye@codefi.re> | 2013-10-17 18:16:42 -0700 |
commit | 61c0330cc243abf13fdd01f377a7f80bd3989eb1 (patch) | |
tree | 119b08ae76294f23e2b1b7e72ff9a06afa9e8509 /gcc-4.8/gcc/config/avr | |
parent | 1c712bf7621f3859c33fd3afaa61fdcaf3fdfd76 (diff) | |
download | toolchain_gcc-61c0330cc243abf13fdd01f377a7f80bd3989eb1.tar.gz toolchain_gcc-61c0330cc243abf13fdd01f377a7f80bd3989eb1.tar.bz2 toolchain_gcc-61c0330cc243abf13fdd01f377a7f80bd3989eb1.zip |
[4.8] Merge GCC 4.8.2
Change-Id: I0f1fcf69c5076d8534c5c45562745e1a37adb197
Diffstat (limited to 'gcc-4.8/gcc/config/avr')
-rw-r--r-- | gcc-4.8/gcc/config/avr/avr-fixed.md | 51 | ||||
-rw-r--r-- | gcc-4.8/gcc/config/avr/avr-mcus.def | 13 | ||||
-rw-r--r-- | gcc-4.8/gcc/config/avr/avr-protos.h | 3 | ||||
-rw-r--r-- | gcc-4.8/gcc/config/avr/avr-tables.opt | 331 | ||||
-rw-r--r-- | gcc-4.8/gcc/config/avr/avr.c | 117 | ||||
-rw-r--r-- | gcc-4.8/gcc/config/avr/avr.md | 2 | ||||
-rw-r--r-- | gcc-4.8/gcc/config/avr/avr.opt | 2 | ||||
-rw-r--r-- | gcc-4.8/gcc/config/avr/gen-avr-mmcu-texi.c | 16 | ||||
-rw-r--r-- | gcc-4.8/gcc/config/avr/t-multilib | 13 |
9 files changed, 273 insertions, 275 deletions
diff --git a/gcc-4.8/gcc/config/avr/avr-fixed.md b/gcc-4.8/gcc/config/avr/avr-fixed.md index 7d9b525ef..b2f0b9aa1 100644 --- a/gcc-4.8/gcc/config/avr/avr-fixed.md +++ b/gcc-4.8/gcc/config/avr/avr-fixed.md @@ -447,49 +447,18 @@ ;; "roundqq3_const" "rounduqq3_const" ;; "roundhq3_const" "rounduhq3_const" "roundha3_const" "rounduha3_const" ;; "roundsq3_const" "roundusq3_const" "roundsa3_const" "roundusa3_const" -(define_expand "round<mode>3_const" - [(parallel [(match_operand:ALL124QA 0 "register_operand" "") - (match_operand:ALL124QA 1 "register_operand" "") - (match_operand:HI 2 "const_int_operand" "")])] +(define_insn "round<mode>3_const" + [(set (match_operand:ALL124QA 0 "register_operand" "=d") + (unspec:ALL124QA [(match_operand:ALL124QA 1 "register_operand" "0") + (match_operand:HI 2 "const_int_operand" "n") + (const_int 0)] + UNSPEC_ROUND))] "" { - // The rounding point RP is $2. The smallest fractional - // bit that is not cleared by the rounding is 2^(-RP). - - enum machine_mode imode = int_mode_for_mode (<MODE>mode); - int fbit = (int) GET_MODE_FBIT (<MODE>mode); - - // Add-Saturate 1/2 * 2^(-RP) - - double_int i_add = double_int_zero.set_bit (fbit-1 - INTVAL (operands[2])); - rtx x_add = const_fixed_from_double_int (i_add, <MODE>mode); - - if (SIGNED_FIXED_POINT_MODE_P (<MODE>mode)) - emit_move_insn (operands[0], - gen_rtx_SS_PLUS (<MODE>mode, operands[1], x_add)); - else - emit_move_insn (operands[0], - gen_rtx_US_PLUS (<MODE>mode, operands[1], x_add)); - - // Keep all bits from RP and higher: ... 2^(-RP) - // Clear all bits from RP+1 and lower: 2^(-RP-1) ... - // Rounding point ^^^^^^^ - // Added above ^^^^^^^^^ - - rtx xreg = simplify_gen_subreg (imode, operands[0], <MODE>mode, 0); - rtx xmask = immed_double_int_const (-i_add - i_add, imode); - - if (SImode == imode) - emit_insn (gen_andsi3 (xreg, xreg, xmask)); - else if (HImode == imode) - emit_insn (gen_andhi3 (xreg, xreg, xmask)); - else if (QImode == imode) - emit_insn (gen_andqi3 (xreg, xreg, xmask)); - else - gcc_unreachable(); - - DONE; - }) + return avr_out_round (insn, operands); + } + [(set_attr "cc" "clobber") + (set_attr "adjust_len" "round")]) ;; "*roundqq3.libgcc" "*rounduqq3.libgcc" diff --git a/gcc-4.8/gcc/config/avr/avr-mcus.def b/gcc-4.8/gcc/config/avr/avr-mcus.def index 2a730ac7a..f277d3687 100644 --- a/gcc-4.8/gcc/config/avr/avr-mcus.def +++ b/gcc-4.8/gcc/config/avr/avr-mcus.def @@ -168,7 +168,6 @@ AVR_MCU ("atmega169", ARCH_AVR5, "__AVR_ATmega169__", 0, 0, 0 AVR_MCU ("atmega169a", ARCH_AVR5, "__AVR_ATmega169A__", 0, 0, 0x0100, 1, "m169a") AVR_MCU ("atmega169p", ARCH_AVR5, "__AVR_ATmega169P__", 0, 0, 0x0100, 1, "m169p") AVR_MCU ("atmega169pa", ARCH_AVR5, "__AVR_ATmega169PA__", 0, 0, 0x0100, 1, "m169pa") -AVR_MCU ("atmega16hva", ARCH_AVR5, "__AVR_ATmega16HVA__", 0, 0, 0x0100, 1, "m16hva") AVR_MCU ("atmega16hvb", ARCH_AVR5, "__AVR_ATmega16HVB__", 0, 0, 0x0100, 1, "m16hvb") AVR_MCU ("atmega16hvbrevb", ARCH_AVR5, "__AVR_ATmega16HVBREVB__", 0, 0, 0x0100, 1, "m16hvbrevb") AVR_MCU ("atmega16m1", ARCH_AVR5, "__AVR_ATmega16M1__", 0, 0, 0x0100, 1, "m16m1") @@ -176,7 +175,6 @@ AVR_MCU ("atmega16u4", ARCH_AVR5, "__AVR_ATmega16U4__", 0, 0, 0 AVR_MCU ("atmega26hvg", ARCH_AVR5, "__AVR_ATmega26HVG__", 0, 0, 0x0100, 1, "m26hvg") AVR_MCU ("atmega32a", ARCH_AVR5, "__AVR_ATmega32A__", 0, 0, 0x0060, 1, "m32a") AVR_MCU ("atmega32", ARCH_AVR5, "__AVR_ATmega32__", 0, 0, 0x0060, 1, "m32") -AVR_MCU ("atmega32a", ARCH_AVR5, "__AVR_ATmega32A__", 0, 0, 0x0060, 1, "m32a") AVR_MCU ("atmega323", ARCH_AVR5, "__AVR_ATmega323__", 0, 0, 0x0060, 1, "m323") AVR_MCU ("atmega324a", ARCH_AVR5, "__AVR_ATmega324A__", 0, 0, 0x0100, 1, "m324a") AVR_MCU ("atmega324p", ARCH_AVR5, "__AVR_ATmega324P__", 0, 0, 0x0100, 1, "m324p") @@ -222,7 +220,6 @@ AVR_MCU ("atmega649p", ARCH_AVR5, "__AVR_ATmega649P__", 0, 0, 0 AVR_MCU ("atmega6490", ARCH_AVR5, "__AVR_ATmega6490__", 0, 0, 0x0100, 1, "m6490") AVR_MCU ("atmega16hva", ARCH_AVR5, "__AVR_ATmega16HVA__", 0, 0, 0x0100, 1, "m16hva") AVR_MCU ("atmega16hva2", ARCH_AVR5, "__AVR_ATmega16HVA2__", 0, 0, 0x0100, 1, "m16hva2") -AVR_MCU ("atmega16hvb", ARCH_AVR5, "__AVR_ATmega16HVB__", 0, 0, 0x0100, 1, "m16hvb") AVR_MCU ("atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0, 0x0100, 1, "m32hvb") AVR_MCU ("atmega6490a", ARCH_AVR5, "__AVR_ATmega6490A__", 0, 0, 0x0100, 1, "m6490a") AVR_MCU ("atmega6490p", ARCH_AVR5, "__AVR_ATmega6490P__", 0, 0, 0x0100, 1, "m6490p") @@ -231,23 +228,13 @@ AVR_MCU ("atmega64m1", ARCH_AVR5, "__AVR_ATmega64M1__", 0, 0, 0 AVR_MCU ("atmega64hve", ARCH_AVR5, "__AVR_ATmega64HVE__", 0, 0, 0x0100, 1, "m64hve") AVR_MCU ("atmega64rfa2", ARCH_AVR5, "__AVR_ATmega64RFA2__", 0, 0, 0x0200, 1, "m64rfa2") AVR_MCU ("atmega64rfr2", ARCH_AVR5, "__AVR_ATmega64RFR2__", 0, 0, 0x0200, 1, "m64rfr2") -AVR_MCU ("atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0, 0x0100, 1, "m32hvb") AVR_MCU ("atmega32hvbrevb", ARCH_AVR5, "__AVR_ATmega32HVBREVB__", 0, 0, 0x0100, 1, "m32hvbrevb") -AVR_MCU ("atmega16hva2", ARCH_AVR5, "__AVR_ATmega16HVA2__", 0, 0, 0x0100, 1, "m16hva2") AVR_MCU ("atmega48hvf", ARCH_AVR5, "__AVR_ATmega48HVF__", 0, 0, 0x0100, 1, "m48hvf") AVR_MCU ("at90can32", ARCH_AVR5, "__AVR_AT90CAN32__", 0, 0, 0x0100, 1, "can32") AVR_MCU ("at90can64", ARCH_AVR5, "__AVR_AT90CAN64__", 0, 0, 0x0100, 1, "can64") AVR_MCU ("at90pwm161", ARCH_AVR5, "__AVR_AT90PWM161__", 0, 0, 0x0100, 1, "90pwm161") AVR_MCU ("at90pwm216", ARCH_AVR5, "__AVR_AT90PWM216__", 0, 0, 0x0100, 1, "90pwm216") AVR_MCU ("at90pwm316", ARCH_AVR5, "__AVR_AT90PWM316__", 0, 0, 0x0100, 1, "90pwm316") -AVR_MCU ("atmega32c1", ARCH_AVR5, "__AVR_ATmega32C1__", 0, 0, 0x0100, 1, "m32c1") -AVR_MCU ("atmega64c1", ARCH_AVR5, "__AVR_ATmega64C1__", 0, 0, 0x0100, 1, "m64c1") -AVR_MCU ("atmega16m1", ARCH_AVR5, "__AVR_ATmega16M1__", 0, 0, 0x0100, 1, "m16m1") -AVR_MCU ("atmega32m1", ARCH_AVR5, "__AVR_ATmega32M1__", 0, 0, 0x0100, 1, "m32m1") -AVR_MCU ("atmega64m1", ARCH_AVR5, "__AVR_ATmega64M1__", 0, 0, 0x0100, 1, "m64m1") -AVR_MCU ("atmega16u4", ARCH_AVR5, "__AVR_ATmega16U4__", 0, 0, 0x0100, 1, "m16u4") -AVR_MCU ("atmega32u4", ARCH_AVR5, "__AVR_ATmega32U4__", 0, 0, 0x0100, 1, "m32u4") -AVR_MCU ("atmega32u6", ARCH_AVR5, "__AVR_ATmega32U6__", 0, 0, 0x0100, 1, "m32u6") AVR_MCU ("at90scr100", ARCH_AVR5, "__AVR_AT90SCR100__", 0, 0, 0x0100, 1, "90scr100") AVR_MCU ("at90usb646", ARCH_AVR5, "__AVR_AT90USB646__", 0, 0, 0x0100, 1, "usb646") AVR_MCU ("at90usb647", ARCH_AVR5, "__AVR_AT90USB647__", 0, 0, 0x0100, 1, "usb647") diff --git a/gcc-4.8/gcc/config/avr/avr-protos.h b/gcc-4.8/gcc/config/avr/avr-protos.h index 5246d0637..21ad26a6f 100644 --- a/gcc-4.8/gcc/config/avr/avr-protos.h +++ b/gcc-4.8/gcc/config/avr/avr-protos.h @@ -86,7 +86,8 @@ extern int avr_starting_frame_offset (void); extern void avr_output_addr_vec_elt (FILE *stream, int value); extern const char *avr_out_sbxx_branch (rtx insn, rtx operands[]); extern const char* avr_out_bitop (rtx, rtx*, int*); -extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL); +extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL, bool =true); +extern const char* avr_out_round (rtx, rtx*, int* =NULL); extern const char* avr_out_addto_sp (rtx*, int*); extern const char* avr_out_xload (rtx, rtx*, int*); extern const char* avr_out_movmem (rtx, rtx*, int*); diff --git a/gcc-4.8/gcc/config/avr/avr-tables.opt b/gcc-4.8/gcc/config/avr/avr-tables.opt index 1a451bda4..b101e00e7 100644 --- a/gcc-4.8/gcc/config/avr/avr-tables.opt +++ b/gcc-4.8/gcc/config/avr/avr-tables.opt @@ -330,479 +330,440 @@ EnumValue Enum(avr_mcu) String(atmega169pa) Value(101) EnumValue -Enum(avr_mcu) String(atmega16hva) Value(102) +Enum(avr_mcu) String(atmega16hvb) Value(102) EnumValue -Enum(avr_mcu) String(atmega16hvb) Value(103) +Enum(avr_mcu) String(atmega16hvbrevb) Value(103) EnumValue -Enum(avr_mcu) String(atmega16hvbrevb) Value(104) +Enum(avr_mcu) String(atmega16m1) Value(104) EnumValue -Enum(avr_mcu) String(atmega16m1) Value(105) +Enum(avr_mcu) String(atmega16u4) Value(105) EnumValue -Enum(avr_mcu) String(atmega16u4) Value(106) +Enum(avr_mcu) String(atmega26hvg) Value(106) EnumValue -Enum(avr_mcu) String(atmega26hvg) Value(107) +Enum(avr_mcu) String(atmega32a) Value(107) EnumValue -Enum(avr_mcu) String(atmega32a) Value(108) +Enum(avr_mcu) String(atmega32) Value(108) EnumValue -Enum(avr_mcu) String(atmega32) Value(109) +Enum(avr_mcu) String(atmega323) Value(109) EnumValue -Enum(avr_mcu) String(atmega32a) Value(110) +Enum(avr_mcu) String(atmega324a) Value(110) EnumValue -Enum(avr_mcu) String(atmega323) Value(111) +Enum(avr_mcu) String(atmega324p) Value(111) EnumValue -Enum(avr_mcu) String(atmega324a) Value(112) +Enum(avr_mcu) String(atmega324pa) Value(112) EnumValue -Enum(avr_mcu) String(atmega324p) Value(113) +Enum(avr_mcu) String(atmega325) Value(113) EnumValue -Enum(avr_mcu) String(atmega324pa) Value(114) +Enum(avr_mcu) String(atmega325a) Value(114) EnumValue -Enum(avr_mcu) String(atmega325) Value(115) +Enum(avr_mcu) String(atmega325p) Value(115) EnumValue -Enum(avr_mcu) String(atmega325a) Value(116) +Enum(avr_mcu) String(atmega3250) Value(116) EnumValue -Enum(avr_mcu) String(atmega325p) Value(117) +Enum(avr_mcu) String(atmega3250a) Value(117) EnumValue -Enum(avr_mcu) String(atmega3250) Value(118) +Enum(avr_mcu) String(atmega3250p) Value(118) EnumValue -Enum(avr_mcu) String(atmega3250a) Value(119) +Enum(avr_mcu) String(atmega3250pa) Value(119) EnumValue -Enum(avr_mcu) String(atmega3250p) Value(120) +Enum(avr_mcu) String(atmega328) Value(120) EnumValue -Enum(avr_mcu) String(atmega3250pa) Value(121) +Enum(avr_mcu) String(atmega328p) Value(121) EnumValue -Enum(avr_mcu) String(atmega328) Value(122) +Enum(avr_mcu) String(atmega329) Value(122) EnumValue -Enum(avr_mcu) String(atmega328p) Value(123) +Enum(avr_mcu) String(atmega329a) Value(123) EnumValue -Enum(avr_mcu) String(atmega329) Value(124) +Enum(avr_mcu) String(atmega329p) Value(124) EnumValue -Enum(avr_mcu) String(atmega329a) Value(125) +Enum(avr_mcu) String(atmega329pa) Value(125) EnumValue -Enum(avr_mcu) String(atmega329p) Value(126) +Enum(avr_mcu) String(atmega3290) Value(126) EnumValue -Enum(avr_mcu) String(atmega329pa) Value(127) +Enum(avr_mcu) String(atmega3290a) Value(127) EnumValue -Enum(avr_mcu) String(atmega3290) Value(128) +Enum(avr_mcu) String(atmega3290p) Value(128) EnumValue -Enum(avr_mcu) String(atmega3290a) Value(129) +Enum(avr_mcu) String(atmega3290pa) Value(129) EnumValue -Enum(avr_mcu) String(atmega3290p) Value(130) +Enum(avr_mcu) String(atmega32c1) Value(130) EnumValue -Enum(avr_mcu) String(atmega3290pa) Value(131) +Enum(avr_mcu) String(atmega32m1) Value(131) EnumValue -Enum(avr_mcu) String(atmega32c1) Value(132) +Enum(avr_mcu) String(atmega32u4) Value(132) EnumValue -Enum(avr_mcu) String(atmega32m1) Value(133) +Enum(avr_mcu) String(atmega32u6) Value(133) EnumValue -Enum(avr_mcu) String(atmega32u4) Value(134) +Enum(avr_mcu) String(atmega406) Value(134) EnumValue -Enum(avr_mcu) String(atmega32u6) Value(135) +Enum(avr_mcu) String(atmega64) Value(135) EnumValue -Enum(avr_mcu) String(atmega406) Value(136) +Enum(avr_mcu) String(atmega64a) Value(136) EnumValue -Enum(avr_mcu) String(atmega64) Value(137) +Enum(avr_mcu) String(atmega640) Value(137) EnumValue -Enum(avr_mcu) String(atmega64a) Value(138) +Enum(avr_mcu) String(atmega644) Value(138) EnumValue -Enum(avr_mcu) String(atmega640) Value(139) +Enum(avr_mcu) String(atmega644a) Value(139) EnumValue -Enum(avr_mcu) String(atmega644) Value(140) +Enum(avr_mcu) String(atmega644p) Value(140) EnumValue -Enum(avr_mcu) String(atmega644a) Value(141) +Enum(avr_mcu) String(atmega644pa) Value(141) EnumValue -Enum(avr_mcu) String(atmega644p) Value(142) +Enum(avr_mcu) String(atmega645) Value(142) EnumValue -Enum(avr_mcu) String(atmega644pa) Value(143) +Enum(avr_mcu) String(atmega645a) Value(143) EnumValue -Enum(avr_mcu) String(atmega645) Value(144) +Enum(avr_mcu) String(atmega645p) Value(144) EnumValue -Enum(avr_mcu) String(atmega645a) Value(145) +Enum(avr_mcu) String(atmega6450) Value(145) EnumValue -Enum(avr_mcu) String(atmega645p) Value(146) +Enum(avr_mcu) String(atmega6450a) Value(146) EnumValue -Enum(avr_mcu) String(atmega6450) Value(147) +Enum(avr_mcu) String(atmega6450p) Value(147) EnumValue -Enum(avr_mcu) String(atmega6450a) Value(148) +Enum(avr_mcu) String(atmega649) Value(148) EnumValue -Enum(avr_mcu) String(atmega6450p) Value(149) +Enum(avr_mcu) String(atmega649a) Value(149) EnumValue -Enum(avr_mcu) String(atmega649) Value(150) +Enum(avr_mcu) String(atmega649p) Value(150) EnumValue -Enum(avr_mcu) String(atmega649a) Value(151) +Enum(avr_mcu) String(atmega6490) Value(151) EnumValue -Enum(avr_mcu) String(atmega649p) Value(152) +Enum(avr_mcu) String(atmega16hva) Value(152) EnumValue -Enum(avr_mcu) String(atmega6490) Value(153) +Enum(avr_mcu) String(atmega16hva2) Value(153) EnumValue -Enum(avr_mcu) String(atmega16hva) Value(154) +Enum(avr_mcu) String(atmega32hvb) Value(154) EnumValue -Enum(avr_mcu) String(atmega16hva2) Value(155) +Enum(avr_mcu) String(atmega6490a) Value(155) EnumValue -Enum(avr_mcu) String(atmega16hvb) Value(156) +Enum(avr_mcu) String(atmega6490p) Value(156) EnumValue -Enum(avr_mcu) String(atmega32hvb) Value(157) +Enum(avr_mcu) String(atmega64c1) Value(157) EnumValue -Enum(avr_mcu) String(atmega6490a) Value(158) +Enum(avr_mcu) String(atmega64m1) Value(158) EnumValue -Enum(avr_mcu) String(atmega6490p) Value(159) +Enum(avr_mcu) String(atmega64hve) Value(159) EnumValue -Enum(avr_mcu) String(atmega64c1) Value(160) +Enum(avr_mcu) String(atmega64rfa2) Value(160) EnumValue -Enum(avr_mcu) String(atmega64m1) Value(161) +Enum(avr_mcu) String(atmega64rfr2) Value(161) EnumValue -Enum(avr_mcu) String(atmega64hve) Value(162) +Enum(avr_mcu) String(atmega32hvbrevb) Value(162) EnumValue -Enum(avr_mcu) String(atmega64rfa2) Value(163) +Enum(avr_mcu) String(atmega48hvf) Value(163) EnumValue -Enum(avr_mcu) String(atmega64rfr2) Value(164) +Enum(avr_mcu) String(at90can32) Value(164) EnumValue -Enum(avr_mcu) String(atmega32hvb) Value(165) +Enum(avr_mcu) String(at90can64) Value(165) EnumValue -Enum(avr_mcu) String(atmega32hvbrevb) Value(166) +Enum(avr_mcu) String(at90pwm161) Value(166) EnumValue -Enum(avr_mcu) String(atmega16hva2) Value(167) +Enum(avr_mcu) String(at90pwm216) Value(167) EnumValue -Enum(avr_mcu) String(atmega48hvf) Value(168) +Enum(avr_mcu) String(at90pwm316) Value(168) EnumValue -Enum(avr_mcu) String(at90can32) Value(169) +Enum(avr_mcu) String(at90scr100) Value(169) EnumValue -Enum(avr_mcu) String(at90can64) Value(170) +Enum(avr_mcu) String(at90usb646) Value(170) EnumValue -Enum(avr_mcu) String(at90pwm161) Value(171) +Enum(avr_mcu) String(at90usb647) Value(171) EnumValue -Enum(avr_mcu) String(at90pwm216) Value(172) +Enum(avr_mcu) String(at94k) Value(172) EnumValue -Enum(avr_mcu) String(at90pwm316) Value(173) +Enum(avr_mcu) String(m3000) Value(173) EnumValue -Enum(avr_mcu) String(atmega32c1) Value(174) +Enum(avr_mcu) String(avr51) Value(174) EnumValue -Enum(avr_mcu) String(atmega64c1) Value(175) +Enum(avr_mcu) String(atmega128) Value(175) EnumValue -Enum(avr_mcu) String(atmega16m1) Value(176) +Enum(avr_mcu) String(atmega128a) Value(176) EnumValue -Enum(avr_mcu) String(atmega32m1) Value(177) +Enum(avr_mcu) String(atmega1280) Value(177) EnumValue -Enum(avr_mcu) String(atmega64m1) Value(178) +Enum(avr_mcu) String(atmega1281) Value(178) EnumValue -Enum(avr_mcu) String(atmega16u4) Value(179) +Enum(avr_mcu) String(atmega1284) Value(179) EnumValue -Enum(avr_mcu) String(atmega32u4) Value(180) +Enum(avr_mcu) String(atmega1284p) Value(180) EnumValue -Enum(avr_mcu) String(atmega32u6) Value(181) +Enum(avr_mcu) String(atmega128rfa1) Value(181) EnumValue -Enum(avr_mcu) String(at90scr100) Value(182) +Enum(avr_mcu) String(at90can128) Value(182) EnumValue -Enum(avr_mcu) String(at90usb646) Value(183) +Enum(avr_mcu) String(at90usb1286) Value(183) EnumValue -Enum(avr_mcu) String(at90usb647) Value(184) +Enum(avr_mcu) String(at90usb1287) Value(184) EnumValue -Enum(avr_mcu) String(at94k) Value(185) +Enum(avr_mcu) String(avr6) Value(185) EnumValue -Enum(avr_mcu) String(m3000) Value(186) +Enum(avr_mcu) String(atmega2560) Value(186) EnumValue -Enum(avr_mcu) String(avr51) Value(187) +Enum(avr_mcu) String(atmega2561) Value(187) EnumValue -Enum(avr_mcu) String(atmega128) Value(188) +Enum(avr_mcu) String(avrxmega2) Value(188) EnumValue -Enum(avr_mcu) String(atmega128a) Value(189) +Enum(avr_mcu) String(atxmega16a4) Value(189) EnumValue -Enum(avr_mcu) String(atmega1280) Value(190) +Enum(avr_mcu) String(atxmega16d4) Value(190) EnumValue -Enum(avr_mcu) String(atmega1281) Value(191) +Enum(avr_mcu) String(atxmega16x1) Value(191) EnumValue -Enum(avr_mcu) String(atmega1284) Value(192) +Enum(avr_mcu) String(atxmega32a4) Value(192) EnumValue -Enum(avr_mcu) String(atmega1284p) Value(193) +Enum(avr_mcu) String(atxmega32d4) Value(193) EnumValue -Enum(avr_mcu) String(atmega128rfa1) Value(194) +Enum(avr_mcu) String(atxmega32x1) Value(194) EnumValue -Enum(avr_mcu) String(at90can128) Value(195) +Enum(avr_mcu) String(atmxt112sl) Value(195) EnumValue -Enum(avr_mcu) String(at90usb1286) Value(196) +Enum(avr_mcu) String(atmxt224) Value(196) EnumValue -Enum(avr_mcu) String(at90usb1287) Value(197) +Enum(avr_mcu) String(atmxt224e) Value(197) EnumValue -Enum(avr_mcu) String(avr6) Value(198) +Enum(avr_mcu) String(atmxt336s) Value(198) EnumValue -Enum(avr_mcu) String(atmega2560) Value(199) +Enum(avr_mcu) String(atxmega16a4u) Value(199) EnumValue -Enum(avr_mcu) String(atmega2561) Value(200) +Enum(avr_mcu) String(atxmega16c4) Value(200) EnumValue -Enum(avr_mcu) String(avrxmega2) Value(201) +Enum(avr_mcu) String(atxmega32a4u) Value(201) EnumValue -Enum(avr_mcu) String(atxmega16a4) Value(202) +Enum(avr_mcu) String(atxmega32c4) Value(202) EnumValue -Enum(avr_mcu) String(atxmega16d4) Value(203) +Enum(avr_mcu) String(atxmega32e5) Value(203) EnumValue -Enum(avr_mcu) String(atxmega16x1) Value(204) +Enum(avr_mcu) String(avrxmega4) Value(204) EnumValue -Enum(avr_mcu) String(atxmega32a4) Value(205) +Enum(avr_mcu) String(atxmega64a3) Value(205) EnumValue -Enum(avr_mcu) String(atxmega32d4) Value(206) +Enum(avr_mcu) String(atxmega64d3) Value(206) EnumValue -Enum(avr_mcu) String(atxmega32x1) Value(207) +Enum(avr_mcu) String(atxmega64a3u) Value(207) EnumValue -Enum(avr_mcu) String(atmxt112sl) Value(208) +Enum(avr_mcu) String(atxmega64a4u) Value(208) EnumValue -Enum(avr_mcu) String(atmxt224) Value(209) +Enum(avr_mcu) String(atxmega64b1) Value(209) EnumValue -Enum(avr_mcu) String(atmxt224e) Value(210) +Enum(avr_mcu) String(atxmega64b3) Value(210) EnumValue -Enum(avr_mcu) String(atmxt336s) Value(211) +Enum(avr_mcu) String(atxmega64c3) Value(211) EnumValue -Enum(avr_mcu) String(atxmega16a4u) Value(212) +Enum(avr_mcu) String(atxmega64d4) Value(212) EnumValue -Enum(avr_mcu) String(atxmega16c4) Value(213) +Enum(avr_mcu) String(avrxmega5) Value(213) EnumValue -Enum(avr_mcu) String(atxmega32a4u) Value(214) +Enum(avr_mcu) String(atxmega64a1) Value(214) EnumValue -Enum(avr_mcu) String(atxmega32c4) Value(215) +Enum(avr_mcu) String(atxmega64a1u) Value(215) EnumValue -Enum(avr_mcu) String(atxmega32e5) Value(216) +Enum(avr_mcu) String(avrxmega6) Value(216) EnumValue -Enum(avr_mcu) String(avrxmega4) Value(217) +Enum(avr_mcu) String(atxmega128a3) Value(217) EnumValue -Enum(avr_mcu) String(atxmega64a3) Value(218) +Enum(avr_mcu) String(atxmega128d3) Value(218) EnumValue -Enum(avr_mcu) String(atxmega64d3) Value(219) +Enum(avr_mcu) String(atxmega192a3) Value(219) EnumValue -Enum(avr_mcu) String(atxmega64a3u) Value(220) +Enum(avr_mcu) String(atxmega192d3) Value(220) EnumValue -Enum(avr_mcu) String(atxmega64a4u) Value(221) +Enum(avr_mcu) String(atxmega256a3) Value(221) EnumValue -Enum(avr_mcu) String(atxmega64b1) Value(222) +Enum(avr_mcu) String(atxmega256a3b) Value(222) EnumValue -Enum(avr_mcu) String(atxmega64b3) Value(223) +Enum(avr_mcu) String(atxmega256a3bu) Value(223) EnumValue -Enum(avr_mcu) String(atxmega64c3) Value(224) +Enum(avr_mcu) String(atxmega256d3) Value(224) EnumValue -Enum(avr_mcu) String(atxmega64d4) Value(225) +Enum(avr_mcu) String(atxmega128a3u) Value(225) EnumValue -Enum(avr_mcu) String(avrxmega5) Value(226) +Enum(avr_mcu) String(atxmega128b1) Value(226) EnumValue -Enum(avr_mcu) String(atxmega64a1) Value(227) +Enum(avr_mcu) String(atxmega128b3) Value(227) EnumValue -Enum(avr_mcu) String(atxmega64a1u) Value(228) +Enum(avr_mcu) String(atxmega128c3) Value(228) EnumValue -Enum(avr_mcu) String(avrxmega6) Value(229) +Enum(avr_mcu) String(atxmega128d4) Value(229) EnumValue -Enum(avr_mcu) String(atxmega128a3) Value(230) +Enum(avr_mcu) String(atmxt540s) Value(230) EnumValue -Enum(avr_mcu) String(atxmega128d3) Value(231) +Enum(avr_mcu) String(atmxt540sreva) Value(231) EnumValue -Enum(avr_mcu) String(atxmega192a3) Value(232) +Enum(avr_mcu) String(atxmega192a3u) Value(232) EnumValue -Enum(avr_mcu) String(atxmega192d3) Value(233) +Enum(avr_mcu) String(atxmega192c3) Value(233) EnumValue -Enum(avr_mcu) String(atxmega256a3) Value(234) +Enum(avr_mcu) String(atxmega256a3u) Value(234) EnumValue -Enum(avr_mcu) String(atxmega256a3b) Value(235) +Enum(avr_mcu) String(atxmega256c3) Value(235) EnumValue -Enum(avr_mcu) String(atxmega256a3bu) Value(236) +Enum(avr_mcu) String(atxmega384c3) Value(236) EnumValue -Enum(avr_mcu) String(atxmega256d3) Value(237) +Enum(avr_mcu) String(atxmega384d3) Value(237) EnumValue -Enum(avr_mcu) String(atxmega128a3u) Value(238) +Enum(avr_mcu) String(avrxmega7) Value(238) EnumValue -Enum(avr_mcu) String(atxmega128b1) Value(239) +Enum(avr_mcu) String(atxmega128a1) Value(239) EnumValue -Enum(avr_mcu) String(atxmega128b3) Value(240) +Enum(avr_mcu) String(atxmega128a1u) Value(240) EnumValue -Enum(avr_mcu) String(atxmega128c3) Value(241) +Enum(avr_mcu) String(atxmega128a4u) Value(241) EnumValue -Enum(avr_mcu) String(atxmega128d4) Value(242) +Enum(avr_mcu) String(avr1) Value(242) EnumValue -Enum(avr_mcu) String(atmxt540s) Value(243) +Enum(avr_mcu) String(at90s1200) Value(243) EnumValue -Enum(avr_mcu) String(atmxt540sreva) Value(244) +Enum(avr_mcu) String(attiny11) Value(244) EnumValue -Enum(avr_mcu) String(atxmega192a3u) Value(245) +Enum(avr_mcu) String(attiny12) Value(245) EnumValue -Enum(avr_mcu) String(atxmega192c3) Value(246) +Enum(avr_mcu) String(attiny15) Value(246) EnumValue -Enum(avr_mcu) String(atxmega256a3u) Value(247) - -EnumValue -Enum(avr_mcu) String(atxmega256c3) Value(248) - -EnumValue -Enum(avr_mcu) String(atxmega384c3) Value(249) - -EnumValue -Enum(avr_mcu) String(atxmega384d3) Value(250) - -EnumValue -Enum(avr_mcu) String(avrxmega7) Value(251) - -EnumValue -Enum(avr_mcu) String(atxmega128a1) Value(252) - -EnumValue -Enum(avr_mcu) String(atxmega128a1u) Value(253) - -EnumValue -Enum(avr_mcu) String(atxmega128a4u) Value(254) - -EnumValue -Enum(avr_mcu) String(avr1) Value(255) - -EnumValue -Enum(avr_mcu) String(at90s1200) Value(256) - -EnumValue -Enum(avr_mcu) String(attiny11) Value(257) - -EnumValue -Enum(avr_mcu) String(attiny12) Value(258) - -EnumValue -Enum(avr_mcu) String(attiny15) Value(259) - -EnumValue -Enum(avr_mcu) String(attiny28) Value(260) +Enum(avr_mcu) String(attiny28) Value(247) diff --git a/gcc-4.8/gcc/config/avr/avr.c b/gcc-4.8/gcc/config/avr/avr.c index c916d6bcf..74872aa6c 100644 --- a/gcc-4.8/gcc/config/avr/avr.c +++ b/gcc-4.8/gcc/config/avr/avr.c @@ -584,7 +584,12 @@ avr_set_current_function (tree decl) { tree args = TYPE_ARG_TYPES (TREE_TYPE (decl)); tree ret = TREE_TYPE (TREE_TYPE (decl)); - const char *name = IDENTIFIER_POINTER (DECL_NAME (decl)); + const char *name; + + name = DECL_ASSEMBLER_NAME_SET_P (decl) + /* Remove the leading '*' added in set_user_assembler_name. */ + ? 1 + IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)) + : IDENTIFIER_POINTER (DECL_NAME (decl)); /* Silently ignore 'signal' if 'interrupt' is present. AVR-LibC startet using this when it switched from SIGNAL and INTERRUPT to ISR. */ @@ -1112,7 +1117,7 @@ avr_prologue_setup_frame (HOST_WIDE_INT size, HARD_REG_SET set) leaf function and thus X has already been saved. */ int irq_state = -1; - HOST_WIDE_INT size_cfa = size; + HOST_WIDE_INT size_cfa = size, neg_size; rtx fp_plus_insns, fp, my_fp; gcc_assert (frame_pointer_needed @@ -1151,6 +1156,7 @@ avr_prologue_setup_frame (HOST_WIDE_INT size, HARD_REG_SET set) } size = trunc_int_for_mode (size, GET_MODE (my_fp)); + neg_size = trunc_int_for_mode (-size, GET_MODE (my_fp)); /************ Method 1: Adjust frame pointer ************/ @@ -1171,7 +1177,8 @@ avr_prologue_setup_frame (HOST_WIDE_INT size, HARD_REG_SET set) } insn = emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp), - my_fp, -size)); + my_fp, neg_size)); + if (frame_pointer_needed) { RTX_FRAME_RELATED_P (insn) = 1; @@ -6225,11 +6232,14 @@ lshrsi3_out (rtx insn, rtx operands[], int *len) the subtrahend in the original insn, provided it is a compile time constant. In all other cases, SIGN is 0. - Return "". */ + If OUT_LABEL is true, print the final 0: label which is needed for + saturated addition / subtraction. The only case where OUT_LABEL = false + is useful is for saturated addition / subtraction performed during + fixed-point rounding, cf. `avr_out_round'. */ static void avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc, - enum rtx_code code_sat = UNKNOWN, int sign = 0) + enum rtx_code code_sat, int sign, bool out_label) { /* MODE of the operation. */ enum machine_mode mode = GET_MODE (xop[0]); @@ -6668,7 +6678,8 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc, "mov %r0+5,%0", xop, plen, 4); } - avr_asm_len ("0:", op, plen, 0); + if (out_label) + avr_asm_len ("0:", op, plen, 0); } @@ -6706,8 +6717,8 @@ avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen, int *pcc) /* Prepare operands of addition/subtraction to be used with avr_out_plus_1. - INSN is a single_set insn with a binary operation as SET_SRC that is - one of: PLUS, SS_PLUS, US_PLUS, MINUS, SS_MINUS, US_MINUS. + INSN is a single_set insn or an insn pattern with a binary operation as + SET_SRC that is one of: PLUS, SS_PLUS, US_PLUS, MINUS, SS_MINUS, US_MINUS. XOP are the operands of INSN. In the case of 64-bit operations with constant XOP[] has just one element: The summand/subtrahend in XOP[0]. @@ -6722,19 +6733,22 @@ avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen, int *pcc) PLEN and PCC default to NULL. + OUT_LABEL defaults to TRUE. For a description, see AVR_OUT_PLUS_1. + Return "" */ const char* -avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc) +avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc, bool out_label) { int cc_plus, cc_minus, cc_dummy; int len_plus, len_minus; rtx op[4]; - rtx xdest = SET_DEST (single_set (insn)); + rtx xpattern = INSN_P (insn) ? single_set (insn) : insn; + rtx xdest = SET_DEST (xpattern); enum machine_mode mode = GET_MODE (xdest); enum machine_mode imode = int_mode_for_mode (mode); int n_bytes = GET_MODE_SIZE (mode); - enum rtx_code code_sat = GET_CODE (SET_SRC (single_set (insn))); + enum rtx_code code_sat = GET_CODE (SET_SRC (xpattern)); enum rtx_code code = (PLUS == code_sat || SS_PLUS == code_sat || US_PLUS == code_sat ? PLUS : MINUS); @@ -6749,7 +6763,7 @@ avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc) if (n_bytes <= 4 && REG_P (xop[2])) { - avr_out_plus_1 (xop, plen, code, pcc, code_sat); + avr_out_plus_1 (xop, plen, code, pcc, code_sat, 0, out_label); return ""; } @@ -6776,7 +6790,8 @@ avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc) /* Saturations and 64-bit operations don't have a clobber operand. For the other cases, the caller will provide a proper XOP[3]. */ - op[3] = PARALLEL == GET_CODE (PATTERN (insn)) ? xop[3] : NULL_RTX; + xpattern = INSN_P (insn) ? PATTERN (insn) : insn; + op[3] = PARALLEL == GET_CODE (xpattern) ? xop[3] : NULL_RTX; /* Saturation will need the sign of the original operand. */ @@ -6791,8 +6806,8 @@ avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc) /* Work out the shortest sequence. */ - avr_out_plus_1 (op, &len_minus, MINUS, &cc_plus, code_sat, sign); - avr_out_plus_1 (op, &len_plus, PLUS, &cc_minus, code_sat, sign); + avr_out_plus_1 (op, &len_minus, MINUS, &cc_plus, code_sat, sign, out_label); + avr_out_plus_1 (op, &len_plus, PLUS, &cc_minus, code_sat, sign, out_label); if (plen) { @@ -6800,9 +6815,9 @@ avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc) *pcc = (len_minus <= len_plus) ? cc_minus : cc_plus; } else if (len_minus <= len_plus) - avr_out_plus_1 (op, NULL, MINUS, pcc, code_sat, sign); + avr_out_plus_1 (op, NULL, MINUS, pcc, code_sat, sign, out_label); else - avr_out_plus_1 (op, NULL, PLUS, pcc, code_sat, sign); + avr_out_plus_1 (op, NULL, PLUS, pcc, code_sat, sign, out_label); return ""; } @@ -6816,13 +6831,15 @@ avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc) and return "". If PLEN == NULL, print assembler instructions to perform the operation; otherwise, set *PLEN to the length of the instruction sequence (in words) printed with PLEN == NULL. XOP[3] is either an 8-bit clobber - register or SCRATCH if no clobber register is needed for the operation. */ + register or SCRATCH if no clobber register is needed for the operation. + INSN is an INSN_P or a pattern of an insn. */ const char* avr_out_bitop (rtx insn, rtx *xop, int *plen) { /* CODE and MODE of the operation. */ - enum rtx_code code = GET_CODE (SET_SRC (single_set (insn))); + rtx xpattern = INSN_P (insn) ? single_set (insn) : insn; + enum rtx_code code = GET_CODE (SET_SRC (xpattern)); enum machine_mode mode = GET_MODE (xop[0]); /* Number of bytes to operate on. */ @@ -7325,6 +7342,67 @@ avr_out_fract (rtx insn, rtx operands[], bool intsigned, int *plen) } +/* Output fixed-point rounding. XOP[0] = XOP[1] is the operand to round. + XOP[2] is the rounding point, a CONST_INT. The function prints the + instruction sequence if PLEN = NULL and computes the length in words + of the sequence if PLEN != NULL. Most of this function deals with + preparing operands for calls to `avr_out_plus' and `avr_out_bitop'. */ + +const char* +avr_out_round (rtx insn ATTRIBUTE_UNUSED, rtx *xop, int *plen) +{ + enum machine_mode mode = GET_MODE (xop[0]); + enum machine_mode imode = int_mode_for_mode (mode); + // The smallest fractional bit not cleared by the rounding is 2^(-RP). + int fbit = (int) GET_MODE_FBIT (mode); + double_int i_add = double_int_zero.set_bit (fbit-1 - INTVAL (xop[2])); + // Lengths of PLUS and AND parts. + int len_add = 0, *plen_add = plen ? &len_add : NULL; + int len_and = 0, *plen_and = plen ? &len_and : NULL; + + // Add-Saturate 1/2 * 2^(-RP). Don't print the label "0:" when printing + // the saturated addition so that we can emit the "rjmp 1f" before the + // "0:" below. + + rtx xadd = const_fixed_from_double_int (i_add, mode); + rtx xpattern, xsrc, op[4]; + + xsrc = SIGNED_FIXED_POINT_MODE_P (mode) + ? gen_rtx_SS_PLUS (mode, xop[1], xadd) + : gen_rtx_US_PLUS (mode, xop[1], xadd); + xpattern = gen_rtx_SET (VOIDmode, xop[0], xsrc); + + op[0] = xop[0]; + op[1] = xop[1]; + op[2] = xadd; + avr_out_plus (xpattern, op, plen_add, NULL, false /* Don't print "0:" */); + + avr_asm_len ("rjmp 1f" CR_TAB + "0:", NULL, plen_add, 1); + + // Keep all bits from RP and higher: ... 2^(-RP) + // Clear all bits from RP+1 and lower: 2^(-RP-1) ... + // Rounding point ^^^^^^^ + // Added above ^^^^^^^^^ + rtx xreg = simplify_gen_subreg (imode, xop[0], mode, 0); + rtx xmask = immed_double_int_const (-i_add - i_add, imode); + + xpattern = gen_rtx_SET (VOIDmode, xreg, gen_rtx_AND (imode, xreg, xmask)); + + op[0] = xreg; + op[1] = xreg; + op[2] = xmask; + op[3] = gen_rtx_SCRATCH (QImode); + avr_out_bitop (xpattern, op, plen_and); + avr_asm_len ("1:", NULL, plen, 0); + + if (plen) + *plen = len_add + len_and; + + return ""; +} + + /* Create RTL split patterns for byte sized rotate expressions. This produces a series of move instructions and considers overlap situations. Overlapping non-HImode operands need a scratch register. */ @@ -7533,6 +7611,7 @@ avr_adjust_insn_length (rtx insn, int len) case ADJUST_LEN_SFRACT: avr_out_fract (insn, op, true, &len); break; case ADJUST_LEN_UFRACT: avr_out_fract (insn, op, false, &len); break; + case ADJUST_LEN_ROUND: avr_out_round (insn, op, &len); break; case ADJUST_LEN_TSTHI: avr_out_tsthi (insn, op, &len); break; case ADJUST_LEN_TSTPSI: avr_out_tstpsi (insn, op, &len); break; diff --git a/gcc-4.8/gcc/config/avr/avr.md b/gcc-4.8/gcc/config/avr/avr.md index e9f5d038f..f2681233a 100644 --- a/gcc-4.8/gcc/config/avr/avr.md +++ b/gcc-4.8/gcc/config/avr/avr.md @@ -140,7 +140,7 @@ "out_bitop, plus, addto_sp, tsthi, tstpsi, tstsi, compare, compare64, call, mov8, mov16, mov24, mov32, reload_in16, reload_in24, reload_in32, - ufract, sfract, + ufract, sfract, round, xload, lpm, movmem, ashlqi, ashrqi, lshrqi, ashlhi, ashrhi, lshrhi, diff --git a/gcc-4.8/gcc/config/avr/avr.opt b/gcc-4.8/gcc/config/avr/avr.opt index 6b2e755ee..4b990775b 100644 --- a/gcc-4.8/gcc/config/avr/avr.opt +++ b/gcc-4.8/gcc/config/avr/avr.opt @@ -77,4 +77,4 @@ The device has no SPH special function register. This option will be overridden Waddr-space-convert Warning C Report Var(avr_warn_addr_space_convert) Init(0) -Warn if the address space of an address is change. +Warn if the address space of an address is changed. diff --git a/gcc-4.8/gcc/config/avr/gen-avr-mmcu-texi.c b/gcc-4.8/gcc/config/avr/gen-avr-mmcu-texi.c index 55335f98d..e69cd419e 100644 --- a/gcc-4.8/gcc/config/avr/gen-avr-mmcu-texi.c +++ b/gcc-4.8/gcc/config/avr/gen-avr-mmcu-texi.c @@ -68,6 +68,7 @@ comparator (const void *va, const void *vb) static void print_mcus (size_t n_mcus) { + int duplicate = 0; size_t i; if (!n_mcus) @@ -78,7 +79,20 @@ print_mcus (size_t n_mcus) printf ("@*@var{mcu}@tie{}="); for (i = 0; i < n_mcus; i++) - printf (" @code{%s}%s", mcu_name[i], i == n_mcus-1 ? ".\n\n" : ","); + { + printf (" @code{%s}%s", mcu_name[i], i == n_mcus-1 ? ".\n\n" : ","); + + if (i && !strcmp (mcu_name[i], mcu_name[i-1])) + { + /* Sanity-check: Fail on devices that are present more than once. */ + + duplicate = 1; + fprintf (stderr, "error: duplicate device: %s\n", mcu_name[i]); + } + } + + if (duplicate) + exit (1); } int main (void) diff --git a/gcc-4.8/gcc/config/avr/t-multilib b/gcc-4.8/gcc/config/avr/t-multilib index 6b1db6092..d3fb28cd6 100644 --- a/gcc-4.8/gcc/config/avr/t-multilib +++ b/gcc-4.8/gcc/config/avr/t-multilib @@ -135,7 +135,6 @@ MULTILIB_MATCHES = \ mmcu?avr5=mmcu?atmega169a \ mmcu?avr5=mmcu?atmega169p \ mmcu?avr5=mmcu?atmega169pa \ - mmcu?avr5=mmcu?atmega16hva \ mmcu?avr5=mmcu?atmega16hvb \ mmcu?avr5=mmcu?atmega16hvbrevb \ mmcu?avr5=mmcu?atmega16m1 \ @@ -143,7 +142,6 @@ MULTILIB_MATCHES = \ mmcu?avr5=mmcu?atmega26hvg \ mmcu?avr5=mmcu?atmega32a \ mmcu?avr5=mmcu?atmega32 \ - mmcu?avr5=mmcu?atmega32a \ mmcu?avr5=mmcu?atmega323 \ mmcu?avr5=mmcu?atmega324a \ mmcu?avr5=mmcu?atmega324p \ @@ -189,7 +187,6 @@ MULTILIB_MATCHES = \ mmcu?avr5=mmcu?atmega6490 \ mmcu?avr5=mmcu?atmega16hva \ mmcu?avr5=mmcu?atmega16hva2 \ - mmcu?avr5=mmcu?atmega16hvb \ mmcu?avr5=mmcu?atmega32hvb \ mmcu?avr5=mmcu?atmega6490a \ mmcu?avr5=mmcu?atmega6490p \ @@ -198,23 +195,13 @@ MULTILIB_MATCHES = \ mmcu?avr5=mmcu?atmega64hve \ mmcu?avr5=mmcu?atmega64rfa2 \ mmcu?avr5=mmcu?atmega64rfr2 \ - mmcu?avr5=mmcu?atmega32hvb \ mmcu?avr5=mmcu?atmega32hvbrevb \ - mmcu?avr5=mmcu?atmega16hva2 \ mmcu?avr5=mmcu?atmega48hvf \ mmcu?avr5=mmcu?at90can32 \ mmcu?avr5=mmcu?at90can64 \ mmcu?avr5=mmcu?at90pwm161 \ mmcu?avr5=mmcu?at90pwm216 \ mmcu?avr5=mmcu?at90pwm316 \ - mmcu?avr5=mmcu?atmega32c1 \ - mmcu?avr5=mmcu?atmega64c1 \ - mmcu?avr5=mmcu?atmega16m1 \ - mmcu?avr5=mmcu?atmega32m1 \ - mmcu?avr5=mmcu?atmega64m1 \ - mmcu?avr5=mmcu?atmega16u4 \ - mmcu?avr5=mmcu?atmega32u4 \ - mmcu?avr5=mmcu?atmega32u6 \ mmcu?avr5=mmcu?at90scr100 \ mmcu?avr5=mmcu?at90usb646 \ mmcu?avr5=mmcu?at90usb647 \ |