Load insn register restrictions

David Edelsohn dje@watson.ibm.com
Mon Apr 12 20:34:00 GMT 2004


>>>>> Paul Brook writes:

Paul> I'm trying to add a new doubleword load instruction to the ARM backend. It has 
Paul> the restriction that the index register must not be one of the destination 
Paul> registers. For example ldrd r0, [r2 + r3] is valid, but ldrd r0, [r2+r0] is 
Paul> not.

Paul> I can't figure out how to express this in the machine description.
Paul> Any suggestions?

	The early clobber constraint modifier might help or you have to
accept any register allocation and then drop to a splitter if the illegal
allocation occurs, which you can test with reg_overlap_mentioned_p().

David



More information about the Gcc mailing list