Richard Biener writes:
 > On Wed, Sep 30, 2015 at 11:23 AM, Mikael Pettersson
 > <mikpeli...@gmail.com> wrote:
 > > Does gcc allow backends to have a say in how pointers are represented
 > > (bits beyond the address), what happens in conversions between pointer
 > > types, and what happens in conversions between pointers and uintptr_t?
 > >
 > > The target in question has:
 > > - one pointer format and set of load/store instructions for pointers to 
 > > int/long
 > > - another format and set of load/store instructions for pointers to char
 > > - pointers to short use a third format in general, but can use the int/long
 > >   format IF you know which half of the word you're going to access
 > >
 > > What mechanisms, if any, are present in gcc to deal with this?
 > 
 > Basically none.  The only thing I could imagine you could use is have
 > the pointer
 > formats be different address-spaces.  The target controls how to
 > convert pointers
 > from/to different address-spaces.  I am not aware of specialities for
 > pointer-to-int
 > or int-to-pointer conversion though - IIRC they simply use
 > bit-identical conversions
 > (thus subregs if the modes differ).
 > 
 > But who would design this kind of weird architecture and think he could get
 > away with that easily?
 > 
 > Richard.

It's an old mainframe architecture, not a new design.

A company produced clones up until a few years ago.  They also
maintained a private gcc port based initially on gcc-3.2 and
eventually on gcc-4.3, but were unable to rebase on gcc-4.4.
I have access to that port, and am trying to figure out if it
can be reimplemented in some sane say.

/Mikael

Reply via email to