daniel.tian wrote: > But I have already defined the PROMOTE_MODE which will convert all the > QImode, HImode to SImode in computation.
? That's not what the code you posted says: > PROMOTE_MODE, stolen from mips, is defined in my port: > #define PROMOTE_MODE(MODE, UNSIGNEDP, TYPE) \ > if (GET_MODE_CLASS (MODE) == MODE_INT \ > && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ > { \ > (MODE) = Pmode; \ > } The docs for PROMOTE_MODE suggest using `word_mode'; it may be that on mips, Pmode and word_mode are the same, but they aren't on your machine? > And the RTL mentioned, including > " SUBREG " should not exist after reload. Now all the instructions > pattern, which modes are smaller than SImode, formed in SUBREG. Is one of your MD macros not handling the post-reload REG_OK_STRICT macro correctly perhaps? cheers, DaveK