On 10/22/18 7:20 PM, Segher Boessenkool wrote:
> Hi peter,
>> +      /* If we have a matching constraint and both operands are hard 
>> registers,
>> +     then they must be the same hard register.  */
>> +      if (HARD_REGISTER_P (output)
>> +      && HARD_REGISTER_P (input)
>> +      && REGNO (output) != REGNO (input))
> 
> You need to test for REG_P (input) before you can HARD_REGISTER_P (input)
> or REGNO (input).

Yup, already done that.  Just checking the s390 debugger which is seeing
a SUBREG, so trying to decide whether I should be looking inside the SUBREG
or not.  Shouldn't be hard to do if it makes sense.



>> +    fatal_insn ("unable to fixup asm constraints for:", insn);
> 
> "impossible constraints"?  There are some more of those already.  Or you
> could describe the actual problem even?
> 
>> +                    /* Operands don't match.  Make sure the two operands
>> +                       are not two different explicit hard registers.  */
>> +                    if (HARD_REGISTER_P (*curr_id->operand_loc[nop])
>> +                        && HARD_REGISTER_P (*curr_id->operand_loc[m]))
>> +                      fatal_insn ("unable to generate reloads for:",
>> +                                  curr_insn);
> 
> Same here (and below) :-)

Yeah, I like that.  Thanks.

Peter

Reply via email to