Bug 55897 - [avr] Allocate __memx data to .progmemx.data
Summary: [avr] Allocate __memx data to .progmemx.data
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.8.0
: P4 normal
Target Milestone: 4.7.3
Assignee: Not yet assigned to anyone
URL:
Keywords: addr-space
Depends on:
Blocks:
 
Reported: 2013-01-07 14:19 UTC by Georg-Johann Lay
Modified: 2013-01-07 18:53 UTC (History)
0 users

See Also:
Host:
Target: avr
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Georg-Johann Lay 2013-01-07 14:19:16 UTC
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.

In order to support better data layout, __memx should go in a different section than .progmem, e.g. progmemx.
Comment 1 Georg-Johann Lay 2013-01-07 18:34:50 UTC
Author: gjl
Date: Mon Jan  7 18:34:40 2013
New Revision: 194991

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194991
Log:
	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.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/avr/avr-c.c
    trunk/gcc/config/avr/avr.c
    trunk/gcc/config/avr/avr.h
Comment 2 Georg-Johann Lay 2013-01-07 18:37:57 UTC
Author: gjl
Date: Mon Jan  7 18:37:47 2013
New Revision: 194992

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194992
Log:
	PR target/55897
	* doc/extend.texi (AVR Named Address Spaces): __memx goes into
	.progmemx.data now.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/doc/extend.texi
Comment 3 Georg-Johann Lay 2013-01-07 18:51:38 UTC
Author: gjl
Date: Mon Jan  7 18:51:33 2013
New Revision: 194993

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194993
Log:
	Backport from 2013-01-07 trunk r194991, r194992.
	PR target/55897
	* doc/extend.texi (AVR Named Address Spaces): __memx goes into
	.progmemx.data now.
	* 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.


Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/config/avr/avr-c.c
    branches/gcc-4_7-branch/gcc/config/avr/avr.c
    branches/gcc-4_7-branch/gcc/config/avr/avr.h
    branches/gcc-4_7-branch/gcc/doc/extend.texi
Comment 4 Georg-Johann Lay 2013-01-07 18:53:45 UTC
Fixed in 4.7.3