This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PowerPC-sysV/eabi, harmonization of section attribute and small data optimization


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]