PowerPC-sysV/eabi, harmonization of section attribute and small data optimization
Thierry Moreau
Thierry.Moreau@Connotech.com
Fri Feb 14 20:44:00 GMT 2003
For your information, see
http://gcc.gnu.org/ml/gcc-patches/2003-02/msg01226.html
on the above subject.
The small data optimization allowed in the PowerPC SystemV
ABI specification (or its embedded refinement, eabi), as
implemented in the GCC file gcc/config/rs6000/rs6000.c is
creating conflicts and inefficiencies (missed optimization
opportunities) when the __attribute__ ((section...)) is
used for object declarations.
The current documentation was unclear as to when the r2 or
r13 addressing was used. With the proposed fix, the
documentation should read:
-msdata=eabi
On System V.4 and embedded PowerPC systems, put small
initialized const global and static data in the
.sdata2 section, which is pointed to by register r2.
Put small initialized non-const global and static data
in the .sdata section, which is pointed to by register
r13. Put small uninitialized global and static data in
the .sbss section, which is adjacent to the .sdata
section. Use register r2 or r13 to address variables
allocated to these sections, either implicitly or
explicitly with __attribute__ ((section)). The
-msdata=eabi option is incompatible with the
-mrelocatable option. The -msdata=eabi option also
sets the -memb option.
-msdata=sysv
On System V.4 and embedded PowerPC systems, put small
global and static data in the .sdata section, which is
pointed to by register r13. Put small uninitialized
global and static data in the .sbss section, which is
adjacent to the .sdata section. Use register r13 to
address variables allocated to these sections, either
implicitly or explicitly with __attribute__
((section)). The -msdata=sysv option is incompatible
with the -mrelocatable option.
This bug fix or enhancement should be beneficial to the
embedded software developers.
--
- Thierry Moreau
CONNOTECH Experts-conseils inc.
9130 Place de Montgolfier
Montreal, Qc
H2M 2A1
Tel.: (514)385-5691
Fax: (514)385-5900
e-mail: thierry.moreau@connotech.com
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list