On Thu, Jul 06, 2006 at 02:23:24PM -0700, Matt Lee wrote: > Hi, > > Is it possible for me to write a backend that accepts certain > addressing modes for loads, while rejecting them for stores? I am not > sure how to do this with the GO_IF_LEGITIMATE_ADDRESS macro. I know > that this is not very sane, but the situation has arisen neverthless.
Wanna know what? You're not the first one to ask this question. This has been discussed at least twice recently and the resulting messages are available in the Fine Mailing List Archive. See the threads starting at <URL:http://gcc.gnu.org/ml/gcc/2006-05/msg00644.html> (continued at <URL:http://gcc.gnu.org/ml/gcc/2006-06/msg00019.html>) and at <URL:http://gcc.gnu.org/ml/gcc/2006-06/msg00301.html>. Two different ways of achieving what you want are discussed. It really would be nice to have more information about the memory access available in GO_IF_LEGITIMATE_ADDRESS(), such as the direction (read, write or modify) and the insn (code number?) and operand number in which the memory access occurs. -- Rask Ingemann Lambertsen