LO_SUM memrefs offsettable ?

Michael Hayes m.hayes@elec.canterbury.ac.nz
Thu Jan 21 17:42:00 GMT 1999

Richard Henderson writes:
 > > Basically, there's a few bits of overlap on the PA.  The "HIGH" sets the
 > > upper 21 bits, the LO_SUM sets the low 14 bits.  Thus we can add small
 > > offsets directly to the LO_SUM and not lose.
 > Sparc as well.  HIGH is the top 22, and the field containing
 > the LO_SUM is 13 bits.

OK, for these machines where there is an overlap, a LO_SUM address can
be considered offsettable.  In this case shouldn't operand_subword
call plus_constant_for_output?

I imagine that there is no overlap for the MIPS as is the case with
the C4x (which is 16 + 16 bits).

 > > Actually, since HIGH & LO_SUM don't specify their size, I suspect that the
 > > port has to handle everything internally since there's no way to describe
 > > to the machine independent part of the compiler when the overlap is safe.

Maybe we should have some macros to specify these sizes; it would be
useful for documentation and could be used to make
offsettable_address_p do the right thing.


More information about the Gcc mailing list