On 08/08/2016 05:26 PM, Senthil Kumar Selvaraj wrote:
I picked out the commit where you'd added SYMBOL_REF handling (rev #190252), and patched that with the below code. Bootstrapped and regtested on x86_64-pc-linux - the results were identical with and without the patch. Is this good enough for trunk?
- else if (GET_CODE (SUBREG_REG (in)) == SYMBOL_REF) + else if (GET_CODE (SUBREG_REG (in)) == SYMBOL_REF + || CONSTANT_P (SUBREG_REG (in)) + || GET_CODE (SUBREG_REG (in)) == PLUS) subreg_in_class = find_valid_class_1 (inmode, GET_MODE (SUBREG_REG (in)), rclass);
Actually SYMBOL_REF should also be CONSTANT_P. For integers it looks like it'll pass VOIDmode to find_valid_class_1 and just return NO_REGS. which I suppose is OK.
Would you mind removing the SYMBOL_REF test and retesting? Ok with that change.
Bernd