Re: ELF to COFF Convertor

Michael Meissner <meissner@cygnus.com>
14 Mar 1997 00:20:22 -0500

          From comp.compilers

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)
| List of all articles for this month |

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)
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.