2010/8/1 redriver jiang <jiang.redri...@gmail.com>:
> Hi Denis,
>
> I read the "out_movqi_r_mr" code of the AVR port. I see that following
> exception are
>
> handled:
>
> 1. "REG_X+offset", which is not supported by AVR.
> 2. "REGY+offset", with offset larger than 63, which is not supported by AVR.
>
> Seems reload can not handle the targets that has some base regs are
> offsetable, and some can't.

IMHO reload can't handle small number of pointer regs with small
offsets only in very rare cases.
Also, look at avr.h: BASE_REG_CLASS definition.

My main idea was to disable infinite offsets in addressing (and
REG_X+offset) as long as possible.
But, if wrong addressing occurs then I have to emulate it.

Look at avr.h: LEGITIMIZE_RELOAD_ADDRESS it's not easy to understand

Denis.

Reply via email to