On Fri, May 10, 2013 at 11:51 PM, Mike Stump wrote:
> - if (DF_REF_LOC (*ref) == recog_data.operand_loc[op])
> - break;
> + {
> + if (DF_REF_LOC (*ref) == recog_data.operand_loc[op])
> + break;
> + /* DF_REF_LOC can be (subreg:DI (reg:TI 5) 8) and
> + recog_data.operand_loc[op] can be (reg:TI 5), and the above
> + won't find it. */
> + if (GET_CODE (*DF_REF_LOC (*ref)) == SUBREG &&
> + &SUBREG_REG (*DF_REF_LOC (*ref)) == recog_data.operand_loc[op])
Congrats, you've re-invented DF_REF_REAL_LOC.
Ciao!
Steven