[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Calling x86 code from 64-bit code



Paul Brook <paul@codesourcery.com> writes:

> On Monday 15 December 2003 5:40 am, Xavier Roche wrote:
> > Paul Brook wrote:
> > > Not really. It can run both 32-bit and 64-bit processes under the
> > > control of a 64-bit kernel. Linking 32-bit libraries into 64-bit apps
> > > is for most practical purposes impossible.
> >
> > The rellocation process is not done? This is something that could be
> > problematic Maybe there's a need for a "dlopen32" ?
> 
> It's more than just relocation that is neccessary.
> 
> > I don't think that function prelude/end should be adapted ; in fact
> > except symbol issues, and address space handling, this should be feasible
> > :)
> 
> It's the "address space handling" that is the main problem. Think of 
> pointers inside structs.
> 
> In some limited situations it is possible to generate thunks which copy all 
> the required data from the 64-bit address space into a 32-bit one. However 
> this requires very carefully written code and extra annotations for the 
> compiler/linker.
> 
> Paul

Just limit the address space to the first 2GB of memory (like the
alpha 32 bit support does). Then all pointers will be valid for 64 and
32 bit.

You loose the ability to use >2GB though but all speed advantages from
mixed code would probably disapear when you strt copying data between
address spaces.

MfG
        Goswin



Reply to: