On 09/12/16 23:45, Jeff Law wrote: > On 09/12/2016 07:43 AM, Bernd Edlinger wrote: >> Hi, >> >> the attached patch boot-straps and reg-tests cleanly >> on x86_64-pc-linux-gnu, powerpc and aarch64 targets. >> >> Is it OK for trunk? > Unfortunately, there's no explanation for why the original code was > wrong. Yes, I can clearly see you're trying to fix an ICE, but what > about the code's behaviour was wrong? > > jeff >
Sorry, everything is just folding, and continuing Peter's cleanup, except here: @@ -1840,7 +1829,7 @@ process_alt_operands (int only_alternative) op = no_subreg_reg_operand[nop] = *curr_id->operand_loc[nop]; /* The real hard regno of the operand after the allocation. */ - hard_regno[nop] = get_hard_regno (op); + hard_regno[nop] = get_hard_regno (op, true); operand_reg[nop] = reg = op; biggest_mode[nop] = GET_MODE (op); note the comment above. This restores the state before Peter's patch here, but only here, not in the operand matching. Bernd.