Problem with reloading in a new backend...
DJ Delorie
dj@redhat.com
Wed Apr 9 16:43:00 GMT 2008
> 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.
> 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.
More information about the Gcc
mailing list