2013/1/7 Georg-Johann Lay <a...@gjlay.de>
>
> Currently, data in address space __memx is allocated to .progmem.data, i.e. 
> the
> same section as for __flash resp. progmem.  However, there os no need that
> __memx goes onto the same section and wastes precious memory in the first 64 
> Ki.
>
> The patch puts __memx data into .progmemx.data so that a linker script can
> allocate it after .text and it can be distinguished from data in __flash or
> progmem.
>
> The current default linker script contains .progmem* so that the patch does 
> not
> change anything here.  A new default script is still to come (binutils 
> PR14406).
>
> Moreover, there is some code clean-up like avoid magic "6" and use
> ADDR_SPACE_COUNT instead.
>
> Ok to apply?
>
> Johann
>
>
>         PR target/55897
>         * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
>         (avr_addrspace_t): Add .section_name field.
>         * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
>         array size.
>         (avr_addrspace): Same.  Initialize .section_name.  Remove last
>         NULL entry.  Put __memx into .progmemx.data.
>         (progmem_section_prefix): Remove.
>         (avr_asm_init_sections): No need to initialize progmem_section.
>         (avr_asm_named_section): Use avr_addrspace[].section_name to get
>         section name prefix.
>         (avr_asm_select_section): Ditto.  And use get_unnamed_section to
>         retrieve the progmem section.
>         * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
>         boundary to run over avr_addrspace[].
>         (avr_register_target_pragmas): Ditto.

Approved.

Denis.

Reply via email to