This is the mail archive of the
mailing list for the GCC project.
Question about movM insn restrictions
- From: Marek Michalkiewicz <marekm at amelek dot gda dot pl>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 10 May 2002 18:34:56 +0200 (CEST)
- Subject: Question about movM insn restrictions
long time ago I read somewhere that GCC has a restriction: there must be
only one move insn that handles all moves of one mode (can't use several
unnamed insns to match the RTL generated by define_expand "movqi").
But I can't find this restriction in the manual - does it still exist?
I ask because in the AVR port, there are so many alternatives to handle
and it would be easier to read if the move insns were split into a few
smaller unnamed insns, each handling only some of the possible operands.
For example, separate insns for memory access if the address is known
and within the 0x20-0x5f range (AVR I/O space - can use the smaller
in/out opcodes instead of the larger lds/sts). Currently, this is
handled as special cases in the (already big) out_movqi_* functions.