Commit bdc5f937 by Pitchumani Sivanupandi Committed by Georg-Johann Lay

Commit files forgotten in r242966.

2016-11-30  Pitchumani Sivanupandi  <pitchumani.sivanupandi@microchip.com>

	Commit files forgotten in r242966.

	* config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
	* config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
	* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
	prefix check to find wrap-around value, instead use MCU flash size.
	For 8k flash devices, update link_pmem_wrap spec string to
	add --pmem-wrap-around=8k.
	* config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
	here...
	(LINK_SPEC): ...to here.

From-SVN: r243033
parent 82c7aae6
2016-11-30 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
Commit files forgotten in r242966.
* config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
* config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
prefix check to find wrap-around value, instead use MCU flash size.
For 8k flash devices, update link_pmem_wrap spec string to
add --pmem-wrap-around=8k.
* config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
here...
(LINK_SPEC): ...to here.
2016-11-30 David Malcolm <dmalcolm@redhat.com> 2016-11-30 David Malcolm <dmalcolm@redhat.com>
PR c/78498 PR c/78498
...@@ -190,15 +204,7 @@ ...@@ -190,15 +204,7 @@
2016-11-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com> 2016-11-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
* config/avr/avr-arch.h (avr_mcu_t): Add flash_size member. * config/avr/avr-mcu.def: (avr_mcu_types): Add flash size info.
* config/avr/avr-devices.c(avr_mcu_types): Add flash size info.
* config/avr/avr-mcu.def: Likewise.
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded prefix
check to find wrap-around value, instead use MCU flash size. For 8k
flash devices, update link_pmem_wrap spec string to add
--pmem-wrap-around=8k.
* config/avr/specs.h: Remove link_pmem_wrap from LINK_RELAX_SPEC and
add to linker specs (LINK_SPEC) directly.
2016-11-29 David Malcolm <dmalcolm@redhat.com> 2016-11-29 David Malcolm <dmalcolm@redhat.com>
...@@ -122,6 +122,9 @@ typedef struct ...@@ -122,6 +122,9 @@ typedef struct
/* Number of 64k segments in the flash. */ /* Number of 64k segments in the flash. */
int n_flash; int n_flash;
/* Flash size in bytes. */
int flash_size;
} avr_mcu_t; } avr_mcu_t;
/* AVR device specific features. /* AVR device specific features.
......
...@@ -111,12 +111,12 @@ avr_texinfo[] = ...@@ -111,12 +111,12 @@ avr_texinfo[] =
const avr_mcu_t const avr_mcu_t
avr_mcu_types[] = avr_mcu_types[] =
{ {
#define AVR_MCU(NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, TEXT_SEC, N_FLASH)\ #define AVR_MCU(NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, TEXT_SEC, N_FLASH, FLASH_SIZE)\
{ NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, TEXT_SEC, N_FLASH }, { NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, TEXT_SEC, N_FLASH, FLASH_SIZE },
#include "avr-mcus.def" #include "avr-mcus.def"
#undef AVR_MCU #undef AVR_MCU
/* End of list. */ /* End of list. */
{ NULL, ARCH_UNKNOWN, AVR_ISA_NONE, NULL, 0, 0, 0 } { NULL, ARCH_UNKNOWN, AVR_ISA_NONE, NULL, 0, 0, 0, 0 }
}; };
......
...@@ -215,17 +215,16 @@ print_mcu (const avr_mcu_t *mcu) ...@@ -215,17 +215,16 @@ print_mcu (const avr_mcu_t *mcu)
// avr-specific specs for linking / the linker. // avr-specific specs for linking / the linker.
int wrap_k = int wrap_k =
str_prefix_p (mcu->name, "at90usb8") ? 8 mcu->flash_size == 0x2000 ? 8
: str_prefix_p (mcu->name, "atmega16") ? 16 : mcu->flash_size == 0x4000 ? 16
: (str_prefix_p (mcu->name, "atmega32") : mcu->flash_size == 0x8000 ? 32
|| str_prefix_p (mcu->name, "at90can32")) ? 32 : mcu->flash_size == 0x10000 ? 64
: (str_prefix_p (mcu->name, "atmega64")
|| str_prefix_p (mcu->name, "at90can64")
|| str_prefix_p (mcu->name, "at90usb64")) ? 64
: 0; : 0;
fprintf (f, "*link_pmem_wrap:\n"); fprintf (f, "*link_pmem_wrap:\n");
if (wrap_k) if (wrap_k == 8)
fprintf (f, "\t%%{!mno-pmem-wrap-around: --pmem-wrap-around=8k}");
else if (wrap_k > 8)
fprintf (f, "\t%%{mpmem-wrap-around: --pmem-wrap-around=%dk}", wrap_k); fprintf (f, "\t%%{mpmem-wrap-around: --pmem-wrap-around=%dk}", wrap_k);
fprintf (f, "\n\n"); fprintf (f, "\n\n");
......
...@@ -58,7 +58,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -58,7 +58,7 @@ along with GCC; see the file COPYING3. If not see
"%{mmcu=*:-m%*} " "%{mmcu=*:-m%*} "
#define LINK_RELAX_SPEC \ #define LINK_RELAX_SPEC \
"%{mrelax:--relax %(link_pmem_wrap)} " "%{mrelax:--relax} "
#undef LINK_SPEC #undef LINK_SPEC
#define LINK_SPEC \ #define LINK_SPEC \
...@@ -66,6 +66,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -66,6 +66,7 @@ along with GCC; see the file COPYING3. If not see
"%(link_data_start) " \ "%(link_data_start) " \
"%(link_text_start) " \ "%(link_text_start) " \
"%(link_relax) " \ "%(link_relax) " \
"%(link_pmem_wrap) " \
"%{shared:%eshared is not supported} " "%{shared:%eshared is not supported} "
#undef LIB_SPEC #undef LIB_SPEC
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment