Le mercredi 09 avril 2008 à 12:41 -0400, DJ Delorie a écrit : > > switch (which_alternative) { > > case 0: /* register to register */ > > Better to just use the @ syntax that gcc offers, to provide multiple > patterns: > > "@ > tfr %0,%1 > ldih %0, hi(%1); ldil %0, lo(%1) > ldih %0, hi(%1); ldil %0, lo(%1) > st %1,(%0) > ld %0,(%1)" > > Everything else should have been sorted out by the constraints.
Right. > > This seems to work ok, but I still have issues at reload time, because > > of the base register addressing mode: in the reload pass gcc generates > > moves from/to the stack: > > You might need to define LEGITIMIZE_RELOAD_ADDRESS, or at least > LEGITIMIZE_ADDRESS. I don't know if reload has assumptions about such > offsets, but the m32c port has a limit on the offset range so it might > help you figure out your port. Ah, this looks exactly like what I needed, thanks! I'll try this and come back afterwards. -- Stelian Pop <[EMAIL PROTECTED]>