Related articles |
---|
ELF to COFF Convertor sarnaik@asic.mtv.nec.com (1997-02-16) |
Re: ELF to COFF Convertor rfg@monkeys.com (1997-02-27) |
Re: ELF to COFF Convertor arnold@mathcs.emory.edu (1997-02-27) |
Re: ELF to COFF Convertor lfm@pgroup.com (1997-03-01) |
Re: ELF to COFF Convertor meissner@cygnus.com (Michael Meissner) (1997-03-01) |
Re: ELF to COFF Convertor jgj@ssd.csd.harris.com (1997-03-05) |
Re: ELF to COFF Convertor meissner@cygnus.com (Michael Meissner) (1997-03-14) |
Re: ELF to COFF Convertor jgj@ssd.csd.harris.com (1997-03-18) |
From: | Michael Meissner <meissner@cygnus.com> |
Newsgroups: | comp.compilers |
Date: | 14 Mar 1997 00:20:22 -0500 |
Organization: | Compilers Central |
References: | 97-02-100 97-02-158 97-03-018 97-03-033 |
Keywords: | linker, code |
jgj@ssd.csd.harris.com (Jeff Jackson) writes:
> > 5) V.4 uses r13 to point to the small data area, while PowerOpen uses it
> > as a normal caller save register, and NT reserves it for use by the
> > operating system. PowerOpen
>
> I'm not sure what the "small data area" is. If you mean aggregate
> return values, these are passed as a hidden first argument in
> Concurrent's implementation.
(Note, I'm using the gas syntax, since that's what I use and wrote).
A small data area points to a location in memory (+32768 from the
beginning of the .sdata sectionin the case of the Solaris/Linux
powerpc V.4/eabi). Small variables can be referenced in one
instruction:
lwz 0,foo@sdarel(13)
and the linker will automatically put the address of foo - the address
of _SDA_BASE_ into the address field. This is similar to the GP
register used in SGI/MIPS systems.
In eabi, there are two small data pointers, plus memory around
location 0 can used, and the asm looks like:
lwz 0,foo@sda21(0)
The linker then puts the appropriate register (0, 2, or 13) into the
index register field and the lower 16 bits.
--
Michael Meissner, Cygnus Solutions (East Coast)
4th floor, 955 Massachusetts Avenue, Cambridge, MA 02139, USA
meissner@cygnus.com, 617-354-5416 (office), 617-354-7161 (fax)
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.