This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Question about movM insn restrictions


Hello,

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.

Thanks,
Marek


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]