Hi, On Sun, 2013-08-04 at 14:47 -0700, Hendrik Greving wrote: > Hi, > > For machines that have an asymmetric memory operand format for > load/stores (load/store format is different), how - if - is that > supported in the backend? > GO_IF_LEGITIMATE_ADDRESS/TARGET_LEGITIMATE_ADDRESS_P don't seem to > care whether it is a load or store. As an example, I'd want to allow > more complex addresses for loads, but not for stores. That is not possible indeed. However, depending on what exactly you want to do you could try some workarounds. For example, in legitimate_address just check whether the address is any kind of valid address. Then do detailed case by case matching/rejection/splitting with operand predicates in mem load/store insns. Another thing that might work is to allow only simple addresses until some point via legitimate_address and legitimize_address. Then use various RTL passes (e.g. combine) to form more complex addresses. Cheers, Oleg