Ian Lance Taylor wrote:
Jorge PEREZ <jorge.perez@xxxxxxxx> writes:
I found that the option -mdisable-indexing prevents the compiler from
using indexing address modes but such option only exists for some
specific architectures. the question is how can i get the same effect of
that option for SPARC (since such option does not exist for sparc-gcc)?
You can't. Sorry. -mdisable-indexing is only supported for the PA
processor, where an indexed memory address is one which uses two
registers, one of which is multiplied by a constant and added to the
other one to form the address. Does the SPARC even support that type of
memory address? Why do you want to disable it?
Note that -mdisable-indexing also disables reg+reg addressing, which is
by far the more problematical on the PA.
The problem with reg+reg addressing on the PA is it's virtually
impossible to determine which register is the base and which is the
index. It's vital to make that distinction because the PA selects the
memory space (aka segment) register from the base register, not the full
effective address.
GCC works around this problem by trying to track which register is the
pointer via REG_POINTER. Which works fine except for Ada which can set
REG_POINTER on a virtual origin.
Jeff